比特币base58源码解析_中本聪源码早期版本流出:区块链原名时间链,比特币内置虚拟扑克游戏...
本文來自 Bitcoin.com,原文作者:Jamie Redman
Odaily 星球日報譯者 | Moni
本周,一個比特幣源代碼早期版本浮出水面,立刻引起了加密貨幣社區的熱議。根據“中本聰”此前在論壇上發布的舊貼和郵件列表顯示,在 2009 年 1 月 3 日比特幣網絡正式上線之前,他曾將一個私人版本的比特幣源代碼分發給了一些人。
預發布的比特幣,以及一個完全不同哈希算法的廢棄創世區塊
從 3 月 13 日開始,加密貨幣社區一直在討論“中本聰”最初的比特幣源代碼,同時大家也發現“中本聰“很可能在比特幣區塊鏈官方發布之前,曾將一個私人版本的比特幣源代碼分發給了其他人。
這件事的起因,是著名比特幣支持者 Francis Pouliot 分享了一個非常古老的“中本聰“源代碼版本,同時他也展示了”中本聰“寫的一封信,其中詳細說明了他將一些”主要文件“發送給了一位叫做 James A. Donald 的人。
“中本聰“在 2008 年 11 月 17 日發送給 James A. Donald 的這封信中寫道:
“我的意思是一個節點只需要延遲交易池(pending-tx pool)來獲得它擁有的最佳分支,目前能夠想到的分支就是最好的分支,這個分支將有區塊組成,也是延遲交易池所需要的。我想我已經覆蓋了對等網絡廣播機制,每個節點向其鄰居節點發送一個包含交易和新區塊哈希的庫存列表。鄰居節點會發送請求獲取他們還沒有的項目(item),如果超時項目就永遠不會通過,他們會再次向擁有該項目的其他鄰居區塊發送請求。由于所有、或是大多數鄰居區塊應該擁有每一個項目,因此即便這些項目被一個區塊弄得亂七八糟,他們也可以從其他區塊中獲取,但一次只能嘗試一個區塊。
庫存請求數據方案引入了一點延遲,但請求速度最終會獲得提高,因為額外數據區塊將被保留在傳輸隊列之外,同時也會節省帶寬。
在過去的一年半時間里,我一直在處理所有這些細節工作,并進行代碼編寫,但仍有很多工作要做。白皮書里還沒有涉及功能細節,但源代碼即將推出,我把一些主要文件發給你了(目前可根據要求提高,完整版本稍后發布)”
而在分發給 Bitcointalk.org 成員“Cryddit”的源代碼中,也有一些被認為是最早比特幣代碼版本的有趣發現。舉個例子,在“Cryddit”收到的比特幣代碼版本里出現了“比特幣礦工”這個術語,這似乎是中本聰第一次將這些網絡參與者描述為“礦工”。有趣的是,在比特幣官方白皮書中并沒有使用“礦工”這個術語——在整篇文章中,他們都被稱為“節點”。此外,根據“中本聰”發送給“Cryddit”的源代碼,區塊鏈這個詞其實最初被成為“時間鏈(timechain)”。
根據 Bitcointalk.org 用戶 Deepceleron 在 2009 年 1 月 3 日(即比特幣創世區塊誕生的同一天)的截圖顯示,在區塊 213 有一個為發布的區塊鏈和三個其他連接,如下:
比特幣早期版本源代碼種是這樣解釋的:
“時間鏈是一個樹狀結構,從根部的創世區塊開始。每個區塊都可能會有多個候選區塊成為他們下一個區塊。通過主鏈/最長鏈,pprev 和 pnext 會連接到一個路徑上。區塊索引可能有多個 pprev 指向它,但是 pnext 只指向最長的分支。或者,如果區塊不是最長鏈的一部分,區塊索引可能就會為空(null)。”
該早期版本源代碼中還提到:
“節點將新交易收集到區塊里,并將這些交易散列到哈希樹種,然后掃描 nonce 值,以便讓區塊的哈希值能夠滿足工作量證明的要求。當節點解決了工作量證明之后,他們就會把區塊廣播給每個人,并且將區塊添加到時間鏈種。區塊中的第一個交易是一個特殊交易,其中會創建一個新代幣,并且被該區塊創建者所有。”
(編者注:nonce 是 Number used once 或 Number once 的縮寫,在密碼學中Nonce是一個只被使用一次的任意或非重復的隨機數值,在加密技術中的初始向量和加密散列函數都發揮著重要作用,在各類驗證協議的通信應用中確保驗證信息不被重復使用以對抗重放攻擊。)
比特幣早期代碼種另一個有趣的發現,就是“中本聰”其實最初命名了兩個比特幣更小的計價單位,分別是“coin”(1,000,000)和“cent”(10,000),而不是現在人們所使用的“聰(satoshi)”。此外,比特幣早期代碼里還提到了某種評級系統,并談到“原子(atom)”和“用戶評論”等問題。
下圖:比特幣最小單位最初并不是叫“聰(satoshi)”,而是叫“coin”或“cent”
根據比特幣早期開發人員 Mike Hearn 的說法,“中本聰”最初打算在比特幣協議里面集成一個點對點(P2P)平臺,但是他并沒有完成相關代碼編寫工作,因此這個想法也就被擱置了。Mike Hearn 還透露比特幣遠大馬中有一個廢棄的創世區塊,而且具有完全不同的哈希算法。如果這個被廢棄的創世區塊是用來測試的,那么它誕生的時間可能會是 2008 年 9 月 10 日。
上圖:從這部分代碼來看,“中本聰”可能想要推出一個類似于 Openbazaar 的 P2P 平臺,而且這個想法已經寫在了比特幣協議里。但是當比特幣網絡發布之后,構建這個平臺的想法卻被遺棄了。
互聯網中繼聊天客戶端、P2P 平臺和一個虛擬撲克游戲
除了在 2009 年 1 月 3 日發布之前的早期版本之外,比特幣 0.1.0 版本的源代碼里也有一些非常有趣的細節。例如,最初的比特幣軟件里包含了一個互聯網中繼聊天(IRC)客戶端,旨在創建一種更簡單的消息引導傳遞方式。此外,在比特幣 0.1.0 代碼版本的原始庫里,還發現包含了一個創建虛擬撲克游戲的框架,這個游戲是在 2008 年 4月 16 日被添加到比特幣里的。
不過,就在比特幣網絡正式發布之后,之前的 P2P 平臺和虛擬撲克游戲在內的很多想法都沒有實現。而互聯網中繼聊天客戶端的想法雖然更新了幾個版本,但在比特幣 0.8.2 版本之后就被完全刪除了。
從下圖代碼種可以看出,比特幣曾經還有一個沒有被開發的內置虛擬撲克游戲。
時至今日,沒有人知道“中本聰”為什么要使用那些比特幣術語,也不知道他對這些術語的具體定義是什么,以及為什么要放棄 P2P 平臺和內置撲克游戲應用?!爸斜韭敗币恢痹诰S護比特幣代碼,一直到 0.3.19 版本,但是卻在 2010 年神秘離開,并把工作移交給了 Gavin Andresen。
但至少,從本文提到的比特幣源代碼早期版本中,讓我們對這位比特幣神秘創造者有了更多了解。
總結
以上是生活随笔為你收集整理的比特币base58源码解析_中本聪源码早期版本流出:区块链原名时间链,比特币内置虚拟扑克游戏...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电信笔试C语言,2021中国电信考试试题
- 下一篇: Dnf资源分析与提取工具(附代码)