比特幣的漫漫長(zhǎng)路區(qū)塊鏈

馮超 2018-08-05 18:15
分享到:
導(dǎo)讀

比特幣的想法從何而來?為什么有些技術(shù)存活了下來,而另一些則會(huì)死亡?復(fù)雜的技術(shù)創(chuàng)新要成功地商業(yè)化需要些什么?

通往比特幣的道路上到處充斥者失敗的嘗試。我已經(jīng)編制了大約一百個(gè)密碼支付系統(tǒng),無論是電子錢包還是信用卡為基礎(chǔ)的技術(shù),在某些方面它們是非常著名的。有些是已經(jīng)得到了很好的學(xué)術(shù)引用,有些則是實(shí)際部署和測(cè)試的系統(tǒng)。這份名單上所有的名字,有可能你只認(rèn)識(shí)一個(gè)——Payply。而Payply存活的唯一原因,僅僅是它迅速轉(zhuǎn)離了原來以手持設(shè)備密碼支付為核心的想法!

從這段歷史中可以學(xué)到很多東西。比特幣的想法從何而來?為什么有些技術(shù)存活了下來,而另一些則會(huì)死亡?復(fù)雜的技術(shù)創(chuàng)新要成功地商業(yè)化需要些什么?如果不出意外,這個(gè)故事會(huì)讓你欣賞到,我們最終擁有的一個(gè)真正的、有效的互聯(lián)網(wǎng)付款機(jī)制是多么地引人注目。

表1 : 值得注意的電子支付系統(tǒng)和提議

1.傳統(tǒng)金融的安排

回溯歷史,在有政府和貨幣之前,一個(gè)為獲取貨物而運(yùn)作的系統(tǒng)是以物易物。比方說,Alice想要一個(gè)工具,Bob需要藥品。如果他們恰好都有對(duì)方需要的東西,那么他們可以交換,兩者都能滿足他們的需要。

另一方面,假設(shè)Alice有食物,她希望通過交換得到一個(gè)工具,然而Bob擁有一個(gè)工具,但沒有食物的需求,反而他需要藥物。Alice和Bob不能相互交易,但如果有第三個(gè)人,卡羅爾,她有藥物,想交換得到食物,那么就有可能安排三方交易,每個(gè)人得到他們所需要的。

當(dāng)然,它的缺點(diǎn)是需要協(xié)調(diào)——組織一群人在同一個(gè)時(shí)間、同一個(gè)地點(diǎn),讓他們的需求達(dá)成一致。為了解決協(xié)調(diào)的問題,出現(xiàn)了兩個(gè)系統(tǒng):信貸和現(xiàn)金。歷史學(xué)家、人類學(xué)家和經(jīng)濟(jì)學(xué)家對(duì)這兩者哪一個(gè)是最先發(fā)展起來的起了爭(zhēng)論,但這對(duì)我們的目的無關(guān)緊要。

在一個(gè)基于信用的系統(tǒng)中,上面例子中的Alice和鮑伯將能夠與對(duì)方進(jìn)行交易。鮑伯會(huì)給Alice這個(gè)工具,Alice則欠鮑伯一個(gè)人情。換句話說,Alice有個(gè)債務(wù),她需要在未來的某個(gè)時(shí)候與鮑伯和解。Alice的物質(zhì)需求現(xiàn)在已經(jīng)得到滿足,但她想要取消債務(wù),所以這是她的新“希望”。如果Alice在未來遇到卡羅爾,Alice可以用食物交易卡羅爾的藥物,然后再返回到Bob處,給Bob藥物并取消債務(wù)。

另一方面,在以現(xiàn)金為基礎(chǔ)的系統(tǒng)中,Alice會(huì)從Bob那里購(gòu)買工具。后來,她可能會(huì)把食物出售給卡羅爾,卡羅爾則能把他的藥物賣給Bob,以此來完成這一循環(huán)。這些交易可以以任何順序發(fā)生,只要確保每筆交易中的買方手頭有現(xiàn)金。最后,當(dāng)然,這就像錢從未轉(zhuǎn)過手一樣。

沒有哪個(gè)系統(tǒng)更勝一籌。基于現(xiàn)金為基礎(chǔ)的系統(tǒng),需要在無交易發(fā)生的情況下,初始分配一些“自舉”現(xiàn)金。基于信用為基礎(chǔ)的系統(tǒng)不需要引導(dǎo),但缺點(diǎn)是任何欠了債務(wù)的債權(quán)人都承擔(dān)了一些風(fēng)險(xiǎn),債務(wù)人有可能永遠(yuǎn)不會(huì)回來償還債務(wù)。

現(xiàn)金也能讓我們精確地知道某物的價(jià)值。假如你是物物交換,很難說一個(gè)工具的價(jià)值超過了藥物,或者藥物的價(jià)值超過了食物。現(xiàn)金讓我們用數(shù)據(jù)來談?wù)搩r(jià)值。這就是我們今天使用混合系統(tǒng)的原因——甚至當(dāng)我們使用信用卡,我們依舊用它所需的現(xiàn)金來度量債務(wù)。

這些想法的出現(xiàn)有很多背景,尤其是用戶在線交易某種虛擬物品。例如,對(duì)等(P2P)文件共享網(wǎng)絡(luò),必須處理好“不速之客”的問題,也就是那些下載了文件卻沒有反過來共享文件的用戶。雖然可以交換文件,但依舊有協(xié)調(diào)的問題:尋找誰真正擁有你想要的文件,還有希望你有那個(gè)確切的文件。在MojoNation項(xiàng)目和Karma學(xué)術(shù)建設(shè)中,用戶必須初始分配一些虛擬現(xiàn)金,以便他們接受文件時(shí)支付,發(fā)送文件副本給其他用戶時(shí)獲得報(bào)酬。在這兩種情況下,一個(gè)或多個(gè)中央處理器幫助跟蹤用戶的余額,并提供內(nèi)部貨幣與傳統(tǒng)貨幣之間的兌換服務(wù)。雖然MojoNation沒有存活足夠長(zhǎng)時(shí)間來實(shí)現(xiàn)這樣的交換,它卻成為當(dāng)今使用的一些協(xié)議的知識(shí)產(chǎn)權(quán)祖先:比特流BitTorrent和開源分布式文件儲(chǔ)存系統(tǒng)Tahoe-LAFS.

2.在線信用卡的麻煩

就基本概念這一點(diǎn),我們可以將大量的電子支付方式分成信用和現(xiàn)金兩堆。比特幣顯然是在“現(xiàn)金”堆,但讓我們先看看另一個(gè)。

信用卡交易是當(dāng)今網(wǎng)絡(luò)上使用的最主要支付方式。如果你曾經(jīng)從Amazon這樣的在線賣家那里買過東西,你就知道這個(gè)安排是如何進(jìn)行的。你輸入你的信用卡詳細(xì)信息,把它發(fā)送到Amazon,然后亞馬遜轉(zhuǎn)發(fā)這些信用卡詳細(xì)信息,并與“系統(tǒng)”—— 涉及處理器,銀行,信用卡公司和其他中介的金融系統(tǒng)進(jìn)行交談。

另一方面,如果你使用像PayPal這樣的東西,你所看到的就是一個(gè)中介架構(gòu)。在你和賣方之間有一家公司,你將信用卡信息發(fā)送給這個(gè)中介,該中介批準(zhǔn)交易并通知賣方。每一天結(jié)束時(shí),中介會(huì)與賣方結(jié)平賬目。

你從這個(gè)架構(gòu)中得到的好處是,你不必向賣家提供你的信用卡詳細(xì)信息,這可能是一種安全風(fēng)險(xiǎn)。你甚至不需要讓賣家知道你的身份,這很好地保護(hù)了你的隱私。它的不足是你失去了直接與賣家簡(jiǎn)單互動(dòng)的機(jī)會(huì)。你和賣家可能不得不在同一個(gè)第三方機(jī)構(gòu)都擁有賬戶。

