官术网_书友最值得收藏!

  • 區塊鏈:技術驅動金融
  • (美) 阿爾文德·納拉亞南 約什·貝努等
  • 1238字
  • 2019-01-05 03:44:48

3.4 比特幣的區塊

現在,我們已經了解了單個交易是如何創建的,但是在第2章里提到,所有交易都是被打包放入區塊的,為什么要這么做呢?其實這是為了性能優化,如果每一個交易都要礦工單獨去達成共識,那整個系統的交易處理速度將會變得非常慢。而如果我們把大量交易組織起來放入一個區塊,得到的哈希鏈就更短,大大提高了驗證區塊鏈數據結構的效率。

區塊鏈(塊鏈)非常聰明地把兩個基于哈希值的數據結構結合起來:第一個數據結構是區塊的哈希鏈,每一個區塊都有一個區塊頭部,里面有一個哈希指針指向上一個區塊。第二個數據結構是一個樹狀數據結構,也就是以樹狀結構把區塊內所有交易的哈希值進行排列存儲。也叫梅克爾樹(請參考第1章),它以一種非常高效的形式把所有交易組織起來。為了證明某個交易在某個區塊內,可以通過樹內路徑來進行搜索,而樹的長度就是區塊內所包含的交易數目的對數(見圖3.7)。

我們在第2章中提到過(在第5章還將繼續涉及),區塊頭部還包含了挖礦謎題也就是競爭記賬權利問題。——譯者注相關的信息。還記得,區塊頭部的哈希函數必須以一大堆零開頭才有效,此外,區塊頭部還要包含一個礦工可以修改的“臨時隨機數”、一個時間戳和一個點數(點數用來表示找到這個區塊的難度)。區塊頭部是挖礦過程中唯一哈希值化的,所以要驗證一個區塊的鏈,只要檢查區塊頭部即可。在區塊頭部唯一的交易數據是交易樹的樹根——“mrkl_root”。

圖3.7 比特幣的區塊鏈有兩個哈希結構

注:一個就是把區塊聯結在一起的哈希鏈,另一個就是區塊內部的交易哈希值梅克爾樹。

每個區塊的梅克爾樹上都有一個有意思的交易,叫作幣基交易(見圖3.8)。這就類似于財奴幣里的造幣交易。這個交易創造新的比特幣,它看上去像是一個普通的交易,但有幾點不同:

圖3.8 幣基交易

注:幣基交易創造新的比特幣,這個交易并不消費之前交易輸出的比特幣,因此,沒有指針指向“上一交易”。幣基交易的參數可以是任意數據。幣基交易的價值等于區塊獎勵加上區塊中包含的所有交易費。

1.它永遠只有一個單一的輸入與單一的輸出。

2.這個交易并不消費之前交易輸出的比特幣,因此,沒有指針指向“上一交易”。

3.這個輸出值目前大約是25個幣多一點點。這個輸出值就是礦工的挖礦收入。它由兩部分組成:一部分是獎勵的25個比特幣(獎勵在每生產210 000個區塊——大概4年——后減半),另一部分是所有交易的交易手續費。

4.還有一個特別的地方就是“幣基”參數,礦工可以放任何值進去。

這里值得一提的是,當比特幣的第一個區塊被鑄造出來的時候,該區塊的幣基參數提及了倫敦《泰晤士時報》的一則報道:2009年1月3日,財政大臣拯救銀行。這被看成比特幣發明的政治動機,同時也很好地證明了第一個區塊的打包時間是在2009年1月3日,上述報道出來之后。這也是礦工使用“幣基”參數來支持很多比特幣的不同特性。

想更好了解比特幣的區塊和交易結構,最好的辦法是自己瀏覽區塊鏈的數據,有很多網站提供數據,比如blockchain.info,在該網站上可以看到所有交易,以及每筆交易所引用的上一筆交易。由于比特幣的數據都是公開的,一些程序員已經開發出了全圖形化的展現方式。

主站蜘蛛池模板: 吴川市| 内江市| 正镶白旗| 崇礼县| 犍为县| 洛隆县| 肇东市| 莱芜市| 南澳县| 遂川县| 正阳县| 吴堡县| 云南省| 祁东县| 揭东县| 贵州省| 江门市| 信丰县| 定州市| 都江堰市| 天水市| 黄平县| 增城市| 文登市| 桐梓县| 白城市| 剑川县| 通化县| 灌阳县| 临泉县| 南开区| 西昌市| 合作市| 锡林郭勒盟| 新平| 隆化县| 铜陵市| 平远县| 甘泉县| 商丘市| 青海省|