成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么比特幣可以防篡改

區塊鏈
如果我們對比特幣等區塊鏈技術稍有了解,就會發現它是一個設計巧妙的分布式數據庫。我們可以看看它是如何組合現有的技術防止惡意節點對交易和賬戶數據進行篡改的。

比特幣(Bitcoin)是一種加密貨幣,也是一種分布式的數字資產,中本聰發布比特幣到今天已經過去了 10 多年時間[^1],一些讀者可能接觸過區塊鏈技術,甚至投資過數字貨幣的資產。今天的區塊鏈總市值已經達到了 2700 億美金,比特幣的市值也達到了 1700 億[^2],然而比特幣使用的底層技術其實非常簡單,它只是將這些技術巧妙地組合起來。

[[314591]]

圖 1 - 比特幣

如果我們對比特幣等區塊鏈技術稍有了解,就會發現它是一個設計巧妙的分布式數據庫。作為在公網運行的分布式數據庫,比特幣和其它區塊鏈網絡都會面對網絡中的惡意節點的攻擊。因為比特幣需要面對復雜的網絡環境以及不可靠的節點,所以它在設計和實現上也做出了應對,我們可以看看它是如何組合現有的技術防止惡意節點對交易和賬戶數據進行篡改的。

比特幣網絡主要會通過以下兩種技術保證用戶簽發的交易和歷史上發生的交易不會被攻擊者篡改:

  • 非對稱加密可以保證攻擊者無法偽造賬戶所有者的簽名;
  • 共識算法可以保證網絡中的歷史交易不會被攻擊者替換;

非對稱加密

非對稱加密算法[^3]是目前廣泛應用的加密技術,TLS 證書和電子簽名等場景都使用了非對稱的加密算法保證安全。非對稱加密算法同時包含一個公鑰(Public Key)和一個私鑰(Secret Key),使用私鑰加密的數據只能用公鑰解密,而使用公鑰解密的數據也只能用私鑰解密。

asymmetric-cryptography

圖 2 - 非對稱加密特性

比特幣使用了非對稱加密算法保證每一筆交易的安全,網絡中的每一個賬戶(地址)都是一對秘鑰中的公鑰,賬戶的所有者會持有私鑰,下面就是一對剛剛生成的比特幣地址和私鑰[^4]:

  1. Address:     13RTT8MsbAj7o4zL7w4DNNuuwhgGgHqLnK 
  2. Private Key: 469d998dd4db3dfdd411fa56574e52b6be318f993ca696cc5c683c45e8e147eb 

需要注意的是,使用網站生成比特幣地址和私鑰是極其危險的做法,我們并不清楚網站是否會存儲私鑰,所以建議使用比特幣的客戶端生成公私鑰對。

任何人通過上面的地址 13RTT8MsbAj7o4zL7w4DNNuuwhgGgHqLnK 都可以向該賬號轉賬;賬號的持有者也可以使用私鑰簽名交易向其他地址轉賬,當我們想要向比特幣網絡中提交一筆新的交易時,需要先構建一個如下所示的交易結構:

  1.    "txid":"5be7a9e47f56c98e5297a44df52da0475f448ece98bb51489103cdf70653092f", 
  2.    "hash":"5be7a9e47f56c98e5297a44df52da0475f448ece98bb51489103cdf70653092f", 
  3.    "version":1, 
  4.    "size":224, 
  5.    "vsize":224, 
  6.    "locktime":0, 
  7.    "vin": [...], 
  8.    "vout": [...], 
  9.    "hex":"0100000001a90b4101e6cbb75e1ff885b6358264627581e9f96db9ae609acec98d72422067000000006b483045022100c42c89eb2b10aeefe27caea63f562837b20290f0a095bda39bec37f2651af56b02204ee4260e81e31947d9297e7e9e027a231f5a7ae5e21015aabfdbdb9c6bbcc76e0121025e6e9ba5111117d49cfca477b9a0a5fba1dfcd18ef91724bc963f709c52128c4ffffffff02a037a0000000000017a91477df4f8c95e3d35a414d7946362460d3844c2c3187e6f6030b000000001976a914aba7915d5964406e8a02c3202f1f8a4a63e95c1388ac00000000", 
  10.    "blockhash":"0000000000000000000c23ca00756364067ce5e815deb5982969df476bfc0b5c", 
  11.    "confirmations":5, 
  12.    "time":1521981077, 
  13.    "blocktime":1521981077 

接下來,我們可以使用持有的私鑰對整個交易中的全部字段進行簽名,然后將簽名與交易打包并發送到網絡中等待比特幣網絡的確認就可以了。

在比特幣的所有地址中,35hK24tcLEWcgNA4JxpvbkNkoAcDGqQPsP 地址中目前持有 250,000 多個 Bitcoin[^5],目前的市值大概為 20 億美元。在只知道地址的情況下,我們來算一下獲取該地址對應的私鑰需要多長時間。比特幣的私鑰總共有 256 位,即2256種可能。

目前我們沒有較為快捷的破解手段,只能使用暴力破解計算私鑰。假設我們使用 IBM 在 2018 年推出的超級計算機 Summit[^6],它能每秒能做1.4*107次浮點數計算,假設該計算機可以每秒計算相同次數的公私鑰對(計算公私鑰對遠比一次浮點數計算復雜),想要找到存放 20 億美元資產的地址對應的私鑰需要如下所示的時間:

我們整個宇宙的存在時間也只是破解該私鑰時間的幾十億分之一,所以在目前的計算能力沒有革命性突破的前提下,想要通過暴力破解的方式獲取公鑰對應的私鑰只有理論上的可能性,在實踐中是完全不可能的[^7]。

共識算法

MySQL 等數據庫以行為單位存儲數據,而比特幣這個分布式數據庫中存儲的基本單位是區塊,區塊通過哈希指針連接就會構成一顆樹,如下圖所示,圖中綠色的最長鏈就是網絡的主鏈。

blockchain-and-blocks

圖 3 - 區塊鏈和主鏈

如何讓網絡中的所有節點對下一個區塊中的內容達成共識是比特幣需要解決的關鍵問題,只有讓節點對數據達成一致才會保證過去的交易不會被篡改,但是作為在公網運行的分布式數據庫,它面對的場景非常復雜,需要解決拜占庭將軍問題下的分布式一致性問題。

拜占庭將軍問題是 Leslie Lamport 在 The Byzantine Generals Problem 論文中提出的分布式領域的容錯問題,它是分布式領域中最復雜、最嚴格的容錯模型[^8]。在該模型下,系統不會對集群中的節點做任何的限制,它們可以向其他節點發送隨機數據、錯誤數據,也可以選擇不響應其他節點的請求,這些無法預測的行為使得容錯這一問題變得更加復雜。

拜占庭將軍問題描述了一個如下的場景,有一組將軍分別指揮一部分軍隊,每一個將軍都不知道其它將軍是否是可靠的,也不知道其他將軍傳遞的信息是否可靠,但是它們需要通過投票選擇是否要進攻或者撤退:

byzantine-generals-problem

圖 4 - 拜占庭將軍問題

區塊鏈技術使用 共識算法 和激勵讓多個節點在拜占庭將軍場景下實現分布式一致性。比特幣使用如下的規則讓多個節點實現分布式一致性:

  • 引入工作量證明 — 讓節點在提交新的區塊之前計算滿足特定條件的哈希,取代傳統分布式一致性算法中,一人一票(或者一節點一票)的設定;
  • 引入最長鏈是主鏈的設定 — 只有主鏈上的交易才被認為是合法交易;
  • 引入激勵 — 提交區塊的節點可以獲得比特幣獎勵;

通過以上的規則,各個節點會在最長的鏈上計算哈希,努力提交合法的區塊。然而一旦節點中有人掌握了 51% 以上的計算能力,它能通過強大的算力改變區塊鏈的歷史。因為區塊具有連續性,所以前一個區塊的改變會使后一個區塊計算的哈希失效,如圖 5 所示,如果攻擊者需要改變主鏈中的倒數第三個黃色區塊,它需要連續構建四個區塊才能完成對歷史的篡改,其他的節點才會在這條更長的鏈上繼續計算:

51-percent-attack

圖 5 - 51% 攻擊

使用如下所示的代碼可以計算在無限長的時間中,攻擊者持有 51% 算力時,改寫歷史 0 ~ 9 個區塊的概率[^10]:

  1. #include <math.h> 
  2. #include <stdio.h> 
  3.  
  4. double attackerSuccessProbability(double q, int z) { 
  5.     double p = 1.0 - q; 
  6.     double lambda = z * (q / p); 
  7.     double sum = 1.0; 
  8.     int i, k; 
  9.     for (k = 0; k <= z; k++) { 
  10.         double poisson = exp(-lambda); 
  11.         for (i = 1; i <= k; i++) 
  12.             poisson *= lambda / i; 
  13.         sum -poisson * (1 - pow(q / p, z - k)); 
  14.     } 
  15.     return sum; 
  16.  
  17. int main() { 
  18.     for (int i = 0; i < 10; i++) { 
  19.         printf("z=%d, p=%f\n", i, attackerSuccessProbability(0.51, i)); 
  20.     } 
  21.     return 0; 

通過上述的計算我們會發現,在無限長的時間中,占有全網算力的節點能夠發起 51% 攻擊修改歷史的概率是 100%;但是在有限長的時間中,因為比特幣中的算力是相對動態的,比特幣網絡的節點也在避免出現單節點占有 51% 以上算力的情況,所以想要篡改比特幣的歷史還是比較困難的,不過在一些小眾的、算力沒有保證的一些區塊鏈網絡中,51% 攻擊還是極其常見的[^9]。

防范 51% 攻擊方法也很簡單,在多數的區塊鏈網絡中,剛剛加入區塊鏈網絡中的交易都是未確認的,只要這些區塊后面追加了數量足夠的區塊,區塊中的交易才會被確認。比特幣中的交易確認數就是 6 個,而比特幣平均 10 分鐘生成一個塊,所以一次交易的確認時間大概為 60 分鐘,這也是為了保證安全性不得不做出的犧牲。不過,這種增加確認數的做法也不能保證 100% 的安全,我們也只能在不影響用戶體驗的情況下,盡可能增加攻擊者的成本。

總結

研究比特幣這樣的區塊鏈技術還是非常有趣的,作為一個分布式的數據庫,它也會遇到分布式系統經常會遇到的問題,例如節點不可靠等問題;同時作為一個金融系統和賬本,它也會面對更加復雜的交易確認和驗證場景。比特幣網絡的設計非常有趣,它是技術和金融兩個交叉領域結合后的產物,非常值得我們花時間研究背后的原理。

比特幣并不能 100% 防止交易和數據的篡改,文中提到的兩種技術都只能從一定概率上保證安全,而降低攻擊者成功的可能性也是安全領域需要面對的永恒問題。我們可以換一個更嚴謹的方式闡述今天的問題 — 比特幣使用了哪些技術來增加攻擊者的成本、降低交易被篡改的概率:

  • 比特幣使用了非對稱加密算法,保證攻擊者在有限時間內無法偽造賬戶所有者的簽名;
  • 比特幣使用了工作量證明的共識算法并引入了記賬的激勵,保證網絡中的歷史交易不會被攻擊者快速替換;

通過上述的兩種方式,比特幣才能保證歷史的交易不會被篡改和所有賬戶中資金的安全。到最后,我們還是來看一些比較開放的相關問題,有興趣的讀者可以仔細思考一下下面的問題:

  • 你對比特幣的未來是怎么看的?
  • 如果要對比特幣發起一次 51% 攻擊篡改交易要花費多少成本?

 

責任編輯:趙寧寧 來源: 真沒什么邏輯
相關推薦

2021-04-14 14:48:16

比特幣區塊鏈工具

2022-03-31 10:26:17

比特幣戰爭美元

2018-11-15 16:15:14

2021-02-18 00:23:51

比特幣加密貨幣區塊鏈

2022-06-02 16:04:02

DeFi金融比特幣

2020-05-20 20:00:46

比特幣數字貨幣區塊鏈

2021-01-25 16:20:27

比特幣互聯網技術

2018-04-02 15:19:31

比特幣區塊鏈中本聰

2022-01-18 16:55:47

區塊鏈比特幣經濟

2021-06-24 07:40:55

比特幣加密貨幣區塊鏈

2021-02-25 14:02:29

比特網區塊鏈主流貨幣

2021-02-22 11:50:49

比特幣加密貨幣美元

2021-07-19 22:28:59

區塊鏈比特幣虛擬貨幣

2022-07-28 16:33:58

比特幣加密貨幣俄羅斯

2021-09-17 14:18:49

比特幣加密貨幣貨幣

2021-01-05 14:44:39

比特幣加密貨幣黃金

2021-05-07 15:18:26

比特幣禁令監管

2021-03-23 09:00:00

比特幣加密貨幣安全

2021-02-20 22:35:17

區塊鏈比特幣記賬

2021-07-28 13:32:36

比特幣數字人民幣貨幣
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线国产视频 | 91嫩草精品| 九九九久久国产免费 | 免费精品| 欧美精三区欧美精三区 | 久久精品av麻豆的观看方式 | 久久国产99 | 在线精品国产 | 亚洲看片| 亚洲精品福利在线 | 精品久久久久久亚洲精品 | 国产精品久久久久久久久久久久午夜片 | 成人免费视频在线观看 | av 一区二区三区 | 欧美在线一区二区三区 | 黄色av网站在线观看 | 日本爱爱视频 | 国产精品不卡一区二区三区 | 日韩精品一区二区三区四区 | 精品亚洲二区 | 六月色婷| 精品国产乱码久久久久久a丨 | 日韩一区二区三区av | 最新中文字幕在线 | 国户精品久久久久久久久久久不卡 | 日韩av免费在线电影 | 91久久精品国产免费一区 | 成人av免费在线观看 | 欧美国产视频一区二区 | 成人午夜视频在线观看 | 日韩中文字幕一区二区 | 国产精品毛片一区二区三区 | 亚洲精品中文字幕在线 | 国产精品成人在线播放 | 国产一级精品毛片 | 久久综合狠狠综合久久综合88 | 欧美一区二区在线 | www.狠狠干 | 欧产日产国产精品视频 | www.黄色片视频 | 国产一区二区三区在线看 |