從零開始學習區塊鏈(2)


轉自 區塊鏈大師

以比特幣的區塊鏈為例,你可以把區塊鏈想象成一個比特幣的公共賬本,這個賬本:

  1. 存放在互聯網的各個比特幣節點上,每個節點都有一份完整的備份

  2. 里面記錄着自比特幣誕生以來的所有比特幣轉賬交易

  3. 賬本是分區塊存儲的,每一塊包含一部分交易記錄。每一個區塊都會記錄着前一區塊的id,形成一個鏈狀結構,因而稱為區塊鏈

  4. 當你要發起一筆比特幣交易的時候只需把交易信息廣播到p2p網絡中,礦工把你的交易信息記錄成一個新的區塊連到區塊鏈上,交易就完成了。(生成一個新的區塊)

這里有幾個問題:

  1. 如何保證用戶有足夠的余額,例如你只有十個幣,而你居然發起了一筆轉20個幣的交易怎么辦。這個問題很好解決,因為區塊鏈上記錄了所有的比特幣交易記錄,只需要回溯所有的和你賬戶相關的歷史交易就能知道你這個賬戶上到底有多少余額,余額不對礦工是會拒絕記錄你的交易的。由此你可能又會產生一個疑問,那么最初的比特幣是從哪里來的呢? 最初的比特幣是由系統獎勵給記錄區塊的礦工的。每一個區塊在生成的時候就會在生成這個區塊的礦工的賬戶上生成一定數量的新比特幣作為獎勵。(俗稱挖礦)礦工是指具有挖礦能力的服務器,一般這類服務器會有極高的運算能力

  2. 如何保證你的賬戶不被冒名頂替這問題也很好解決,用數字簽名技術就好了。每個比特幣賬戶都有公鑰和私鑰。你發起交易的時候用私鑰對交易信息簽名,礦工收到信息后用公鑰檢查一下簽名就好了。

  3. 那么多礦工,如何決定該由哪個礦工生成下一個區塊?

解決方案是這樣的:中本聰設計了一個數學問題,這個數學問題會耗費大量的計算機cpu時間才能得出答案,同時每一次得出的答案都會作為下一次計算的初始條件進行技術。全世界的礦工一起來計算這個問題,誰先得出答案,他就可以用這個答案生成一個新的區塊,再廣播到網絡中。

收到這個新塊數據的礦工會立即停止當前的計算,用新塊里的數據重新進行下一次計算。這就是所謂的“挖礦”。礦工產生的區塊一旦被網絡接受,他就能獲得一筆比特幣作為酬勞。這時要考慮一種情況:如果同時有兩個礦工各自得到一個正確答案,並各自生成了一個區塊廣播出去會發生什么呢?這時候在區塊鏈上同一個位置就有了兩個區塊,所謂的“分叉”就出現了。

分叉是絕對不允許的,所以當礦工發現區塊鏈分叉之后,會選擇最長的一條繼續計算,短的那條區塊鏈會被丟棄。仔細思考下這個體系,你會發現它幾乎無懈可擊。首先你不能憑空造出比特幣,只能挖礦獲得;其次你無法偽造交易,無法控制不屬於你的賬戶。一旦交易被確認,幾乎無法取消。我這里說“幾乎”,是因為有“51%攻擊”的存在。51%攻擊條件非常苛刻,這里就不擴展開講了。感興趣的朋友可以自行查閱相關資料:http://8btc.com/article-1949-1.html

 

現在你應該大概明白了區塊鏈是怎么回事。一個公開透明的可信賴的帳務系統,聽起來還不錯,是吧? 不過,區塊鏈遠遠不止是一個帳務系統那么簡單,它的意義之重大、用途之廣泛,一旦你意識到,你一定會像我一樣激動萬分的。區塊鏈技術使得DAC成為可能。DAC是一種能夠從根本上顛覆人類社會組織模式的東西。我相信它對社會的影響,會超過工業革命,成為互聯網給世界帶來的最為深刻的變革。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM