重新為比特幣白皮書劃重點(diǎn),并附送 8 個(gè)今天讀起來依然散發(fā)著智慧光芒的中本聰問答。
中本聰認(rèn)為比特幣系統(tǒng)應(yīng)該具有這樣的特點(diǎn):一旦該系統(tǒng)的 0.1 版本開始運(yùn)行,整個(gè)系統(tǒng)的核心設(shè)計(jì)將永遠(yuǎn)保持不變。他把該目標(biāo)作為比特幣工程實(shí)現(xiàn)的指導(dǎo),最典型的一個(gè)體現(xiàn)就是使用腳本引擎,使得系統(tǒng)可以支持未來每一種可能的交易類型。
十年過去了,比特幣系統(tǒng)似乎正如中本聰希望的那樣,并未發(fā)生核心設(shè)計(jì)的改變。這也意味著,在十年之后的今天,比特幣白皮書仍然是我們理解比特幣、甚至理解區(qū)塊鏈時(shí),最重要的文獻(xiàn)。
當(dāng)初大家在郵件列表和 bitcointalk 論壇中對比特幣提出的那些問題,現(xiàn)在也可能依然會(huì)困擾我們。那么,中本聰當(dāng)時(shí)的回答也許可以作為我們?nèi)缃裼懻撨@些問題的起點(diǎn)。就像中本聰更偏愛的系統(tǒng)設(shè)計(jì)思路是「不重復(fù)造輪子」,在討論問題時(shí),我們也可以避免重復(fù)造輪子。
出于上述兩方面的原因,我撰寫了本文,希望從重讀比特幣白皮書開始,從源頭理解比特幣。
本文包含兩個(gè)部分:第一部分是對比特幣白皮書的解讀,不過需要指出,我的這種解讀只是理解白皮書的一個(gè)角度,而且這種解讀更多是從技術(shù)角度來理解比特幣;第二部分,是郵件列表和 bitcointalk 論壇里關(guān)于比特幣的一些問題,以及中本聰對這些問題的回答,我覺得這些問題放在今天,依然對更好的理解比特幣有著重要的啟發(fā)意義。
細(xì)讀比特幣白皮書,從這幾個(gè)點(diǎn)入手
1. 電子現(xiàn)金
比特幣白皮書的標(biāo)題是《比特幣:一種點(diǎn)對點(diǎn)的電子現(xiàn)金系統(tǒng)》,它指的是比特幣是一種完全通過點(diǎn)對點(diǎn)技術(shù)實(shí)現(xiàn)的電子現(xiàn)金系統(tǒng)。這其中的關(guān)鍵詞「電子現(xiàn)金」也許可以作為我們理解比特幣的重要線索。
當(dāng)我們在互聯(lián)網(wǎng)上進(jìn)行交易時(shí),并不像在線下使用現(xiàn)金時(shí)那樣可以直接把錢給到參與交易的另一方,而是必須依賴金融機(jī)構(gòu)作為可信第三方來處理這筆電子支付。這種基于信任的模型有很多缺陷,比如會(huì)增加交易成本,比如所有的交易實(shí)際上都是可逆轉(zhuǎn)的。
有沒有可能在電子支付中、或者說在互聯(lián)網(wǎng)支付中,發(fā)明一種新的交易媒介,它允許任意雙方在不需要信任第三方的情況下直接交易,就像現(xiàn)金交易一樣?
這正是比特幣系統(tǒng)想要實(shí)現(xiàn)的目標(biāo):電子現(xiàn)金。
中本聰曾在討論比特幣價(jià)值的時(shí)候,讓大家想象一種稀有的金屬:它沒有任何實(shí)際的用途,也不適合用作裝飾,但它非常神奇地可以在通信通道中傳輸。那么,當(dāng)這種金屬不論是因?yàn)槭裁丛颢@得了某種價(jià)值后,人們是否想要擁有這種金屬作為交易媒介。中本聰?shù)倪@個(gè)比喻有助于我們更好地理解「電子現(xiàn)金」的含義。
2. 電子現(xiàn)金的所有權(quán)問題
要實(shí)現(xiàn)電子現(xiàn)金,第一件事是要能夠確定「現(xiàn)金」的所有權(quán)。在線下這種識別很容易,誰拿著那張錢,那張錢就是誰的;但在線上沒有實(shí)體貨幣,這種方法顯然不行,因此比特幣通過「數(shù)字簽名」識別所有權(quán),該方式與雅浦島上確認(rèn)貨幣所有權(quán)的方式有幾分相似之處。
太平洋的雅浦島上沒有金屬資源,島上的居民從距離該島 400 英里的帕勞島上開采石灰?guī)r,再把石頭運(yùn)回小島作為貨幣使用。買賣雙方在交易中決定買家使用多大的石幣付費(fèi),如果那塊石頭太大,那么收款人只需要在付款人的石頭上做個(gè)標(biāo)記,就可以把這塊石頭的所有權(quán)轉(zhuǎn)移給自己,雖然石頭可能依然放在付款人的家中。
比特幣在網(wǎng)絡(luò)中的存在形式是一個(gè)數(shù)字簽名鏈。交易時(shí),原所有者在該數(shù)字簽名鏈的末尾加上新所有者的公鑰(實(shí)際是公鑰的哈希),就完成了比特幣所有權(quán)的轉(zhuǎn)移,就像雅浦島人在石幣上做個(gè)標(biāo)記 / 簽名就完成了石頭所有權(quán)的轉(zhuǎn)移一樣。
也就是說,比特幣數(shù)字簽名鏈上最新的公鑰是屬于誰的(擁有與公鑰對應(yīng)的私鑰),這筆「電子現(xiàn)金」就是誰的。
3. 電子現(xiàn)金的雙重支付問題
在實(shí)現(xiàn)了電子現(xiàn)金的所有權(quán)后,接下來需要解決的問題就是雙重支付(或稱為「雙花」)的問題。這或許是設(shè)計(jì)電子現(xiàn)金時(shí)最核心、也最難解決的問題。
讓我們回到現(xiàn)金,通過對比找出電子現(xiàn)金為什么會(huì)面臨雙重支付問題,以及可以如何去解決該問題。
在使用現(xiàn)金支付時(shí),我們把一張錢先給了誰,那張錢就是誰的,因此我們無法花費(fèi)同一張錢兩次,抽象理解的話就是,我們用時(shí)間確定支付事件發(fā)生的先后次序,并只認(rèn)可先發(fā)生的那筆支付。
與現(xiàn)金支付相同的是,在分布式網(wǎng)絡(luò)中,我們同樣只認(rèn)可最早發(fā)生的那筆交易。與現(xiàn)金支付不同的是,在分布式的網(wǎng)絡(luò)中,我們無法通過時(shí)間確定交易發(fā)生的順序,因?yàn)榫W(wǎng)絡(luò)的參與者們并未對時(shí)間達(dá)成共識。最簡單的例子,一臺計(jì)算機(jī)認(rèn)為時(shí)間是上午 9:01,另一臺計(jì)算機(jī)可以認(rèn)為時(shí)間是上午 9:02,物理時(shí)間是行不通的。
中本聰選擇的方法是通過時(shí)間戳,實(shí)現(xiàn)參與者在時(shí)間上的共識,從而使得系統(tǒng)能使用這種時(shí)間共識確定事件發(fā)生的順序。
時(shí)間戳功能是比特幣的核心,以至于中本聰稱比特幣系統(tǒng)是一個(gè)「分布式的安全的時(shí)間戳服務(wù)器」。
我們也許可以這么去理解時(shí)間戳:在現(xiàn)實(shí)世界中,一秒就是一秒,每一秒與另一秒的長短是完全相同的,一秒接著一秒構(gòu)成時(shí)間的順序;在比特幣系統(tǒng)中,「一秒」就是一個(gè)時(shí)間戳,如果用物理時(shí)間衡量,每一秒的長短是由一個(gè)新區(qū)塊被挖出來的時(shí)間決定的,大約等于 10 分鐘,每一秒與另一秒的長短各不相同。但如果用比特幣時(shí)間衡量,可以認(rèn)為每一秒與另一秒并無區(qū)別,一秒接著一秒(每一個(gè)新的時(shí)間戳被添加到之前的時(shí)間戳之后)構(gòu)成一個(gè)連貫的時(shí)間的順序。
交易被打包進(jìn)區(qū)塊,區(qū)塊被蓋上時(shí)間戳,也就相當(dāng)于每筆交易都有唯一確定的發(fā)生「時(shí)間」,節(jié)點(diǎn)在處理新的交易時(shí),會(huì)去檢查這筆交易對應(yīng)的「電子現(xiàn)金」在當(dāng)下的時(shí)間之前有沒有被花費(fèi)過,如果沒有,就接受這筆交易,并為它打上時(shí)間戳(確定發(fā)生的時(shí)間);如果被花費(fèi)過,就拒絕這筆交易。如此一來,「電子現(xiàn)金」的雙重支付問題就得到了解決。
在一個(gè)分布式系統(tǒng)中,誰來蓋時(shí)間戳,或者說誰來決定上一秒的時(shí)間結(jié)束了,接下來進(jìn)入到下一秒?通過工作量證明(PoW),誰能搶先算出落在某個(gè)區(qū)間內(nèi)的哈希數(shù)值,誰就能蓋時(shí)間戳。
這個(gè)時(shí)間戳如何獲得共識?最長鏈原則,最長鏈代表的是大多數(shù)(大多數(shù)算力)的決定。工作量證明加上最長鏈原則也被稱為中本聰共識,共識是所有區(qū)塊鏈系統(tǒng)最核心的部分,它的本質(zhì)是為了實(shí)現(xiàn)分布式的時(shí)間戳服務(wù)。
當(dāng)所有權(quán)問題和雙重支付問題都得到解決之后,我們就有了一種可以在網(wǎng)絡(luò)中使用的電子現(xiàn)金,它使得在線支付可以從一方直接發(fā)送給另一方,而無需通過金融機(jī)構(gòu)。中本聰把他實(shí)現(xiàn)的這種系統(tǒng)稱為比特幣。
二、八個(gè)依然散發(fā)智慧光芒的中本聰問答
中本聰在郵件列表和 bitcointalk 論壇中回復(fù)了許多關(guān)于比特幣的問題,他對自己的答案很有信心,他認(rèn)為這些問題幾乎都是他在設(shè)計(jì)系統(tǒng)前就已經(jīng)考慮到了的。多年之后,這些回答讀起來依然散發(fā)著智慧的光芒。
我們選擇了那些放到今天依然有意義的問答,并歸納整理如下。
1. 挖礦是不是浪費(fèi)能源?
中本聰回復(fù):這和黃金開采相似。黃金開采的成本與黃金的價(jià)格水平是一致的,開采是一種浪費(fèi),但這種浪費(fèi)遠(yuǎn)少于黃金作為交換媒介所產(chǎn)生的效用。比特幣也一樣,把比特幣用于交換媒介所產(chǎn)生的效用遠(yuǎn)遠(yuǎn)高于挖比特幣需要的電力。
2. 比特幣的價(jià)格模型是可持續(xù)的嗎?
中本聰回復(fù):當(dāng)比特幣還沒有在市場上確立價(jià)格之前,基于生產(chǎn)成本的估值模型是有意義的,任何商品的價(jià)格都趨向于生產(chǎn)成本。但是在幾年以后,當(dāng)新挖出來的比特幣只占供應(yīng)量很小一部分的時(shí)候,將會(huì)是比特幣的價(jià)格決定生產(chǎn)成本,而不是反過來。NLS (一位社區(qū)成員)的基于能源消耗的估值模型是一個(gè)很好的起點(diǎn)。但在未來,市場力量將是決定比特幣價(jià)格的主要因素。
3. 如果「壞人」比「好人」有更多的算力怎么辦?
中本聰回復(fù):這首先要求單個(gè)「壞人」的算力比所有「好人」的算力之和更大;其次,即使單個(gè)「壞人」的算力更大,他能做的只是雙花自己的錢,他需要通過買東西花費(fèi)這筆錢(如今可以是在交易所交易),然后在收到「貨物」之后,通過攻擊網(wǎng)絡(luò)重新花費(fèi)這筆錢。這種攻擊對于攻擊者來說或許并不劃算,如果有這種算力還不如好好的挖礦。
4. 比特幣是匿名的嗎?
中本聰回復(fù):比特幣的匿名性取決于比特幣地址是否關(guān)聯(lián)了使用者的個(gè)人信息。如果沒有,那么就是匿名的,因?yàn)楸忍貛诺刂肥且淮S機(jī)數(shù)字,它本身是不包含識別信息的。為了保護(hù)隱私,每個(gè)比特幣地址最好只使用一次。
5. 比特幣網(wǎng)絡(luò)可以發(fā)送「私人信息」嗎?消息加密是比特幣的內(nèi)置功能嗎?
中本聰回復(fù):全世界都可以看到這條消息,它是完全公開的。因?yàn)?ECDSA 只能用于數(shù)字簽名,不能用于消息加密。RSA (比特幣并未使用該算法)可以用于消息加密,但它的數(shù)據(jù)量太大了,不管是對存儲(chǔ)空間還是對帶寬的要求都比 ECDSA 大一個(gè)量級,使用 RSA 是不合適的。
永久記錄一條所有人都可以看到的消息是不明智的。如果需要消息系統(tǒng),它應(yīng)該是一個(gè)與比特幣網(wǎng)絡(luò)平行的獨(dú)立系統(tǒng),消息不應(yīng)該被記錄在區(qū)塊鏈上。可以用比特幣密鑰對給消息簽名,以證明消息的來源。
6. SHA-256 被攻破了怎么辦?(此問題類似于量子計(jì)算來了怎么辦)
中本聰回復(fù):SHA-256 非常難以被破解,即使被破解了,我們可以在麻煩到來之前就有序地用新的算法替換掉它。
7. 比特幣的可分割性好嗎?
中本聰回復(fù):比特幣顯示為 1.00,但它實(shí)際上包含 8 個(gè)小數(shù)位,是 1.00000000。
8. 那些找不回私鑰的丟失了的比特幣怎么辦?
中本聰回復(fù):這些比特幣只會(huì)讓其他人的比特幣更值錢,可以把它看作是對所有人的捐贈(zèng)。
三、重回最開始的地方
人們對比特幣的解讀有很多,對區(qū)塊鏈的解讀以及由此延伸開來的關(guān)于區(qū)塊鏈能做什么的論點(diǎn)則更多。但如果你想從源頭出發(fā)認(rèn)識比特幣、認(rèn)識區(qū)塊鏈,下邊是還不錯(cuò)的旅程開始的地方。
看上去最遠(yuǎn)的路,也許是最快的路。
責(zé)任編輯;zl
評論
查看更多