比特幣白皮書十週年,重溫白皮書紀念

買賣虛擬貨幣

關注 “幣圈邦德” 獲取專業區塊鏈資訊及服務!

2008年10月31日,中本聰在網站上發表了比特幣白皮書,至今已經十年過去了。你有沒有仔細讀過?在這個特殊的日子,幣圈邦德推出比特幣白皮書解讀,帶你重溫。

讀之前必須要瞭解一個基礎概念,雜湊(hash)。雜湊作為動詞就是把任意的輸入長度透過雜湊演算法變成固定長度的輸出,而且無法逆向推倒,雜湊值就是所輸出的固定長度。

經過雜湊演算法,相同的資訊會得到相同雜湊值,即使資訊有細微改變,得到的雜湊值也會不同。


下面進入正題:

1

中本聰在標題裡就給比特幣下了定義:一種點對點的電子現金系統(A Peer-to-Peer Electronic Cash System)。一種最純粹的點對點電子現金在交易過程中只涉及到交易雙方,不會有第三方金融機構參與。不過想繞過第三方機構,雙花(同一筆錢花兩次)問題是要必須要解決的。

在比特幣網路中,使用了數字簽名,時間戳,PoW等方法,下面將詳細講解隱藏在比特幣背後的技術。

2

在現在的轉賬系統,也就是存在第三方金融機構的轉賬系統中,信任問題是不可避免的。完全不可逆的交易實際上不可能存在,總會存在糾紛,仲裁花費就會增加交易成本。同時由於支付是可能逆轉的,商家要提防客戶,要求他們提供更多的資訊,所以信任必須存在。

電子支付系統需要的是加密證明,而不是基於信任。這樣雙方就可以直接交易,不需要第三方的參與。

在這個系統裡,比特幣就是一串數字簽名鏈。每個人在轉賬過程中,簽署幣過去的轉賬記錄的雜湊和下一個接收者的公鑰,接收者驗證簽名後就能宣示所有權了。

在這裡解釋一下公鑰和私鑰的關係。私鑰是由256位數字0和1組成的隨機數,將其轉換成64位十六進位制顯示。所以比特幣的私鑰共有2^256個,數量和可見宇宙中所有原子數差不多。公鑰由私鑰透過橢圓曲線加密演算法得到,比特幣地址由公鑰透過雜湊得到。

他們之間嚴格按照私鑰得出公鑰,公鑰得出地址的順序,不能逆推。用私鑰加密過的資訊可以用公鑰解密,用公鑰加密過的資訊可以用私鑰解密,地址是用於轉賬,可以由公鑰證實。

所以交易資訊(雜湊值)用私鑰簽名後,用公鑰驗證簽名就能確定“比特幣”之前的所有者。由於每次的交易資訊都不同,所以每次交易都會有新的簽名資訊。

在這裡介紹一個特別的概念,UTXO(Unspent Transaction Output),即沒有花費的輸出。很有意思,比特幣其實不是“幣”,它其實是一種UTXO比特幣賬本記錄的是一筆筆交易,轉賬中肯定包括輸入和輸出,如果還有沒有花費的輸出,就是這個地址剩餘的比特幣數。除了礦工挖到區塊獎勵的比特幣外,其他的比特幣都來源於前面地址的UTXO

3

回到上一話題,接收者很難驗證這些“幣”是否被雙花,通常情況下就要引入信得過的第三方機構,或者造幣廠驗證是否雙花。在每次轉賬過程中,造幣廠回收之前的幣並重新發放新幣,新幣只透過這個造幣廠發放,於是就避免了雙花,但是又有一個問題,每一筆交易都要透過這個造幣廠。

如果要在系統中除掉這個第三方造幣廠,就要系統中所有人都知道轉賬的前後順序,轉賬記錄就要被公開,參與者都要同意唯一的轉賬順序。接收者需要證明在每次轉賬過程中,大多數節點都同意幣是第一次被接收的。

時間戳就是為了解決這個問題,給交易一個不可偽造的時間標記,讓所有人都確認轉賬順序。

