讀書筆記-《易懂的比特幣工作機理詳解》

1.比特幣運行機理概述

賬本(區(qū)塊)

掌握核心概念是學習任何學科的關(guān)鍵。

區(qū)塊,區(qū)塊鏈,交易單,比特幣,交易是比特幣體系中的重要概念。

比特幣區(qū)塊鏈可以看做是全世界唯一的一個賬本。

區(qū)塊可看做是賬本中的一頁。

交易單就是一頁當中一條交易記錄。

只要賬本收支記得清楚,不需要單獨的貨幣也可以交易。就像現(xiàn)在的刷卡付款,或者支付寶,微信支付一樣,不需要現(xiàn)金。

節(jié)點上的比特幣系統(tǒng)會將10分鐘里的交易先臨時記錄下來(存在內(nèi)存中),然后再用這些交易創(chuàng)建一個區(qū)塊

比特幣的由來

比特幣是貨幣,是賬本上記錄的錢,那初始的錢從哪來?商品貨幣時代,有多少黃金制造多少貨幣,信用貨幣時代,政府說開印鈔機,那貨幣就有了。比特幣世界中,初始的貨幣是“誰創(chuàng)建了賬本(區(qū)塊),就給誰錢”,一箭雙雕,既能激勵別人創(chuàng)建賬本,又解決了比特幣的發(fā)行問題。創(chuàng)建一個區(qū)塊,獎勵50個比特幣,注意沒有獨立的錢,只有數(shù)字,“50”記錄在交易單里。

曠工挖礦除了有新幣獎勵外,還有交易費,也稱曠工費。

交易過程(Transaction)

假設(shè)張三轉(zhuǎn)給李四10個幣,張三用比特幣交易軟件給李四的地址轉(zhuǎn)10個幣,那么在區(qū)塊中的交易單會是這樣的:

張三資金的來源(比如王二給的)

王二對這筆資金的簽名

李四的收款賬號

金額10個幣

張三的簽名

每個用戶在比特幣世界中都用一串數(shù)字表示,可以查到任何一筆交易的來源與去向,但不知道對應(yīng)現(xiàn)實中的誰

比特幣世界里的錢根本上是創(chuàng)建區(qū)塊獎勵的錢。

每個人的錢的來源有3種:創(chuàng)建區(qū)塊獎勵的,曠工費,別人轉(zhuǎn)給你的

2.安全機制

中心化機構(gòu)發(fā)行的信用貨幣有諸多弊端,依靠銀行等中介結(jié)構(gòu)提供的金融服務(wù)也有諸多不便和高昂的成本,假如通貨不再膨脹,假如可以像發(fā)送email一樣直接交易,顯示世界會變得更好一點。

去中心化交易的前提是安全,否則一切無從談起。

想象一個場景,張三給李四轉(zhuǎn)10元錢,要安全交易,需要達成下面的條件:錢確實是張三付的;張三有10元錢(類似生活中的錢是真的,不是假的);張三沒有把這10元錢給了別人(生活中的紙幣沒有這個問題,因為給了一個人就不能給了另一個人,這是數(shù)字貨幣獨有的問題)

SHA-256是一個散列函數(shù),輸入可以是任意長度的字符串,輸出是固定的256位長度的字符串。2^256是一個非常大的數(shù),比地球上所有的沙粒數(shù)還多。

256bit,32Byte,64個16進制數(shù)

數(shù)字簽名

簽名者有一個只有他自己知道密碼的密鑰(私鑰),可以對任何信息進行簽名,簽名者向別人發(fā)布一個公開的密鑰(公鑰),用公鑰可以解密用私鑰加密的信息。如果加密的明文在解密之前是知道的,那么解密后的內(nèi)容如果和明文一致,這能證明簽名確實是私鑰擁有者的,且私鑰擁有者無法抵賴。

解決是否是某個人支付的問題

對交易單的簽名和驗證

簽名:

A像B付款,構(gòu)建交易單T;

交易單T上有B的“公鑰”(這里加引號,表明實際并不是公鑰,而是公鑰的散列值),有A資金來源的交易單的數(shù)據(jù);

用B的公鑰和前一個交易單得出一個哈希值h

A用私鑰對哈希值 h 進行簽名,得到 s,簽名信息保存在交易單上

驗證:

B拿到交易單T后,從前一個交易單拿到A的公鑰,對簽名 s 解密,得到 x

B用自己的公鑰和前一個交易數(shù)據(jù)進行哈希運算,得到哈希值 y

如果 x 等于 y ,就證明交易單確實是 A 簽字的,且 A 無法抵賴,因為全世界只有 A 有能力進行這個簽名,因為這個私鑰別人是不會得到的。

解決是否有足夠的錢支付

因為資金來源索引到之前的交易單,對資金來源的交易單進行回溯,直到證明這些錢來源于挖礦獎勵

解決重復支付

禁止重復支付,是比特幣技術(shù)要解決的核心問題。它的核心,就是在 P2P 網(wǎng)絡(luò)體系下, 創(chuàng) 建一套全世界統(tǒng)一且唯一的 有前后次序的 交易記錄。

3. P2P 中建立全世界統(tǒng)一交易記錄的解決 方案