今天,我們大多數(shù)人都樂于在網(wǎng)上購(gòu)物時(shí)提供信用卡信息,或者至少我們勉強(qiáng)接受。我們也習(xí)慣于收集有關(guān)網(wǎng)上購(gòu)物和瀏覽活動(dòng)的數(shù)據(jù)公司。但在20世紀(jì)90年代,網(wǎng)絡(luò)是個(gè)新新事物,協(xié)議級(jí)加密標(biāo)準(zhǔn)正在出現(xiàn),這些企業(yè)使消費(fèi)者深感不安和猶豫。特別是,通過不安全的渠道將信用卡信息交給不知名的網(wǎng)絡(luò)供應(yīng)商被認(rèn)為是瘋狂的。在這樣的環(huán)境下,人們對(duì)中介架構(gòu)產(chǎn)生了濃厚的興趣。

FirstVirtual是一個(gè)早期的支付中介,它成立于1994年。順便說一下,他們是最早建立純粹虛擬辦公室的公司之一,員工遍布全國(guó),通過互聯(lián)網(wǎng)進(jìn)行溝通,因此獲得了這個(gè)名字。

FirstVirtual提出的系統(tǒng)有點(diǎn)像PayPal當(dāng)前的系統(tǒng),但在它先于Paypal之前很多年。作為用戶,你要注冊(cè)并提供你的信用卡詳細(xì)信息。當(dāng)你想要從賣家那里購(gòu)物時(shí),賣家聯(lián)系FirstVirtual請(qǐng)求所要求付款的詳細(xì)信息,F(xiàn)irstVirtual將與你確認(rèn)這些信息,你的信用卡則會(huì)在你批準(zhǔn)后付款。但有兩個(gè)細(xì)節(jié)很有趣。首先,所有這些通信都發(fā)生在電子郵件上;當(dāng)時(shí)的Web瀏覽器剛剛開始普遍支持像HTTPS這樣的加密協(xié)議,而多方性的支付協(xié)議也增加了其他的復(fù)雜性。(其他中介機(jī)構(gòu)將信息編碼到URL中或在HTTP之上使用自定義的加密協(xié)議)第二,用戶有三個(gè)月的時(shí)間來質(zhì)疑這筆費(fèi)用,商人則只能在三個(gè)月之后收到錢!今天的商家能立即得到報(bào)酬,但是,仍然有用戶提出退款或?qū)π庞每▽?duì)賬單存有爭(zhēng)議的風(fēng)險(xiǎn)。如果發(fā)生這種情況,商家將不得不將付款退還給信用卡公司。

在90年代中期,出現(xiàn)了一種稱之為集合架構(gòu)(SET)與這些中介架構(gòu)進(jìn)行競(jìng)爭(zhēng)。SET即避免了用戶向商家發(fā)送信息卡信息的需要,同時(shí)還免除了用戶不得不在第三方進(jìn)行注冊(cè)的麻煩。在SET中,當(dāng)你準(zhǔn)備購(gòu)買時(shí),你的瀏覽器會(huì)將你的交易細(xì)節(jié)傳送給你計(jì)算機(jī)上的購(gòu)物程序,該購(gòu)物程序?qū)⒛愕男庞每ㄐ畔⒓用埽员愠说谌經(jīng)]有人可以解密它。以這種方式加密了你的數(shù)據(jù)后,你就可以放心的將其發(fā)送給賣家。賣家機(jī)械地將加密數(shù)據(jù)轉(zhuǎn)發(fā)給第三方,連同他們自己對(duì)交易細(xì)節(jié)的看法。第三方揭秘你的數(shù)據(jù),當(dāng)你的想法與賣家的想法相符時(shí)才批準(zhǔn)交易。

SET是一個(gè)由VISA和萬事達(dá)主導(dǎo),當(dāng)今諸多技術(shù)巨頭:Netscape、IBM、Mircrosoft、Verisign和RSA參與開發(fā)的標(biāo)準(zhǔn)。它是一個(gè)規(guī)范總括,一統(tǒng)了幾個(gè)現(xiàn)有提議。

有一家采用SET的公司被稱為CrberCash,在很多方面這是一個(gè)有趣的公司。他們除了處理信用卡支付,還有一款名為CyberCoin的數(shù)字現(xiàn)金產(chǎn)品。這是一個(gè)小額支付系統(tǒng),用于支付例如用幾美分來閱讀在線報(bào)紙的交易。這意味著你的CyberCoin賬戶任何時(shí)候,都可能不會(huì)超過10美元。然而,有趣的是,他們能夠?yàn)槊總€(gè)賬戶獲得最高達(dá)10萬美元的美國(guó)政府(FDIC)保險(xiǎn)。

回顧過去,還有更多故事。當(dāng)CyberCash運(yùn)行時(shí),加密技術(shù)被認(rèn)為是一種武器,美國(guó)政府限制了它的出口,現(xiàn)在已被放棄。這意味著不能將有意義的加密軟件提供給其他國(guó)家的用戶下載。然而,CyberCash能夠得到國(guó)務(wù)院對(duì)他們軟件的特別豁免權(quán)。政府的觀點(diǎn)是,從CyberCash的軟件中提取加密技術(shù),將比從頭開始編寫密碼更難。

最后,CyberCash成為少數(shù)幾家受到Y(jié)2K攻擊的公司,造成了他們的支付處理軟件對(duì)用戶進(jìn)行雙重收費(fèi)。后來,他們?cè)?001年破產(chǎn)。他們的知識(shí)產(chǎn)權(quán)后來由Verisign收購(gòu),然后他轉(zhuǎn)過身賣給了現(xiàn)在的Paypal。

為什么SET沒有起作用?根本問題與證書有關(guān)。證書是一種安全地將加密身份(即公鑰)與真實(shí)身份相聯(lián)系的方法。它是一個(gè)網(wǎng)站需要從Verisign這樣被稱為認(rèn)證機(jī)構(gòu)的公司獲得,為了展示瀏覽器安全的協(xié)議(通常用鎖定的圖標(biāo)表示)。CyberCash和SET決定不僅系統(tǒng)中的處理器和商家必須獲得證書,所有用戶也必須獲得證書,不然網(wǎng)站就不能安全的使用。獲得證書就像納稅一樣可愛,這樣的系統(tǒng)注定是一場(chǎng)災(zāi)難。過去幾十年,主流用戶對(duì)任何需要最終用戶證書的系統(tǒng)都表示了堅(jiān)定和一致的“否定”,而這些提案現(xiàn)在已經(jīng)被歸為學(xué)術(shù)論文。Bitcoin通過避免現(xiàn)實(shí)生活中的身份驗(yàn)證,巧妙地避開了這個(gè)惱人的問題。在比特幣中,公鑰本身就是用戶所知的身份,我們將在第1章中講述。

在90年代中期,當(dāng)SET被標(biāo)準(zhǔn)化時(shí),萬維網(wǎng)聯(lián)盟也在考慮金融支付的規(guī)范化。他們想通過擴(kuò)展HTTP協(xié)議來實(shí)現(xiàn)這一點(diǎn),以便用戶不需要額外的軟件來進(jìn)行交易,只需使用瀏覽器即可。事實(shí)上,他們有一個(gè)關(guān)于如何擴(kuò)展協(xié)議的一般性建議,以及他們?cè)诟犊钪惺褂玫囊粋€(gè)用例。這從來沒有發(fā)生過,整個(gè)擴(kuò)展框架從未部署在任何瀏覽器中。2015年,差不多二十年后,W3C宣布它想再次嘗試它,且把比特幣納為標(biāo)準(zhǔn)化的一部分。然而,不管過去如何失敗,我都不會(huì)屏住呼吸。

3.從信用到(加密)現(xiàn)金

現(xiàn)在讓我們轉(zhuǎn)到現(xiàn)金。我們先前比較了現(xiàn)金和信貸,并指出現(xiàn)金需要“自舉”,但好處是它避免了買家拖欠債務(wù)的可能性。現(xiàn)金還有另外兩個(gè)優(yōu)勢(shì)。第一個(gè)是更好的匿名。由于你的信用卡是以你的名義發(fā)行的,因此銀行可以追蹤你的所有支出。但當(dāng)你用現(xiàn)金付款時(shí),銀行沒有看到,而賣方也不需要知道你是誰。第二,現(xiàn)金可以在不需要第三方批準(zhǔn)的情況下啟用離線交易。也許后面他們還要去像銀行這樣的第三方存錢,但那就沒有那么麻煩了。