時間戳是將等待被時間戳的區塊,雜湊其中的內容,然後將雜湊值透過報紙或者網路廣播出去。時間戳證明了資料在那個時刻存在,因為只有那個時刻存在,才會得到相應的雜湊值。每一個時間戳的雜湊都包括前一個時間戳,因此形成了一條鏈,每個新加上的時間戳都在之前時間戳的後面。


4

分散式的時間戳伺服器需要建立在點對點的基礎上,這裡使用的是PoWProof of Word,工作量證明)的共識機制。PoW的過程是尋找一個值,讓這個值的雜湊值滿足一定條件,比如說用SHA-256演算法(SHA-256雜湊函式)。雜湊值是從一堆數字0開始的,尋找這個值的工作量隨著數字0的增加指數增長,但是要驗證這個值是否符合條件只需要1次雜湊運算。

實現PoW是透過加入隨機數的方式,直到找到一個能達到那麼多0的雜湊值,這個雜湊值是由之前區塊的雜湊值,隨機數和區塊交易共同決定的。找到符合條件的雜湊值,CPU就花費了勞動實現PoW除非重新完成這麼多的工作量,區塊是不會再被改變的。之後新的區塊會連線這個區塊,如果要改變還要改變所有在這之後的區塊。

PoW還解決了決定權的問題,如果用一個IP一票的原則,那擁有很多IP的人就可能推翻這一切,代表大多數。如果一個CPU算一票,最長的鏈最能代表大多數,因為其中包含了最多的工作量。


誠實節點控制大多數CPU的時候,誠實鏈就會比其他競爭鏈要長。如果有人要攻擊,修改之前的區塊,就要重複那已完成的工作量,還要超過誠實鏈的長度,隨著區塊增加,較慢的攻擊者追上的可能性會隨著區塊增加指數遞減。

PoW的難度會隨著每小時平均產出區塊數量而定,如果產出過多,難度就會增加。


5

比特幣的執行網路步驟如下:

1. 新的轉賬廣播到所有節點;

2. 每個節點收集新的轉賬打包成區塊;

3. 每個節點為區塊找到有難度的工作量證明;

4. 當節點找到工作量證明,向所有節點廣播;

5. 如果那個區塊上的交易都經過確認有效且沒有被雙花,那節點們就接受這個區塊;

6. 節點接受這個區塊的方式表現為,將這個區塊的雜湊當作之前的雜湊值,在這個區塊之後繼續創造區塊。

一筆交易被確認的程度,要看它所在區塊之後的區塊數。後面的區塊數越多,代表這個交易記錄越難更改,所以被認可程度更高。

節點一直在最長鏈上工作延長它,如果兩個節點同時廣播了不同版本的區塊,那其他節點接收的順序總會不同。在這種情況下,出現了分叉,節點們在不同的區塊上工作延伸,不過他們會將兩邊都儲存下來避免另一邊會超過自己這邊。一旦一邊變得更長,那較短鏈上的那些節點會轉換到較長的那邊。

新的轉賬沒有必要廣播到所有的節點上,只要他達到節點們那裡,就會被打包成區塊。區塊廣播允許丟失資訊,如果一個節點沒有收到區塊,他會在收到下一個區塊的時候意識到,並且會重新補上。


6

比特幣的發行不依靠任何機構,每個人都可以“製造”比特幣。區塊裡第一筆交易很特殊,區塊發現者會被獎勵新幣,這種激勵會讓節點支援網路。這種持續穩定增加一定數量幣的方式和黃金礦工一樣,花費一定資源增加黃金數量。在比特幣系統裡,CPU的時間和電力就是需要花費的資源,所以那些打包區塊尋找雜湊值的節點稱自己是“礦工”。

激勵也會體現在轉賬費上,收款方收到的會比付款方少一些,少的那部分就是用於獎勵打包區塊的獎勵。一旦預期數量的幣(2100萬)都已在流通,那激勵就會過渡為轉賬費。在這個體系下,是不會出現通貨膨脹的。