沒有統(tǒng)一的交易記錄的賬本是沒有意義的(賬簿數(shù)據(jù)不一致),生活中這樣的統(tǒng)一交易記錄的賬本由中央節(jié)點保證,那P2P網(wǎng)絡(luò)中如何做到呢?

統(tǒng)一交易記錄的核心數(shù)據(jù)包括每筆交易內(nèi)容,和每筆交易的前后次序。

交易順序確定,就可以解決雙花問題(雙重支付),已經(jīng)已經(jīng)支付出去的錢,不可能再支付出去一次。

決定賬簿前后關(guān)系的機制,采用了 時間戳機制( TimeStamps),用某種算法把區(qū)塊的順序固定下來,且記錄,并且可以驗證。

比特幣采用的是將前一個區(qū)塊的hash值保存在后一個區(qū)塊中。

比特幣解決交易的時序問題,以及防止被作弊者破壞,其是基于算法安全,而不是基于信任,法律,集權(quán),強迫,懲罰等手段。

對比特幣的工作量證明算法的形象描述

1,得到這個世界中已經(jīng)創(chuàng)建好的賬簿鏈中最后一個賬簿,用這個賬簿內(nèi)容做數(shù)據(jù),計算一 個 hash 值

2,不斷接收這個世界被廣播出來,且沒有被放入賬簿鏈的交易單。檢驗這些交易單(根據(jù) 交易單鏈信息和支付款項等信息),剔除掉不合理的(比如賬戶余額不足的支付)。

3,猜一個幸運隨機數(shù) n(比如從 0 一直到 999999.... )

4,把 1-3 步驟得到的數(shù)據(jù)都組織起來成為一個數(shù)據(jù) buffer,送入 sha256,得到一個 256bit 的散列值 x

5,檢查 x 這個整數(shù),前面若干 bit(比如 96bit)是否都是 0?如果是,這個 x 符合“工作 量證明難度”么? 如果符合,那么“工作量證明”游戲結(jié)束!

6,如果不是,從步驟 2 開始不斷重復。假如這個時候收到了一個其他節(jié)點發(fā)來的新的賬簿 數(shù)據(jù)塊。 還沒有猜出滿足要求的隨機數(shù),需要重新開始游戲。

得到幸運隨機數(shù) n ,工作量證明結(jié)束, 工作量證明 的目的是為了證明節(jié)點的誠實,為了獲取記賬權(quán),將區(qū)塊放到最長鏈的末尾。

獲得記賬權(quán)并不能保證打包的區(qū)塊會被加入到最長鏈,如果你打包的交易單有問題呢,如果同時其他節(jié)點也得到幸運隨機數(shù)呢。

區(qū)塊的創(chuàng)建的過程:

1.通過工作量證明獲得記賬權(quán)

2.打包區(qū)塊,全網(wǎng)廣播

3.重復支付檢測。其他節(jié)點對收到的區(qū)塊中的交易單進行重復支持檢測,根據(jù)已經(jīng)創(chuàng)建的世界賬簿鏈中交易單,逐一查找,以判斷這個臨時 賬簿內(nèi)所有的交易單,在世界中已經(jīng)發(fā)生的所有交易中從來沒有出現(xiàn)過。如果檢測交易單都合法后,節(jié)點會把收到的這個賬簿 , 臨時掛接到本地備份的世界賬簿鏈的最后

4.區(qū)塊鏈分支判斷。全網(wǎng)到處廣播著被新創(chuàng)建出來的臨時賬簿。一個節(jié)點在收到多個區(qū)塊后,會在本地自己維護的賬本上建立分支,之后此節(jié)點在先收到的賬本后面繼續(xù)工作量證明工作。當節(jié)點收到最長的工作鏈賬簿時,會拋棄掉比較短的分支。轉(zhuǎn)為在最長的鏈條上工作。

創(chuàng)建賬簿的過程,也就是檢測交易單正確性和順序的過程,也是保存交易單的過程。同時 它還是創(chuàng)建比特幣的過程。創(chuàng)建賬簿的機制是比特幣的核心。

交易確認過程:

1.交易單全網(wǎng)廣播

2.挖礦節(jié)點收集所有的新有效交易單,放到一個新區(qū)塊

3.節(jié)點根據(jù)新區(qū)塊數(shù)據(jù)和上一個區(qū)塊的散列值,計算一個隨機數(shù)(工作量證明)

4.工作量證明成功,打包區(qū)塊,全網(wǎng)廣播

5.其他節(jié)點驗證新區(qū)塊的有效性

6.驗證成功,正式掛到區(qū)塊鏈的末尾,在此區(qū)塊繼續(xù)創(chuàng)建新賬本

交易單被打包到區(qū)塊,掛到區(qū)塊鏈的末尾后,其后再掛6個賬本就能確認交易成功。因為要推翻6個區(qū)塊,幾乎不可能。這保證了比特幣體系的不可逆,不可篡改。

讀后感

這篇文章,用通俗易懂的的例子,講解了比特幣區(qū)塊鏈的運行原理??赐旰髮Ρ忍貛艆^(qū)塊鏈的理解更深入了。

但對技術(shù)細節(jié),這篇文章沒有仔細交代,更多技術(shù)實現(xiàn)細節(jié)在《精通比特幣》中有描述。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容