比特幣不完全具備這兩個(gè)屬性,但足夠接近,這已經(jīng)相當(dāng)有用了。比特幣并不像現(xiàn)金那樣匿名。你不需要用你的真實(shí)身份來支付比特幣,但可能你的交易可以通過巧妙的算法與公共交易賬簿捆綁在一起,然后如果你不小心,它進(jìn)一步與你的身份相關(guān)聯(lián)。我們將在第6章中講述比特幣匿名背后凌亂而迷人的細(xì)節(jié)。

比特幣不能以完全離線的方式工作。好消息是,它不需要中央服務(wù)器,而是依靠一個(gè)具有彈性、互聯(lián)網(wǎng)本身方式的對(duì)等網(wǎng)絡(luò)。在第3章中,我們將討論“綠色地址”和小額支付等技巧,這些技巧讓我們?cè)谀承┣闆r下,或者一定條件下做離線支付。

最早將加密技術(shù)應(yīng)用于現(xiàn)金的想法來自于1983年的大衛(wèi)·肖姆(DavidChaum)。我們通過物理比喻來理解這一點(diǎn)。假設(shè)我開始分發(fā)一些附有我簽名的紙,上面寫著:“這張票據(jù)的持有者可以把它兌換成一美元”。人們?nèi)绻嘈盼視?huì)遵守我的承諾,并考慮我的簽名是不可偽造的,他們就可以像紙幣一樣傳遞這些紙張。事實(shí)上,紙幣本身就是從商業(yè)銀行簽發(fā)的期票開始的。只有在最近的歷史中,各國(guó)政府才著手集中貨幣供應(yīng),并要求銀行合法贖回票據(jù)。

我可以用電子化的數(shù)字簽名做同樣的事情,但這會(huì)遇到惱人的“雙花”問題——如果你收到一個(gè)代表虛擬現(xiàn)金單位的數(shù)據(jù),則可以制作兩個(gè)(或更多)副本,并將其傳遞給不同的人。為了更好的說明這一點(diǎn),讓我們稍微延伸一點(diǎn),假設(shè)人們可以復(fù)制出完美的副本,而我們卻無法分辨出來。這個(gè)世界的雙花問題能被我們解決嗎?

這里有一個(gè)可能的解決方案:把唯一的序列號(hào)放在我發(fā)出的每一個(gè)票據(jù)中。當(dāng)你從某人那里收到票據(jù)時(shí),請(qǐng)檢查我的簽名,你也可以打電話給我,詢問該序列號(hào)的票據(jù)是否已經(jīng)花了。在我說“不”的情況下,你接受這筆票據(jù)。我將在我的分類賬上把這些序列號(hào)記錄為已使用,如果你嘗試花費(fèi)該票據(jù),則無法使用,因?yàn)槭占藭?huì)打電話給我,我會(huì)告訴他們?cè)撈睋?jù)已經(jīng)使用。你需要做的就是定期為我?guī)砟闶盏降乃衅睋?jù),我將向你發(fā)送相同數(shù)量的新票據(jù),并附上新的序列號(hào)。

這樣方案完全OK。這在現(xiàn)實(shí)生活中很麻煩,但是我提供了一個(gè)簡(jiǎn)單的數(shù)字服務(wù)器來完成序列號(hào)的簽名和記錄。唯一的問題是,它不是真的現(xiàn)金,因?yàn)樗皇悄涿摹?dāng)我發(fā)給你票據(jù)的時(shí)候,我可以把序列號(hào)和你的身份對(duì)應(yīng)起來,同時(shí)當(dāng)別人兌換它時(shí)我可以做同樣的事。這意味著我可以追蹤你所有花錢的地方。

這就是Chaum的創(chuàng)新所在。他想通了如何既保持系統(tǒng)的匿名性,又可以通過發(fā)明以下等效的程序來防止雙花問題:當(dāng)我向你發(fā)出新的票據(jù)時(shí),你來挑選序列號(hào)。你把它寫在紙上,蓋住它使我看不到。然后我會(huì)簽署它,仍然無法看到序列號(hào)。這在密碼學(xué)中被稱為“盲簽”。根據(jù)愛好選擇一個(gè)長(zhǎng)的、隨機(jī)的序列號(hào),以確保它很有可能是獨(dú)一無二的。我絲毫不必?fù)?dān)心你會(huì)選擇一個(gè)已經(jīng)被選中的序列號(hào),你這樣做只能在結(jié)算中發(fā)送你自己,最終會(huì)出現(xiàn)一個(gè)不能花費(fèi)的票據(jù)。

這是第一次重要的數(shù)字現(xiàn)金提案。它有效,但仍然需要由一個(gè)中央權(quán)威機(jī)構(gòu)(如銀行)運(yùn)行的服務(wù)器,并且需要每個(gè)人都信任該實(shí)體。此外,每個(gè)交易都需要這個(gè)服務(wù)器的參與才能完成。如果服務(wù)器暫時(shí)關(guān)閉,付款就會(huì)中斷。幾年后,在1988年,Chaum與另外兩家密碼學(xué)家Fiat和Naor合作提出了離線電子現(xiàn)金。最初看來這是不可能的:如果你嘗試在兩個(gè)不同的商店使用相同的數(shù)字票據(jù)或硬幣,除非他們連接在相同的支付網(wǎng)絡(luò)或中央機(jī)構(gòu),否則如何阻止他們?

這個(gè)聰明的想法是停止考慮如何阻止雙重支付,而是當(dāng)商家重新連接到銀行服務(wù)器時(shí)把重點(diǎn)放在檢測(cè)它。畢竟,這就是為什么即使天空中沒有網(wǎng)絡(luò)連接,你還可以在飛機(jī)上使用你的信用卡的原因。當(dāng)航空公司能夠重新連接到網(wǎng)絡(luò)時(shí),交易就會(huì)開始處理。如果你的卡被拒絕,你將欠該航空公司(或你的銀行)的錢。如果你想到這一點(diǎn),相當(dāng)多的傳統(tǒng)金融就是基于發(fā)現(xiàn)錯(cuò)誤或損失的想法,來試圖追回錢或懲罰犯罪者。如果你寫一張個(gè)人支票,他們不能保證金額實(shí)際上在您的帳戶,但如果支票跳票他們就會(huì)去找你。可以想象,如果離線電子現(xiàn)金系統(tǒng)得到廣泛采用,法律體系就會(huì)認(rèn)識(shí)到雙重消費(fèi)是一種犯罪行為。

Chaum,F(xiàn)iat和Naor的檢測(cè)雙重支出的想法是一個(gè)復(fù)雜的加密藝術(shù)。在高水平上,它是這樣實(shí)現(xiàn)的:發(fā)給你每個(gè)數(shù)字硬幣都會(huì)對(duì)你的身份進(jìn)行編碼,除了你和銀行之外,沒有人可以解碼它。每次你花你的硬幣時(shí),收件人將要求你對(duì)編碼的一個(gè)隨機(jī)子集進(jìn)行解碼,他們將保持這一記錄。這種解碼不足以讓他們確定您的身份。但是,如果你雙重消費(fèi),最終兩個(gè)收件人都會(huì)去銀行兌現(xiàn)他們的票據(jù),當(dāng)他們這樣做時(shí),銀行可以把兩塊信息放在一起,以極大的概率對(duì)你的身份進(jìn)行完全解碼。

你可能想知道是否有人可以在系統(tǒng)中陷害你成為雙重消費(fèi)者。你和我一起花了一枚硬幣,然后我轉(zhuǎn)過身去,試圖雙重消費(fèi)(不用銀行兌換,直接用我的身份編碼獲得一個(gè)新的硬幣)。這將不會(huì)起作用——新的收件人將要求我解碼一個(gè)隨機(jī)的子集,這幾乎肯定不會(huì)與為你解碼的子集相同,所以我將無法執(zhí)行他們的解碼請(qǐng)求。