激勵會鼓勵節點誠實,如果貪婪的攻擊者聚集CPU攻擊誠實節點,他就會改變支付來雙花,或者用它來造新幣。他會發現如果遵照規則,在最長鏈上挖礦會更有利可圖,遵守規則可以擁有更多的新幣,搞破壞反而會損失財富。



7

如果最近的交易已經被最夠多的區塊確認,那它之前已花費的記錄就可以被廢棄,節約空間。為了不改變區塊的雜湊值,交易記錄被雜湊成默克爾樹(Merkle Tree)的形式,只有根被包括在區塊的雜湊中,儲存在區塊頭上。舊的區塊可以去除默克爾樹的分支來壓縮,內部的雜湊值不需要儲存。

沒有轉賬記錄的區塊頭大概是80位元組,如果每十分鐘產生一個區塊,80位元組*6*24*365=4.2 MB一年。2008年的RAM是2GB,根據摩爾定律每年還要增長1.2 GB,即使區塊頭都儲存在記憶體裡都不是問題。

比特幣系統中默克爾樹的儲存方式,還可以應用在SPV (Simplified Payment Verification,簡單支付確認)上。

沒有網路的全節點也可以驗證支付資訊,使用者只需要儲存最長鏈的區塊頭資訊,獲得這個區塊轉賬記錄的默克爾樹分支。他不能自行檢查交易記錄,但是能透過鏈條定位這個轉賬記錄,就代表節點接受了這筆交易,後面增加的區塊可以進一步確認網路已經接受了它。


在誠實節點控制網路的時候,SPV確認更值得信賴,但是當攻擊者掌控時網路,也更容易受到攻擊。因為網路節點們可以自己證實交易記錄,所以這個簡易方法可能被攻擊者偽造。為了避免被作惡節點攻擊,當網路中節點檢測到無效區塊時,傳送警報,提示使用者下載全節點並且警覺那些不一致的交易。要更安全和更快的確認交易,還是自己執行全節點比較好。



8

傳統銀行對於隱私的保護,在於很難向被信任的第三方獲得資訊。在比特幣系統裡,所有交易都要公開,保護隱私就好換另一個的思路,保持公鑰匿名。大家都能看到一個人向另一個人轉賬,但是沒法將這個資訊聯絡到具體的人身上。這和股票交易所的模式很相似,時間和交易量時公開的,但是不知道交易雙方。

還有另一種防火牆,可以在每次轉賬過後,換成變新的金鑰對。有些情況下不可避免要用多個輸入,這就表明了這些輸入都屬於一個人。如果有一個公鑰暴露了擁有者,那與之相關的交易記錄都會被曝光。



9

這是一種不需要基於信任的電子支付系統,最初設計了數字簽名的框架,用來證明幣的所有權。為了避免雙花問題,在點對點網路中使用工作量證明,記錄公開的歷史交易記錄。如果誠實節點掌握大多數CPU算力,攻擊者不可能成功改變系統。同時,PoW也是一種投票方式,在比特幣系統裡,算力為大,大多數算力代表最長鏈,也代表了大多數人的利益。區塊獎勵也讓節點們更加維護比特幣系統,與其用召集算力攻擊比特幣,不如老老實實挖礦能獲得更多利益。

從比特幣誕生至今,“比特幣是世界最大的騙局”“比特幣就是傳銷”“比特幣是龐氏騙局”等等言論時不時地質疑一番。但讀完白皮書之後,那些言論自然不攻自破。隱藏在比特幣背後一個個巧妙的設計,使比特幣在沒有任何官方機構背書的情況下運轉了十年之久,從零開始成長為市值1100億美元的龐然大物。

  點選閱讀原文可下載比特幣白皮書檔案,

  覺得有幫助就請分享到朋友圈吧~ 


【轉載須知】

幣圈邦德推送的所有原創內容,

均歡迎尊重版權的轉載,

未經允許嚴禁轉載,侵權必究!

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;