多年來,許多密碼學(xué)家已經(jīng)看到了這種結(jié)構(gòu),并以各種方式對(duì)它進(jìn)行了改進(jìn)。在Chaum-Fiat-Naor的方案中,如果一枚硬幣價(jià)值100美元,而您想要購(gòu)買的成本僅為75美元,那么根本沒有辦法把這個(gè)硬幣分成75美元和25美元。你唯一可以做的是回到銀行,花費(fèi)$ 100硬幣,并要求一個(gè)$ 75硬幣和一個(gè)$ 25硬幣。但是Okamoto和Ohta的一篇文章使用“Merkle trees”來創(chuàng)建一個(gè)允許您細(xì)分硬幣的系統(tǒng)。Merkle trees也將出現(xiàn)在比特幣中,我們將在第1章中講述他們。Chaum-Fiat-Naor的方案同時(shí)也為提高支付效率留下了很大的空間。特別的是,方案中應(yīng)用的非零知識(shí)證明(最著名的由Brands、Camenisch, Hohenberger、Lysyanskaya發(fā)明),非常的富有成效。非零知識(shí)證明也已經(jīng)應(yīng)用在比特幣中,我們將在第6章中看到。

回到Chaum:他商業(yè)化了他的想法,于1989年組建了一家名為DigiCash的公司,可能是最早試圖解決在線支付問題的公司。他們比我們剛剛討論的諸如FirstVirtual、CyberCash等早五年時(shí)間。Digicash系統(tǒng)中的現(xiàn)金叫做Ecash,他們還有一個(gè)叫做cyberbucks的系統(tǒng)。幾家美國(guó)的銀行和至少一家芬蘭的銀行實(shí)際實(shí)施了他們的方案。這是在二十世紀(jì)九十年代,早于比特幣很久很久,這可能會(huì)讓將銀行視為科技恐懼癥,反創(chuàng)新的龐然大物的比特幣愛好者異常的驚訝。

Ecash是基于Chaum的協(xié)議。客戶是匿名的,所以銀行無法追蹤他們是如何花錢的。但是,ecash的商家并不是匿名的。他們必須在收到貨幣后立即換回硬幣,所以銀行知道他們什么時(shí)候做了什么等等。

圖2:DigiCash的屏幕截圖

圖2顯示了這個(gè)軟件的界面。正如你看到的,它顯示了你的余額以及你從銀行發(fā)給你的所有硬幣。既然沒有辦法分割你的硬幣,銀行會(huì)向你發(fā)出一整套硬幣,價(jià)錢分一美分、兩美分、四美分等等(以2為倍數(shù))。這樣,你(或者代表你的軟件)就可以選擇一套硬幣來支付交易的確切金額。

當(dāng)你想要交易的時(shí)候,比如說你想要向非盈利組織EPIC捐款,你需要點(diǎn)擊一個(gè)會(huì)帶你到Digicash網(wǎng)站的捐贈(zèng)鏈接。然后,將打開一個(gè)反向Web鏈接回到你的計(jì)算機(jī),這意味著你的計(jì)算機(jī)必須能夠接受傳入的鏈接并充當(dāng)服務(wù)器。你必須擁有你自己的IP地址,且你的ISP將不得不允許傳入鏈接。如果連接成功,ecash軟件會(huì)在你的計(jì)算機(jī)上啟動(dòng),你可以批準(zhǔn)交易并支付現(xiàn)金。

Chaum擁有Digicash技術(shù)的幾項(xiàng)專利,特別是其使用的盲簽方案。這是有爭(zhēng)議的,它阻止了其他人使用相同的協(xié)議開發(fā)電子貨幣系統(tǒng)。一大堆密碼學(xué)家們就此掛上了所謂的Cypherpunks郵件列表來替換它。Cyperpunks是日本Satoshi Nakamoto后面向世界宣布的Bitcoin郵件列表的前身,這不是巧合。我們會(huì)在第7章談?wù)揅ypherpunk運(yùn)動(dòng)和比特幣的根源。

解密高手破譯ecash實(shí)現(xiàn)的一個(gè)版本的電子貨幣被稱為magicmoney。它確實(shí)違反了專利,但被廣而告之僅用于實(shí)驗(yàn)用途。這是一個(gè)有趣的軟件,它的界面是基于文本的。你可以通過電子郵件發(fā)送交易。你只需將交易復(fù)制并粘貼到你的電子郵件中,然后將其發(fā)送給其他用戶。希望你最好使用了端到端電子郵件加密軟件(如PGP)來保護(hù)傳輸中的交易。

后來,Ben Laurie和其他很多人一起發(fā)展了一個(gè)叫Lucre的提案。Lucre試圖以非專利-作保的方式取代ecash中的盲簽方案,系統(tǒng)其他部分大致相同。

另外,伊恩·戈德伯格(Ian Goldberg)提出了一個(gè)提案試圖解決不能分割硬幣來找零的問題。他的想法是,如果商家還有一些硬幣,那么他們可以向你發(fā)回硬幣,以便你沒有多余零錢時(shí)可以多支付,然后收到商家發(fā)回的硬幣。但請(qǐng)注意,這引入了匿名問題。正如我們以前看到的那樣,在ecash中,發(fā)送者是匿名的,但商家不是。當(dāng)商家發(fā)回現(xiàn)金時(shí),從技術(shù)上來說他們是發(fā)件人,所以他們是匿名的。但是你,作為必須將這筆現(xiàn)金退回銀行的人,不是匿名的。沒有辦法設(shè)計(jì)這個(gè)系統(tǒng)而不破壞試圖購(gòu)買商品的用戶的匿名性。所以,戈德伯格提出了一個(gè)提案,其中有不同類型的硬幣來允許交易的發(fā)生,允許你改回去,并保持你的匿名。

現(xiàn)在我們來看看,為什么DigiCash失敗了?DigiCash的主要問題是很難說服銀行和商人采用它。既然沒有很多商家接受ecash,用戶當(dāng)然也不想要它。更糟糕的是,它不支持用戶和用戶的交易,或至少支持的不是很好。它真正集中在用戶對(duì)商家的交易上。因此,如果商人不在船上,就沒有其他方法可以引導(dǎo)人們對(duì)系統(tǒng)感興趣。所以一天結(jié)束時(shí),DigiCash失敗了,信用卡公司勝利了。

作為附注,比特幣允許用戶到商家和用戶到用戶的交易。實(shí)際上,協(xié)議沒有與用戶的概念分開的商家概念。對(duì)用戶到用戶的交易的支持可能有助于比特幣的成功。從一開始就有一些事有助于你的比特幣:把它發(fā)送給其他用戶,社區(qū)試圖鼓勵(lì)對(duì)比特幣的支持,讓商家接受它。

在公司的后幾年里,DigiCash還試用了防篡改硬件,試圖防止雙重支出,而不是僅僅檢測(cè)它。在這個(gè)系統(tǒng)中,你會(huì)得到一個(gè)通常被稱為錢包或某種卡片的小型硬件設(shè)備。該設(shè)備將跟蹤您的余額,當(dāng)您花費(fèi)時(shí)余額減少,充值是余額增加。設(shè)備最關(guān)鍵的是,應(yīng)該沒有物理或數(shù)字的辦法進(jìn)入并篡改其計(jì)數(shù)。所以如果這個(gè)計(jì)數(shù)變?yōu)榱悖敲催@張卡就停止支付,直到它被重新加載為止。

圖3:電子貨幣系統(tǒng),用戶的卡和錢包

圖3顯示了Mondex系統(tǒng)的用戶端。有一個(gè)智能卡,一個(gè)錢包單元,他們都可以加載現(xiàn)金。如果您想進(jìn)行用戶之間的交易,那么提供者的用戶將首先把卡片放入錢包中,并將錢從卡上轉(zhuǎn)移到錢包上。然后接受者會(huì)將他們的卡片插進(jìn)錢包中,你將錢移到第二張卡上。這是一種匿名交換數(shù)字現(xiàn)金的方法。

Mondex在一些社區(qū)試用了他們的技術(shù)。一個(gè)社區(qū)恰好是一個(gè)非常接近我長(zhǎng)大的城市:圭爾夫,安大略。你可能已經(jīng)猜到它并沒有真正流行起來。Mondex卡的一個(gè)主要問題是它和現(xiàn)金極像——如果你失去他們或被盜,錢就丟失了。更糟糕的是,如果卡片有某種故障,讀卡器不讀取,則無法確定該卡是否有結(jié)余。在這些情況下,Mondex通常會(huì)cover成本,他們會(huì)假設(shè)卡被加載,并向用戶賠償了這筆錢。當(dāng)然,這可能會(huì)使公司損失很多錢。

此外,錢包笨重而反應(yīng)緩慢,用信用卡或現(xiàn)金支付要快得多。零售商也討厭有幾個(gè)付款終端,他們只想要一張信用卡。所有這些因素加在一起導(dǎo)致了Mondex的失敗。

然而,這些卡是智能卡,這意味著它們上面具有小型微控制器,并且該技術(shù)已被證明是成功的。在今天的許多國(guó)家,包括加拿大在內(nèi)的每一張信用卡和每一張借記卡現(xiàn)在都擁有智能卡技術(shù)。但它用于不同的目的。它不用于防雙花問題,因?yàn)樗皇且环N基于現(xiàn)金的技術(shù),因此不會(huì)出現(xiàn)這個(gè)問題。銀行而不是你的信用卡,隨時(shí)監(jiān)控著你的余額或可用信用。相反,芯片是用于認(rèn)證的,也就是證明你知道和你的帳戶相關(guān)聯(lián)的PIN。但是,Mondex這一技術(shù)很久之后才被銀行業(yè)廣泛采用。

4.憑空鑄造的錢幣

在DigiCash系統(tǒng)中,如果您有一個(gè)價(jià)值100美元的數(shù)字現(xiàn)金,那么憑什么它值100美元?答案很簡(jiǎn)單:為了獲得價(jià)值100美元的ecash,你必須從你的銀行帳戶中拿取100美元,并將其發(fā)送給正在發(fā)行你的電子現(xiàn)金的銀行。但是,關(guān)于如何做到這一點(diǎn),人們提出了一系列不同的建議,而不同的公司采取的做法也不同。一個(gè)牽強(qiáng)的可能:如果一個(gè)國(guó)家的政府實(shí)際授權(quán)了創(chuàng)造數(shù)字現(xiàn)金的服務(wù),讓錢幣憑空出現(xiàn),那又怎么樣?那就是NetCash背后的想法,盡管它從未實(shí)踐過。一個(gè)不一樣的系統(tǒng)e-Gold將一堆黃金放在金庫(kù)中,并發(fā)行對(duì)應(yīng)價(jià)值的數(shù)字現(xiàn)金。另一家名為Digigold的公司并沒有完全由黃金支撐,而只是獲得了部分儲(chǔ)備。

所有這些想法最終都會(huì)將數(shù)字現(xiàn)金的價(jià)值與美元或商品掛鉤。如果美元的價(jià)值上漲或下跌,你的數(shù)字貨幣持有量的價(jià)值將隨之而變。一個(gè)完全不同的可能性是允許數(shù)字現(xiàn)金是自己的貨幣,獨(dú)立于任何其他貨幣發(fā)行和估價(jià)。

要?jiǎng)?chuàng)建一個(gè)可能獲得真正價(jià)值的自由浮動(dòng)數(shù)字貨幣,你需要設(shè)計(jì)一些稀缺的東西。事實(shí)上,稀缺性也是黃金或鉆石被用作貨幣支持的原因。在數(shù)字領(lǐng)域,實(shí)現(xiàn)稀缺的一種方法是設(shè)計(jì)一套系統(tǒng),使得鑄幣需要一段時(shí)間的破解才能成功解決計(jì)算問題(或“拼圖”)。這就是比特幣“采礦”中發(fā)生的事情,我們將在第5章講述。

基本思想是——用計(jì)算解決一些具有一定價(jià)值、相當(dāng)古老的數(shù)字對(duì)象謎題。1992年,密碼學(xué)家Dwork和Naor首先提出了一個(gè)潛在的回復(fù)垃圾郵件的解決方案。你每次發(fā)送電子郵件,你的電腦必須解決一個(gè)需要幾秒鐘解決的難題,那該怎么辦呢?為了執(zhí)行這一要求,接受者的電子郵件程序會(huì)簡(jiǎn)單地忽略沒有解決計(jì)算難題的電子郵件。對(duì)于一般用戶而言,發(fā)送電子郵件不是一個(gè)很大的障礙,因?yàn)槟悴唤?jīng)常發(fā)送電子郵件。但是,如果你是垃圾郵件發(fā)送者,你正在嘗試一次性發(fā)送數(shù)千或數(shù)百萬封電子郵件,解決這些計(jì)算難題可能會(huì)變得令人望而卻步。一個(gè)類似的想法后來被亞歷山大(1997年)獨(dú)立發(fā)現(xiàn),提出了一個(gè)名叫哈希凱什(Hashcash)的東西。

這些計(jì)算謎題需要具有一些特定的屬性才能成為有用的垃圾郵件威懾工具。首先,垃圾郵件發(fā)送者不可能解決一個(gè)謎題,卻將解決方案附加到他發(fā)送的每封電子郵件中。為了確保這一點(diǎn),電子郵件中的謎題應(yīng)該是特定的:它應(yīng)該取決于發(fā)件人和接收者、電子郵件的內(nèi)容以及發(fā)送的大致時(shí)間。其次,接收者應(yīng)該能夠輕松地檢查拼圖解決方案,而無需重復(fù)解決難題的過程。第三,每個(gè)謎題應(yīng)該完全獨(dú)立于其他謎題,在某種意義上,解決一個(gè)謎題并不會(huì)減少解決任何其他謎題所需的時(shí)間。最后,隨著時(shí)間的推移硬件在不斷改善,解決任何給定的計(jì)算難題會(huì)變得更快更便宜,接受者要能夠接受調(diào)整他們的謎題解決方案的難度。這些屬性可以通過使用加密哈希函數(shù)(Hash fuctions)設(shè)計(jì)謎題來實(shí)現(xiàn),我們將在第1章中研究。

比特幣使用與Hashcash基本相同的計(jì)算難題,但有一些小的改進(jìn)。比特幣比Hashcash做的還要多,畢竟Bitcoin需要一本書來解釋!我只提到這一點(diǎn),因?yàn)镠ashcash發(fā)明家亞當(dāng)·本德(Adam Back)說:“比特幣是控制通貨膨脹的哈什凱什。”我認(rèn)為這有一些夸張。這就像說:“特斯拉只是電池裝在輪子上一樣。”

就像密碼學(xué)中的其他好主意一樣,許多計(jì)算謎題旨在實(shí)現(xiàn)略微不同的屬性。一個(gè)來自Rivest和Shamir的提案,RSA密碼系統(tǒng)的R和S就來自于他們。請(qǐng)注意,在Hashcash的設(shè)計(jì)中,你解決一些難題的成本僅僅是個(gè)人成本的總和。這與政府造幣的成本結(jié)構(gòu)不同。如果你考慮到紙幣的防偽技術(shù),獲取所有設(shè)備,創(chuàng)建安全特性等方面都有巨大初始成本。但是一旦他們完成了所有這些工作,他們的成本就會(huì)下降,印制一張紙幣或一百?gòu)埣垘挪]有什么太大的區(qū)別。換句話說,鑄造紙幣具有巨大的固定成本,但邊際成本較低。Rivest和Shamir想要設(shè)計(jì)出可以模擬這些屬性的計(jì)算謎題,以便鑄造第一枚硬幣在計(jì)算上具有很大的挑戰(zhàn)性,但鑄造后續(xù)硬幣便宜得多。他們的提案也使用的哈希功能,但是以不同的方式。我們不會(huì)了解他們解決方案的細(xì)節(jié),但他們?cè)噲D解決的問題在很大層次上是非常有趣的。

為什么Hashcash沒有達(dá)到防止垃圾郵件的預(yù)期目的呢?也許垃圾郵件只是一個(gè)不夠大的待解決問題。對(duì)于大多數(shù)人來說,垃圾郵件只是一個(gè)滋擾,而不值得他們花費(fèi)他們的計(jì)算周期來打擊。我們今天的垃圾郵件過濾器可以很好地將垃圾郵件從我們的收件箱中刪除。也有可能Hashcash實(shí)際上不會(huì)阻止垃圾郵件發(fā)送者。特別是,大多數(shù)垃圾郵件發(fā)送者今天使用“僵尸網(wǎng)絡(luò)”發(fā)送他們的垃圾郵件,他們使用惡意軟件控制大量其他人的電腦。他們也可以用這些電腦來收獲Hashcash。也就是說,使用計(jì)算謎題來限制對(duì)資源的訪問仍然只是一個(gè)想法。你可以在一些替代網(wǎng)絡(luò)協(xié)議的建議中看到它,例如MinimaLT。

5.記錄分類帳中的所有內(nèi)容

Bitcoin的另一個(gè)重要組成部分是區(qū)塊鏈:所有比特幣交易都被安全地記錄下來的分類帳。區(qū)塊鏈背后的想法相當(dāng)古老,可以追溯到Haber和Stornetta在1991年的一篇論文中。他們提議的是一種安全時(shí)間戳的數(shù)字文檔,而不是數(shù)字貨幣計(jì)劃。時(shí)間戳的目的是給出一個(gè)文件大致產(chǎn)生時(shí)間的概念。更重要的是,時(shí)間戳準(zhǔn)確地傳達(dá)了這些文檔的創(chuàng)建順序:如果在另一個(gè)文件之前存在,則將在時(shí)間戳上反映出來。安全屬性要求文檔在事后的時(shí)間戳不能更改。

在Haber和Stornetta的方案中,有一個(gè)將客戶文檔發(fā)送到時(shí)間戳的服務(wù)。當(dāng)服務(wù)器接收到文檔時(shí),它會(huì)將文檔與當(dāng)前時(shí)間以及鏈接,還有指向上一個(gè)文檔的指針一起簽署,并發(fā)出帶有該信息的“證書”。這里所說的指針是一種特殊類型的指針,它指向的是一個(gè)數(shù)據(jù)而不是一個(gè)位置。這意味著,如果這里所說的數(shù)據(jù)發(fā)生更改,指針就會(huì)自動(dòng)失效。在第1章中,我們將研究如何使用散列函數(shù)(Hash functions)創(chuàng)建這樣的指針。

這樣做是用每個(gè)文檔的證書確保前一個(gè)文檔內(nèi)容的完整性。實(shí)際上,你可以遞歸地應(yīng)用此參數(shù):每個(gè)證書基本上修復(fù)了文檔和證書的全部歷史記錄直到這一點(diǎn)為止。如果我們假設(shè)系統(tǒng)中的每個(gè)客戶端至少記錄幾個(gè)證書——他們自己的文檔證書以及上一個(gè)和后續(xù)文檔的證書,那么所有參與者可以一起確保在事實(shí)之后不能更改歷史記錄。特別的是,文件的相對(duì)排序得到保留。

圖4:鏈接時(shí)間戳

要為文檔創(chuàng)建證書,時(shí)間戳服務(wù)器包括一個(gè)指向上一個(gè)文檔證書的哈希指針,當(dāng)前時(shí)間,并將這三個(gè)數(shù)據(jù)元素簽名在一起。

后來的一篇文章對(duì)效率提出了一個(gè)改進(jìn):我們可以將它們收集到區(qū)塊中并將鏈接塊鏈接在一起,而不是單獨(dú)鏈接文檔。在每個(gè)塊中,文檔將再次以樹形結(jié)構(gòu)鏈接在一起,而不是線性結(jié)合。這減少了驗(yàn)證特定文檔出現(xiàn)在系統(tǒng)歷史記錄中某個(gè)特定點(diǎn)所需的檢查量。視覺上,這種混合方案如圖5所示。

圖5:有效鏈接時(shí)間戳。 箭頭表示散列指

我們將在第3章中看到,這個(gè)數(shù)據(jù)結(jié)構(gòu)形成了比特幣區(qū)塊鏈的骨架。比特幣改進(jìn)了一個(gè)微妙但重要的方式:使用Hashcash-esque協(xié)議來延遲新塊添加到鏈中的速度。此修改對(duì)Bitcoin的安全模型有著深遠(yuǎn)而有利的影響。Bitcoin不再需要可信服務(wù)器;相反,事件由被稱為“礦工”的不可信節(jié)點(diǎn)集合記錄。每個(gè)礦工跟蹤塊,而不是依靠普通用戶來完成。任何人都可以通過解決計(jì)算謎題來創(chuàng)建塊成為礦工。比特幣也擺脫了簽名,只依靠散列指針(hash pointers)來確保數(shù)據(jù)結(jié)構(gòu)的完整性。最后,實(shí)時(shí)的時(shí)間戳在比特幣中也并不重要,系統(tǒng)的亮點(diǎn)是以防篡改的方式記錄事務(wù)的相對(duì)順序。事實(shí)上,比特幣塊并不是按固定的時(shí)間表創(chuàng)建的。該系統(tǒng)確保平均每10分鐘創(chuàng)建一個(gè)新的區(qū)塊,但連續(xù)塊之間的時(shí)間有相當(dāng)大的變化。

本質(zhì)上,比特幣結(jié)合了計(jì)算謎題的想法來規(guī)范新貨幣單元的創(chuàng)造,并以安全的時(shí)間戳來記錄分類賬上的交易,同時(shí)防止雙花問題。早些時(shí)候,較不復(fù)雜的提案結(jié)合了這兩個(gè)想法。第一個(gè)叫做b-money,由魏代于1998年所創(chuàng)造。在b-money中,任何人都可以使用hashcash的系統(tǒng)來創(chuàng)造貨幣。同時(shí)有一個(gè)像比特幣一樣的對(duì)等網(wǎng)絡(luò)(p2p網(wǎng)絡(luò))。每個(gè)節(jié)點(diǎn)都維護(hù)一個(gè)分類帳,但它并不是比特幣區(qū)塊鏈中的全局分類帳。每個(gè)節(jié)點(diǎn)都有自己的分類帳,它考慮的是每個(gè)人的平衡。

另一個(gè)叫做Bitgold的類似提案是由Nick Szabo創(chuàng)造的。Szabo說他早在1998年就有了Bitgold的想法,但直到2005年才開始共享出來。我之所以提到這一點(diǎn),是因?yàn)橛幸粋€(gè)小陰謀論被紐約時(shí)報(bào)記者Nathaniel

Popper所宣傳,他寫了一本非常好的關(guān)于比特幣歷史的書。波佩爾指出,在Satoshi發(fā)布了Bitcoin白皮書之后,網(wǎng)志的時(shí)間戳已經(jīng)改變,因此Bitgold的提案看起來像是在比特幣發(fā)布后大約兩個(gè)月寫的。波普爾和許多其他觀察家認(rèn)為的那樣,Szabo可能就是Satoshi,他引用時(shí)間戳變化作為Szabo / Satoshi試圖掩蓋他在知道Bitcoin之前已經(jīng)發(fā)明了Bitgold事實(shí)的證據(jù)。

這個(gè)解釋的問題是,如果你真的讀了博客的內(nèi)容,Szabo在1998年是非常明確的有了這個(gè)想法,他不想去改變這些日期。因此,一個(gè)更合理的解釋是,在比特幣推廣了類似的想法后,他只是把這個(gè)帖子頂?shù)搅瞬┛偷捻敹耍源_保人們知道他先前的提案。

比特幣與b-money和Bitgold有幾個(gè)重要的區(qū)別。在這些提案中,計(jì)算謎題直接用于發(fā)行貨幣。任何人都可以解決一個(gè)謎題,解決方案是一個(gè)單位的錢本身。在比特幣中,謎題解決方案本身并不構(gòu)成錢。它們被用來固定區(qū)塊鏈,且只能在有限的時(shí)間間接導(dǎo)致鑄幣。其次,b-money和Bitgold依靠在創(chuàng)建或轉(zhuǎn)移資金時(shí)簽署的時(shí)間戳服務(wù)。我們已經(jīng)看到,比特幣不需要可信的時(shí)間戳,只是嘗試保留區(qū)塊和交易的相對(duì)順序。

最后,在b-money和Bitgold中,如果服務(wù)器或節(jié)點(diǎn)之間對(duì)分類帳有不同意見,則沒有明確的解決方法。在兩個(gè)作者的著作中,讓多數(shù)人作出決定似乎是含蓄的。但是,由于任何人都可以設(shè)置一個(gè)或多個(gè)隱藏在不同身份的節(jié)點(diǎn)——這些機(jī)制不是很安全,除非有一個(gè)集中的看門人控制著網(wǎng)絡(luò)的入口。相反,在比特幣中,攻擊者要改變歷史,他們必須以比其他參與者更快的速度解決計(jì)算謎題。這不僅更加安全,而且還量化了系統(tǒng)的安全性。

b-money和Bitgold是非正式的提案——b-money是郵寄名單上的一個(gè)帖子,Bitgold是一系列博客文章。既沒有起飛,甚至沒有實(shí)施開來。不像比特幣白皮書,他們沒有一個(gè)完整的規(guī)范或任何代碼。這些提案掩蓋了可能或不可能解決的問題。第一,正如我們已經(jīng)提到的,如何解決分類帳的分歧。另一個(gè)問題是確定計(jì)算難題對(duì)于打造貨幣單位是多么困難。由于硬件在一定的計(jì)算能力下會(huì)隨著時(shí)間的推移而變得更加便宜,因此Bitcoin采用了一種周期性地自動(dòng)調(diào)整謎題難度的機(jī)制。b-money和Bitgold不包括這樣的一種機(jī)制,這可能會(huì)導(dǎo)致問題,因?yàn)橛矌趴赡軙?huì)變得非常容易地創(chuàng)建而失去價(jià)值。

6.中本聰?shù)陌凳?/strong>

你可能會(huì)知道Satoshi Nakamoto是比特幣創(chuàng)始人采用的假名。雖然他的身份仍然是一個(gè)謎,他卻在比特幣的早期廣泛傳播。讓我們用這個(gè)來挖掘一些問題,比如當(dāng)他開始創(chuàng)造比特幣時(shí),他在多大程度上受到先前我們所看到的想法的影響,以及是什么激勵(lì)了他。

Satoshi說,他在2007年5月左右開始編碼比特幣。我選擇相信他,他是匿名的事實(shí)并不是他會(huì)說謊的理由。他于2008年8月注冊(cè)了http://bitcoin.org域名。當(dāng)時(shí)他開始發(fā)送私人電子郵件給一些他認(rèn)為可能對(duì)該提案感興趣的人。然后在2008年10月稍后,他公開發(fā)表了一份描述協(xié)議的白皮書,不久之后,他發(fā)布了比特幣的初始代碼。然后他在那里逗留了大約兩年,其間在論壇上張貼了大量的信息,給很多人發(fā)送了電子郵件,并回應(yīng)了人們的關(guān)注。在編程方面,他提交了一些補(bǔ)丁。他與其他開發(fā)人員一起維護(hù)源代碼,并在出現(xiàn)問題時(shí)進(jìn)行修復(fù)。2010年12月,其他人已經(jīng)緩慢接管了項(xiàng)目的維護(hù),然后他停止了與他們溝通。

我一直把Satoshi Nakamoto稱為“他”,但是我沒有理由相信Satoshi是個(gè)男人,而不是女人。我只是因?yàn)镾atoshi是一個(gè)男性的名字而使用男性代詞。我也認(rèn)為他是一個(gè)單身漢。有一種理論認(rèn)為,Satoshi Nakamoto可能是一個(gè)個(gè)體的集合。我不買這個(gè)理論的帳——我覺得Satoshi可能只是一個(gè)人。原因是,如果我們考察Satoshi假名進(jìn)行的所有在線互動(dòng),以及Satoshi回復(fù)電子郵件和修補(bǔ)代碼的兩年時(shí)間,很難想象這可能是多人共享用戶帳戶和密碼,以類似的風(fēng)格和聲音作出回應(yīng),并確保彼此沒有矛盾。這似乎是一個(gè)更簡(jiǎn)單的解釋,至少這部分Satoshi的活動(dòng)是由一個(gè)人完成的。

此外,從他的著作和補(bǔ)丁中可以清楚地看出,這個(gè)個(gè)體理解了比特幣及其所有設(shè)計(jì)方面的全部基礎(chǔ)代碼。所以假設(shè)同一個(gè)人寫了原始代碼庫(kù)和白皮書是非常合理的。最后,Satoshi可能對(duì)原始設(shè)計(jì)有幫助。但是,在比特幣發(fā)布之后,我們可以看到Satoshi很快把他收到的其他人的任何幫助歸功于我們大家。如果他得到了別人的幫助,卻誤導(dǎo)我們是自己發(fā)明的東西,那就太不好了。

接下來,我們可能會(huì)問自己:“Satoshi對(duì)于ecash的歷史知道些什么?” 為了更好地理解這一點(diǎn),我們可以先看看他在白皮書中引用的內(nèi)容,以及早期版本的Bitcoin網(wǎng)站上的參考資料。在白皮書中,他引用了一些關(guān)于基本密碼學(xué)和概率論的論文。他還引用了我們?cè)缧r(shí)間看到的時(shí)間戳工作,因此認(rèn)為他基于這些參考文獻(xiàn)進(jìn)行區(qū)塊鏈設(shè)計(jì)是很自然的,因?yàn)樗麄兪侨绱说南嗨啤K€引用了Hashcash提案,其計(jì)算謎題與Bitcoin中使用的方案非常相似。他也提到了b-money。 后來,他在網(wǎng)站上還添加了對(duì)Bitgold的引用,以及Hal Finney的一個(gè)計(jì)劃來重用計(jì)算謎題的解決方案。

但是,如果看一看早期與Satoshi Nakamoto對(duì)應(yīng)的人發(fā)布的電子郵件,我們發(fā)現(xiàn)B-money的提案實(shí)際上是按照Adam Back的建議添加的。Satoshi然后通過電子郵件與創(chuàng)建b-money的魏代聯(lián)系,顯然魏代是那個(gè)告訴他Bitgold的人。所以這些提案并不是來自原始設(shè)計(jì)的靈感。他后來和Hal Finney通信了很多,這對(duì)于他為什么引用Finney的作品至少在網(wǎng)站上是一個(gè)合理的解釋。

基于此,在創(chuàng)建比特幣時(shí)以下似乎是可信的:ecash歷史上的Hashcash和時(shí)間戳是Satoshi知道或認(rèn)為唯一與比特幣相關(guān)的事。然而,在他了解b-money和Bitgold之后,他似乎更贊賞他們之間的相關(guān)性。2010年年中,維基百科上Bitcoin的文章被標(biāo)記為維基百科編輯已刪除,因?yàn)樗麄冋J(rèn)為這不值得一提。Satoshi和其他人之間有一些關(guān)于如何寫B(tài)itcion的討論,以便維基百科接受它。為此,Satoshi提出了比特幣的這種描述:“比特幣是對(duì)1998年以魏代為主的Cypherpunk進(jìn)行的b-money提案和Nick Szabo的Bitgold提案的實(shí)施。所以,Satoshi在這點(diǎn)上確實(shí)把Bitcoin定位為這兩個(gè)想法的延伸,或者作為對(duì)兩個(gè)現(xiàn)有系統(tǒng)有效解釋的一個(gè)很好的實(shí)施。

但是,其他的所有的呢——比如我們看過的Chaumian的ecash計(jì)劃和信用卡提案呢?在設(shè)計(jì)比特幣時(shí),Satoshi是否知道任何關(guān)于這些的歷史呢?很難說,他沒有任何跡象表明知道這個(gè)歷史,但同樣可能因?yàn)樗麄兣c比特幣無關(guān)而沒有提到這一點(diǎn)。比特幣使用了完全不同的分散模型,所以沒有理由去關(guān)注那些失敗的舊集中式系統(tǒng)。

Satoshi自己就這樣做了,他在比特幣論壇上的一個(gè)帖子提到了Chaumian的ecash。在寫另一個(gè)名為http://opencoin.org的提案中,他指出,他們似乎是在談?wù)撆f的Chaumian中央造幣廠的東西,但也許只是因?yàn)檫@是唯一可用的。也許他們會(huì)對(duì)新的方向感興趣。許多人自動(dòng)將電子貨幣視為失敗的,因?yàn)樽?990年代以來所有的公司都失敗了。我想這很明顯,這些中心化系統(tǒng)的中央控制性注定了他們的結(jié)局。我認(rèn)為這是我們第一次嘗試分散的、不信任的系統(tǒng)。這給了我們一個(gè)很好的了解Satoshi對(duì)早期提案的看法,特別是他是如何認(rèn)為比特幣是不一同的。比特幣的分散化確實(shí)是一個(gè)定義的特征,這使它與我們所看到的幾乎所有的東西不同。

Satoshi的另一個(gè)有趣的引語表明,他可能不是一個(gè)學(xué)術(shù)界人士。大多數(shù)學(xué)術(shù)研究者在構(gòu)建系統(tǒng)之前,會(huì)在思考想法時(shí)立即寫下來。Satoshi說他采取了相反的做法:“我其實(shí)使比特幣倒退了。在說服我自己可以解決所有問題之前,我必須寫下所有代碼,最后我才去寫這篇論文。我想我將能夠盡快發(fā)布代碼,而不是寫一個(gè)詳細(xì)的規(guī)范。”

由于Satoshi有一些神話,值得一提的是,他像其他人一樣犯了錯(cuò)誤,在未來這不是一個(gè)完美的神話。在原始的比特幣代碼以及其設(shè)計(jì)中,存在著錯(cuò)誤和可疑的設(shè)計(jì)選擇。例如,有一個(gè)功能可以將bitcoins發(fā)送到從未被抓取到的IP地址,回想起來,這真是一個(gè)壞主意。當(dāng)他描述比特幣對(duì)什么有用的時(shí)候,他的腳本集中在互聯(lián)網(wǎng)上使用它的想法。這個(gè)場(chǎng)景當(dāng)然是Bitcoin的核心,但它并不是唯一的。例如,他并沒有指出進(jìn)入咖啡店的愿景,并且可以用比特幣支付咖啡。

最后一個(gè)問題我們會(huì)問自己,我們從數(shù)字貨幣的歷史中了解到的是有色的。“為什么Satoshi保持匿名?”,這有很多可能的原因。首先,這可能只是為了樂趣。許多人匿名寫小說,像Banksy這樣的涂鴉藝術(shù)家也保持匿名。事實(shí)上,在當(dāng)時(shí)Satoshi參與的社區(qū)、Cypherpunk社區(qū)以及加密郵件列表中,人們常常以匿名方式發(fā)布。

另一方面,Satoshi的選擇可能會(huì)有法律上擔(dān)憂的考慮。兩家美國(guó)公司“Liberty

Reserve”和“e-Gold”都面臨洗錢的法律問題。2006年,自由儲(chǔ)備金的創(chuàng)始人之一逃離了美國(guó),擔(dān)心他會(huì)因洗錢罪被起訴。另一方面,e-Gold的創(chuàng)始人則留在了美國(guó),其中一人實(shí)際上被起訴,并最終對(duì)指控承擔(dān)了罪責(zé)。這些有罪的入獄恰恰在Satoshi設(shè)立比特幣網(wǎng)站,并開始向他人通過電子郵件發(fā)送他提案之前。也就是說,許多人發(fā)明了ecash系統(tǒng),沒有人不害怕法律或選擇保持匿名的。所以這可能是原因,也可能不是。

這也是值得回憶的,ecash的某些方面獲得了專利,Cypherpunk運(yùn)動(dòng)的成員關(guān)心由于這些專利而實(shí)施ecash系統(tǒng)。事實(shí)上,cypherpunks郵件列表中的一個(gè)帖子提出,一組匿名編碼器實(shí)施ecash,以防如果有人要起訴,他們將無法找到編者。很難想象比特幣會(huì)因?yàn)樵O(shè)計(jì)有所不同而違反了ecash專利,但是Satoshi則更加謹(jǐn)慎。或者靈感只是來自cypherpunk社區(qū)的匿名編碼器的想法。

最后一個(gè)原因可能是人身安全。我們知道,Satoshi早期的礦業(yè)有很多比特幣,由于Bitcoin的成功,這些現(xiàn)在值很多錢。我認(rèn)為這是一個(gè)合理的理由。畢竟,選擇匿名不是一次就能做出的決定,而是你一直在做的事情。也就是說,這可能不是Satoshi最原始原因。Satoshi第一次使用Satoshi Nakamoto,他甚至沒有發(fā)布白皮書或比特幣的代碼庫(kù),很難想象他有什么想法會(huì)像現(xiàn)在一樣成功。事實(shí)上,在早期的許多時(shí)刻,Satoshi對(duì)Bitcoin的前景樂觀而謹(jǐn)慎。他似乎已經(jīng)明白許多以前的努力失敗了,比特幣也可能會(huì)失敗。

7.結(jié)語

如果你認(rèn)為所有失敗的企業(yè)都試圖做到這一點(diǎn),比特幣的成功是非常了不起的。比特幣有幾個(gè)顯著的創(chuàng)新,包括區(qū)塊鏈和支持用戶之間的交易的分散式模型。它為用戶提供了實(shí)用但不完美的匿名級(jí)別。在第六章中,我們將詳細(xì)介紹比特幣的匿名性。在某種意義上,它比DigiCash中強(qiáng)大的匿名性弱,但在另一個(gè)意義上說它更強(qiáng)。那是因?yàn)樵贒igiCash中,只有這些錢的發(fā)送者才能保持匿名,而不是商人。比特幣給予發(fā)送者和商家(不管是用戶還是商戶)具有相同的匿名級(jí)別。

讓我最后總結(jié)一些我們可以從比特幣中學(xué)習(xí)的經(jīng)驗(yàn)教訓(xùn)。第一個(gè)是面對(duì)困難不要放棄。僅僅因?yàn)槿藗冊(cè)陂_發(fā)數(shù)字貨幣方面失敗了20年,并不意味著沒有一個(gè)系統(tǒng)能起作用。二是愿意妥協(xié)。如果你想要完美的匿名或完美的分權(quán),你可能需要惡化你設(shè)計(jì)的其他領(lǐng)域。回過頭來看,比特幣似乎做出了正確的妥協(xié)。它縮小了匿名性,并要求參與者在線并連接到對(duì)等網(wǎng)絡(luò)(p2p網(wǎng)絡(luò)),但這被用戶認(rèn)為是可以接受的。

最后一個(gè)教訓(xùn)是通過數(shù)字獲得成功。比特幣能夠建立一個(gè)充滿激情的用戶社區(qū),以及匯聚愿意為開源技術(shù)做出貢獻(xiàn)的開發(fā)人員。這是一種明顯不同于以往的數(shù)字現(xiàn)金嘗試,那些通常是由一家公司開發(fā),唯一的技術(shù)倡導(dǎo)者是公司本身的雇員。比特幣當(dāng)前的成功在很大程度上要?dú)w因于充滿活力的支持社區(qū),他們推動(dòng)了這項(xiàng)技術(shù),讓人們使用它,并讓商人采用它。

比特幣 系統(tǒng) 現(xiàn)金 用戶 Satoshi
分享到:

1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。


專題報(bào)道