通往比特幣的道路上到處充斥者失敗的嘗試绞惦。我已經(jīng)編制了大約一百個密碼支付系統(tǒng),無論是電子錢包還是信用卡為基礎的技術,在某些方面它們是非常著名的女责。有些是已經(jīng)得到了很好的學術引用,有些則是實際部署和測試的系統(tǒng)宪祥。這份名單上所有的名字裹芝,有可能你只認識一個——Payply刻坊。而Payply存活的唯一原因,僅僅是它迅速轉離了原來以手持設備密碼支付為核心的想法醋虏!
從這段歷史中可以學到很多東西寻咒。比特幣的想法從何而來?為什么有些技術存活了下來颈嚼,而另一些則會死亡毛秘?復雜的技術創(chuàng)新要成功地商業(yè)化需要些什么?如果不出意外阻课,這個故事會讓你欣賞到叫挟,我們最終擁有的一個真正的、有效的互聯(lián)網(wǎng)付款機制是多么地引人注目限煞。
表1 : 值得注意的電子支付系統(tǒng)和提議
傳統(tǒng)金融的安排
回溯歷史抹恳,在有政府和貨幣之前,一個為獲取貨物而運作的系統(tǒng)是以物易物署驻。比方說奋献,Alice想要一個工具,Bob需要藥品硕舆。如果他們恰好都有對方需要的東西秽荞,那么他們可以交換骤公,兩者都能滿足他們的需要抚官。
另一方面,假設Alice有食物阶捆,她希望通過交換得到一個工具凌节,然而Bob擁有一個工具,但沒有食物的需求洒试,反而他需要藥物倍奢。Alice和Bob不能相互交易,但如果有第三個人垒棋,卡羅爾卒煞,她有藥物,想交換得到食物叼架,那么就有可能安排三方交易畔裕,每個人得到他們所需要的。
當然乖订,它的缺點是需要協(xié)調——組織一群人在同一個時間扮饶、同一個地點,讓他們的需求達成一致乍构。為了解決協(xié)調的問題甜无,出現(xiàn)了兩個系統(tǒng):信貸和現(xiàn)金。歷史學家、人類學家和經(jīng)濟學家對這兩者哪一個是最先發(fā)展起來的起了爭論岂丘,但這對我們的目的無關緊要陵究。
在一個基于信用的系統(tǒng)中,上面例子中的Alice和鮑伯將能夠與對方進行交易奥帘。鮑伯會給Alice這個工具畔乙,Alice則欠鮑伯一個人情。換句話說翩概,Alice有個債務牲距,她需要在未來的某個時候與鮑伯和解。Alice的物質需求現(xiàn)在已經(jīng)得到滿足钥庇,但她想要取消債務牍鞠,所以這是她的新“希望”。如果Alice在未來遇到卡羅爾评姨,Alice可以用食物交易卡羅爾的藥物难述,然后再返回到Bob處,給Bob藥物并取消債務吐句。
另一方面胁后,在以現(xiàn)金為基礎的系統(tǒng)中,Alice會從Bob那里購買工具嗦枢。后來攀芯,她可能會把食物出售給卡羅爾,卡羅爾則能把他的藥物賣給Bob文虏,以此來完成這一循環(huán)侣诺。這些交易可以以任何順序發(fā)生,只要確保每筆交易中的買方手頭有現(xiàn)金氧秘。最后年鸳,當然,這就像錢從未轉過手一樣丸相。
沒有哪個系統(tǒng)更勝一籌搔确。基于現(xiàn)金為基礎的系統(tǒng)灭忠,需要在無交易發(fā)生的情況下膳算,初始分配一些“自舉”現(xiàn)金「瑁基于信用為基礎的系統(tǒng)不需要引導畦幢,但缺點是任何欠了債務的債權人都承擔了一些風險,債務人有可能永遠不會回來償還債務缆蝉。
現(xiàn)金也能讓我們精確地知道某物的價值宇葱。假如你是物物交換瘦真,很難說一個工具的價值超過了藥物,或者藥物的價值超過了食物∈蚯疲現(xiàn)金讓我們用數(shù)據(jù)來談論價值诸尽。這就是我們今天使用混合系統(tǒng)的原因——甚至當我們使用信用卡,我們依舊用它所需的現(xiàn)金來度量債務印颤。
這些想法的出現(xiàn)有很多背景您机,尤其是用戶在線交易某種虛擬物品。例如年局,對等(P2P)文件共享網(wǎng)絡际看,必須處理好“不速之客”的問題,也就是那些下載了文件卻沒有反過來共享文件的用戶矢否。雖然可以交換文件仲闽,但依舊有協(xié)調的問題:尋找誰真正擁有你想要的文件,還有希望你有那個確切的文件僵朗。在MojoNation項目和Karma學術建設中赖欣,用戶必須初始分配一些虛擬現(xiàn)金,以便他們接受文件時支付验庙,發(fā)送文件副本給其他用戶時獲得報酬顶吮。在這兩種情況下,一個或多個中央處理器幫助跟蹤用戶的余額粪薛,并提供內部貨幣與傳統(tǒng)貨幣之間的兌換服務悴了。雖然MojoNation沒有存活足夠長時間來實現(xiàn)這樣的交換,它卻成為當今使用的一些協(xié)議的知識產(chǎn)權祖先:比特流BitTorrent和開源分布式文件儲存系統(tǒng)Tahoe-LAFS.
在線信用卡的麻煩
就基本概念這一點汗菜,我們可以將大量的電子支付方式分成信用和現(xiàn)金兩堆让禀。比特幣顯然是在“現(xiàn)金”堆,但讓我們先看看另一個陨界。
信用卡交易是當今網(wǎng)絡上使用的最主要支付方式。如果你曾經(jīng)從Amazon這樣的在線賣家那里買過東西痛阻,你就知道這個安排是如何進行的菌瘪。你輸入你的信用卡詳細信息,把它發(fā)送到Amazon阱当,然后亞馬遜轉發(fā)這些信用卡詳細信息俏扩,并與“系統(tǒng)”—— 涉及處理器,銀行弊添,信用卡公司和其他中介的金融系統(tǒng)進行交談录淡。
另一方面,如果你使用像PayPal這樣的東西油坝,你所看到的就是一個中介架構嫉戚。在你和賣方之間有一家公司刨裆,你將信用卡信息發(fā)送給這個中介,該中介批準交易并通知賣方彬檀。每一天結束時帆啃,中介會與賣方結平賬目。
你從這個架構中得到的好處是窍帝,你不必向賣家提供你的信用卡詳細信息努潘,這可能是一種安全風險。你甚至不需要讓賣家知道你的身份坤学,這很好地保護了你的隱私疯坤。它的不足是你失去了直接與賣家簡單互動的機會。你和賣家可能不得不在同一個第三方機構都擁有賬戶深浮。
今天贴膘,我們大多數(shù)人都樂于在網(wǎng)上購物時提供信用卡信息,或者至少我們勉強接受略号。我們也習慣于收集有關網(wǎng)上購物和瀏覽活動的數(shù)據(jù)公司刑峡。但在20世紀90年代,網(wǎng)絡是個新新事物玄柠,協(xié)議級加密標準正在出現(xiàn)突梦,這些企業(yè)使消費者深感不安和猶豫。特別是羽利,通過不安全的渠道將信用卡信息交給不知名的網(wǎng)絡供應商被認為是瘋狂的宫患。在這樣的環(huán)境下,人們對中介架構產(chǎn)生了濃厚的興趣这弧。
FirstVirtual是一個早期的支付中介娃闲,它成立于1994年。順便說一下匾浪,他們是最早建立純粹虛擬辦公室的公司之一皇帮,員工遍布全國,通過互聯(lián)網(wǎng)進行溝通蛋辈,因此獲得了這個名字属拾。
FirstVirtual提出的系統(tǒng)有點像PayPal當前的系統(tǒng),但在它先于Paypal之前很多年冷溶。作為用戶渐白,你要注冊并提供你的信用卡詳細信息。當你想要從賣家那里購物時逞频,賣家聯(lián)系FirstVirtual請求所要求付款的詳細信息纯衍,F(xiàn)irstVirtual將與你確認這些信息,你的信用卡則會在你批準后付款苗胀。但有兩個細節(jié)很有趣襟诸。首先瓦堵,所有這些通信都發(fā)生在電子郵件上;當時的Web瀏覽器剛剛開始普遍支持像HTTPS這樣的加密協(xié)議励堡,而多方性的支付協(xié)議也增加了其他的復雜性谷丸。(其他中介機構將信息編碼到URL中或在HTTP之上使用自定義的加密協(xié)議)第二,用戶有三個月的時間來質疑這筆費用应结,商人則只能在三個月之后收到錢刨疼!今天的商家能立即得到報酬,但是鹅龄,仍然有用戶提出退款或對信用卡對賬單存有爭議的風險揩慕。如果發(fā)生這種情況,商家將不得不將付款退還給信用卡公司扮休。
在90年代中期迎卤,出現(xiàn)了一種稱之為集合架構(SET)與這些中介架構進行競爭。SET即避免了用戶向商家發(fā)送信息卡信息的需要玷坠,同時還免除了用戶不得不在第三方進行注冊的麻煩蜗搔。在SET中,當你準備購買時八堡,你的瀏覽器會將你的交易細節(jié)傳送給你計算機上的購物程序樟凄,該購物程序將你的信用卡信息加密,以便除了第三方?jīng)]有人可以解密它兄渺。以這種方式加密了你的數(shù)據(jù)后缝龄,你就可以放心的將其發(fā)送給賣家。賣家機械地將加密數(shù)據(jù)轉發(fā)給第三方挂谍,連同他們自己對交易細節(jié)的看法叔壤。第三方揭秘你的數(shù)據(jù),當你的想法與賣家的想法相符時才批準交易口叙。
SET是一個由VISA和萬事達主導炼绘,當今諸多技術巨頭:Netscape、IBM庐扫、Mircrosoft饭望、Verisign和RSA參與開發(fā)的標準。它是一個規(guī)范總括形庭,一統(tǒng)了幾個現(xiàn)有提議。
有一家采用SET的公司被稱為CrberCash厌漂,在很多方面這是一個有趣的公司萨醒。他們除了處理信用卡支付,還有一款名為CyberCoin的數(shù)字現(xiàn)金產(chǎn)品苇倡。這是一個小額支付系統(tǒng)富纸,用于支付例如用幾美分來閱讀在線報紙的交易囤踩。這意味著你的CyberCoin賬戶任何時候,都可能不會超過10美元晓褪。然而堵漱,有趣的是,他們能夠為每個賬戶獲得最高達10萬美元的美國政府(FDIC)保險涣仿。
回顧過去勤庐,還有更多故事。當CyberCash運行時好港,加密技術被認為是一種武器愉镰,美國政府限制了它的出口,現(xiàn)在已被放棄钧汹。這意味著不能將有意義的加密軟件提供給其他國家的用戶下載丈探。然而,CyberCash能夠得到國務院對他們軟件的特別豁免權拔莱。政府的觀點是碗降,從CyberCash的軟件中提取加密技術,將比從頭開始編寫密碼更難塘秦。
最后讼渊,CyberCash成為少數(shù)幾家受到Y2K攻擊的公司,造成了他們的支付處理軟件對用戶進行雙重收費嗤形。后來精偿,他們在2001年破產(chǎn)。他們的知識產(chǎn)權后來由Verisign收購赋兵,然后他轉過身賣給了現(xiàn)在的Paypal笔咽。
為什么SET沒有起作用?根本問題與證書有關霹期。證書是一種安全地將加密身份(即公鑰)與真實身份相聯(lián)系的方法叶组。它是一個網(wǎng)站需要從Verisign這樣被稱為認證機構的公司獲得,為了展示瀏覽器安全的協(xié)議(通常用鎖定的圖標表示)历造。CyberCash和SET決定不僅系統(tǒng)中的處理器和商家必須獲得證書甩十,所有用戶也必須獲得證書,不然網(wǎng)站就不能安全的使用吭产。獲得證書就像納稅一樣可愛侣监,這樣的系統(tǒng)注定是一場災難。過去幾十年臣淤,主流用戶對任何需要最終用戶證書的系統(tǒng)都表示了堅定和一致的“否定”橄霉,而這些提案現(xiàn)在已經(jīng)被歸為學術論文。Bitcoin通過避免現(xiàn)實生活中的身份驗證邑蒋,巧妙地避開了這個惱人的問題姓蜂。在比特幣中按厘,公鑰本身就是用戶所知的身份,我們將在第1章中講述钱慢。
在90年代中期逮京,當SET被標準化時,萬維網(wǎng)聯(lián)盟也在考慮金融支付的規(guī)范化束莫。他們想通過擴展HTTP協(xié)議來實現(xiàn)這一點懒棉,以便用戶不需要額外的軟件來進行交易,只需使用瀏覽器即可麦箍。事實上漓藕,他們有一個關于如何擴展協(xié)議的一般性建議,以及他們在付款中使用的一個用例挟裂。這從來沒有發(fā)生過享钞,整個擴展框架從未部署在任何瀏覽器中。2015年诀蓉,差不多二十年后栗竖,W3C宣布它想再次嘗試它,且把比特幣納為標準化的一部分渠啤。然而狐肢,不管過去如何失敗,我都不會屏住呼吸沥曹。
從信用到(加密)現(xiàn)金
現(xiàn)在讓我們轉到現(xiàn)金份名。我們先前比較了現(xiàn)金和信貸,并指出現(xiàn)金需要“自舉”妓美,但好處是它避免了買家拖欠債務的可能性〗┫伲現(xiàn)金還有另外兩個優(yōu)勢。第一個是更好的匿名壶栋。由于你的信用卡是以你的名義發(fā)行的辰如,因此銀行可以追蹤你的所有支出。但當你用現(xiàn)金付款時贵试,銀行沒有看到琉兜,而賣方也不需要知道你是誰。第二毙玻,現(xiàn)金可以在不需要第三方批準的情況下啟用離線交易豌蟋。也許后面他們還要去像銀行這樣的第三方存錢,但那就沒有那么麻煩了桑滩。
比特幣不完全具備這兩個屬性夺饲,但足夠接近,這已經(jīng)相當有用了施符。比特幣并不像現(xiàn)金那樣匿名往声。你不需要用你的真實身份來支付比特幣,但可能你的交易可以通過巧妙的算法與公共交易賬簿捆綁在一起戳吝,然后如果你不小心浩销,它進一步與你的身份相關聯(lián)。我們將在第6章中講述比特幣匿名背后凌亂而迷人的細節(jié)听哭。
比特幣不能以完全離線的方式工作慢洋。好消息是,它不需要中央服務器陆盘,而是依靠一個具有彈性普筹、互聯(lián)網(wǎng)本身方式的對等網(wǎng)絡。在第3章中隘马,我們將討論“綠色地址”和小額支付等技巧太防,這些技巧讓我們在某些情況下,或者一定條件下做離線支付酸员。
最早將加密技術應用于現(xiàn)金的想法來自于1983年的大衛(wèi)·肖姆(David
Chaum)蜒车。我們通過物理比喻來理解這一點。假設我開始分發(fā)一些附有我簽名的紙幔嗦,上面寫著:“這張票據(jù)的持有者可以把它兌換成一美元”酿愧。人們如果相信我會遵守我的承諾却舀,并考慮我的簽名是不可偽造的乏奥,他們就可以像紙幣一樣傳遞這些紙張。事實上喷户,紙幣本身就是從商業(yè)銀行簽發(fā)的期票開始的汇恤。只有在最近的歷史中庞钢,各國政府才著手集中貨幣供應,并要求銀行合法贖回票據(jù)屁置。
我可以用電子化的數(shù)字簽名做同樣的事情焊夸,但這會遇到惱人的“雙花”問題——如果你收到一個代表虛擬現(xiàn)金單位的數(shù)據(jù),則可以制作兩個(或更多)副本蓝角,并將其傳遞給不同的人阱穗。為了更好的說明這一點,讓我們稍微延伸一點使鹅,假設人們可以復制出完美的副本揪阶,而我們卻無法分辨出來。這個世界的雙花問題能被我們解決嗎患朱?
這里有一個可能的解決方案:把唯一的序列號放在我發(fā)出的每一個票據(jù)中鲁僚。當你從某人那里收到票據(jù)時,請檢查我的簽名,你也可以打電話給我冰沙,詢問該序列號的票據(jù)是否已經(jīng)花了侨艾。在我說“不”的情況下,你接受這筆票據(jù)拓挥。我將在我的分類賬上把這些序列號記錄為已使用唠梨,如果你嘗試花費該票據(jù),則無法使用侥啤,因為收件人會打電話給我当叭,我會告訴他們該票據(jù)已經(jīng)使用。你需要做的就是定期為我?guī)砟闶盏降乃衅睋?jù)盖灸,我將向你發(fā)送相同數(shù)量的新票據(jù)蚁鳖,并附上新的序列號。
這樣方案完全OK赁炎。這在現(xiàn)實生活中很麻煩醉箕,但是我提供了一個簡單的數(shù)字服務器來完成序列號的簽名和記錄。唯一的問題是甘邀,它不是真的現(xiàn)金琅攘,因為它不是匿名的——當我發(fā)給你票據(jù)的時候,我可以把序列號和你的身份對應起來松邪,同時當別人兌換它時我可以做同樣的事坞琴。這意味著我可以追蹤你所有花錢的地方。
這就是Chaum的創(chuàng)新所在逗抑。他想通了如何既保持系統(tǒng)的匿名性剧辐,又可以通過發(fā)明以下等效的程序來防止雙花問題:當我向你發(fā)出新的票據(jù)時,你來挑選序列號邮府。你把它寫在紙上荧关,蓋住它使我看不到。然后我會簽署它褂傀,仍然無法看到序列號忍啤。這在密碼學中被稱為“盲簽”。根據(jù)愛好選擇一個長的仙辟、隨機的序列號同波,以確保它很有可能是獨一無二的。我絲毫不必擔心你會選擇一個已經(jīng)被選中的序列號叠国,你這樣做只能在結算中發(fā)送你自己未檩,最終會出現(xiàn)一個不能花費的票據(jù)。
這是第一次重要的數(shù)字現(xiàn)金提案粟焊。它有效冤狡,但仍然需要由一個中央權威機構(如銀行)運行的服務器孙蒙,并且需要每個人都信任該實體。此外悲雳,每個交易都需要這個服務器的參與才能完成挎峦。如果服務器暫時關閉,付款就會中斷怜奖。幾年后浑测,在1988年,Chaum與另外兩家密碼學家Fiat和Naor合作提出了離線電子現(xiàn)金歪玲。最初看來這是不可能的:如果你嘗試在兩個不同的商店使用相同的數(shù)字票據(jù)或硬幣,除非他們連接在相同的支付網(wǎng)絡或中央機構掷匠,否則如何阻止他們滥崩?
這個聰明的想法是停止考慮如何阻止雙重支付,而是當商家重新連接到銀行服務器時把重點放在檢測它讹语。畢竟钙皮,這就是為什么即使天空中沒有網(wǎng)絡連接,你還可以在飛機上使用你的信用卡的原因顽决。當航空公司能夠重新連接到網(wǎng)絡時短条,交易就會開始處理。如果你的卡被拒絕才菠,你將欠該航空公司(或你的銀行)的錢茸时。如果你想到這一點,相當多的傳統(tǒng)金融就是基于發(fā)現(xiàn)錯誤或損失的想法赋访,來試圖追回錢或懲罰犯罪者可都。如果你寫一張個人支票,他們不能保證金額實際上在您的帳戶蚓耽,但如果支票跳票他們就會去找你渠牲。可以想象步悠,如果離線電子現(xiàn)金系統(tǒng)得到廣泛采用签杈,法律體系就會認識到雙重消費是一種犯罪行為。
Chaum鼎兽,F(xiàn)iat和Naor的檢測雙重支出的想法是一個復雜的加密藝術答姥。在高水平上,它是這樣實現(xiàn)的:發(fā)給你每個數(shù)字硬幣都會對你的身份進行編碼接奈,除了你和銀行之外踢涌,沒有人可以解碼它。每次你花你的硬幣時序宦,收件人將要求你對編碼的一個隨機子集進行解碼睁壁,他們將保持這一記錄。這種解碼不足以讓他們確定您的身份。但是潘明,如果你雙重消費行剂,最終兩個收件人都會去銀行兌現(xiàn)他們的票據(jù),當他們這樣做時钳降,銀行可以把兩塊信息放在一起厚宰,以極大的概率對你的身份進行完全解碼。
你可能想知道是否有人可以在系統(tǒng)中陷害你成為雙重消費者遂填。你和我一起花了一枚硬幣铲觉,然后我轉過身去,試圖雙重消費(不用銀行兌換吓坚,直接用我的身份編碼獲得一個新的硬幣)撵幽。這將不會起作用——新的收件人將要求我解碼一個隨機的子集,這幾乎肯定不會與為你解碼的子集相同礁击,所以我將無法執(zhí)行他們的解碼請求盐杂。
多年來,許多密碼學家已經(jīng)看到了這種結構哆窿,并以各種方式對它進行了改進链烈。在Chaum-Fiat-Naor的方案中,如果一枚硬幣價值100美元挚躯,而您想要購買的成本僅為75美元强衡,那么根本沒有辦法把這個硬幣分成75美元和25美元。你唯一可以做的是回到銀行秧均,花費$ 100硬幣食侮,并要求一個$ 75硬幣和一個$ 25硬幣。但是Okamoto和Ohta的一篇文章使用“Merkle trees”來創(chuàng)建一個允許您細分硬幣的系統(tǒng)目胡。Merkle trees也將出現(xiàn)在比特幣中锯七,我們將在第1章中講述他們。Chaum-Fiat-Naor的方案同時也為提高支付效率留下了很大的空間誉己。特別的是眉尸,方案中應用的非零知識證明(最著名的由Brands、Camenisch, Hohenberger巨双、Lysyanskaya發(fā)明)噪猾,非常的富有成效。非零知識證明也已經(jīng)應用在比特幣中筑累,我們將在第6章中看到袱蜡。
回到Chaum:他商業(yè)化了他的想法,于1989年組建了一家名為DigiCash的公司慢宗,可能是最早試圖解決在線支付問題的公司坪蚁。他們比我們剛剛討論的諸如FirstVirtual奔穿、CyberCash等早五年時間。Digicash系統(tǒng)中的現(xiàn)金叫做Ecash敏晤,他們還有一個叫做cyberbucks的系統(tǒng)贱田。幾家美國的銀行和至少一家芬蘭的銀行實際實施了他們的方案。這是在二十世紀九十年代嘴脾,早于比特幣很久很久男摧,這可能會讓將銀行視為科技恐懼癥,反創(chuàng)新的龐然大物的比特幣愛好者異常的驚訝译打。
Ecash是基于Chaum的協(xié)議耗拓。客戶是匿名的扶平,所以銀行無法追蹤他們是如何花錢的帆离。但是,ecash的商家并不是匿名的结澄。他們必須在收到貨幣后立即換回硬幣,所以銀行知道他們什么時候做了什么等等岸夯。
圖2:DigiCash的屏幕截圖
圖2顯示了這個軟件的界面麻献。正如你看到的,它顯示了你的余額以及你從銀行發(fā)給你的所有硬幣猜扮。既然沒有辦法分割你的硬幣勉吻,銀行會向你發(fā)出一整套硬幣,價錢分一美分旅赢、兩美分齿桃、四美分等等(以2為倍數(shù))。這樣煮盼,你(或者代表你的軟件)就可以選擇一套硬幣來支付交易的確切金額短纵。
當你想要交易的時候,比如說你想要向非盈利組織EPIC捐款僵控,你需要點擊一個會帶你到Digicash網(wǎng)站的捐贈鏈接香到。然后,將打開一個反向Web鏈接回到你的計算機报破,這意味著你的計算機必須能夠接受傳入的鏈接并充當服務器悠就。你必須擁有你自己的IP地址,且你的ISP將不得不允許傳入鏈接充易。如果連接成功梗脾,ecash軟件會在你的計算機上啟動,你可以批準交易并支付現(xiàn)金盹靴。
Chaum擁有Digicash技術的幾項專利炸茧,特別是其使用的盲簽方案瑞妇。這是有爭議的,它阻止了其他人使用相同的協(xié)議開發(fā)電子貨幣系統(tǒng)宇立。一大堆密碼學家們就此掛上了所謂的Cypherpunks郵件列表來替換它踪宠。Cyperpunks是日本Satoshi Nakamoto后面向世界宣布的Bitcoin郵件列表的前身,這不是巧合妈嘹。我們會在第7章談論Cypherpunk運動和比特幣的根源柳琢。
解密高手破譯ecash實現(xiàn)的一個版本的電子貨幣被稱為magicmoney。它確實違反了專利润脸,但被廣而告之僅用于實驗用途柬脸。這是一個有趣的軟件,它的界面是基于文本的毙驯。你可以通過電子郵件發(fā)送交易倒堕。你只需將交易復制并粘貼到你的電子郵件中,然后將其發(fā)送給其他用戶爆价。希望你最好使用了端到端電子郵件加密軟件(如PGP)來保護傳輸中的交易垦巴。
后來,Ben Laurie和其他很多人一起發(fā)展了一個叫Lucre的提案铭段。Lucre試圖以非專利-作保的方式取代ecash中的盲簽方案骤宣,系統(tǒng)其他部分大致相同。
另外序愚,伊恩·戈德伯格(Ian Goldberg)提出了一個提案試圖解決不能分割硬幣來找零的問題憔披。他的想法是,如果商家還有一些硬幣爸吮,那么他們可以向你發(fā)回硬幣芬膝,以便你沒有多余零錢時可以多支付,然后收到商家發(fā)回的硬幣形娇。但請注意锰霜,這引入了匿名問題。正如我們以前看到的那樣埂软,在ecash中锈遥,發(fā)送者是匿名的,但商家不是勘畔。當商家發(fā)回現(xiàn)金時所灸,從技術上來說他們是發(fā)件人,所以他們是匿名的炫七。但是你爬立,作為必須將這筆現(xiàn)金退回銀行的人,不是匿名的万哪。沒有辦法設計這個系統(tǒng)而不破壞試圖購買商品的用戶的匿名性侠驯。所以抡秆,戈德伯格提出了一個提案,其中有不同類型的硬幣來允許交易的發(fā)生吟策,允許你改回去儒士,并保持你的匿名。
現(xiàn)在我們來看看檩坚,為什么DigiCash失敗了着撩?DigiCash的主要問題是很難說服銀行和商人采用它。既然沒有很多商家接受ecash匾委,用戶當然也不想要它拖叙。更糟糕的是,它不支持用戶和用戶的交易赂乐,或至少支持的不是很好薯鳍。它真正集中在用戶對商家的交易上。因此挨措,如果商人不在船上挖滤,就沒有其他方法可以引導人們對系統(tǒng)感興趣。所以一天結束時浅役,DigiCash失敗了壶辜,信用卡公司勝利了。
作為附注担租,比特幣允許用戶到商家和用戶到用戶的交易。實際上抵怎,協(xié)議沒有與用戶的概念分開的商家概念奋救。對用戶到用戶的交易的支持可能有助于比特幣的成功。從一開始就有一些事有助于你的比特幣:把它發(fā)送給其他用戶反惕,社區(qū)試圖鼓勵對比特幣的支持尝艘,讓商家接受它。
在公司的后幾年里姿染,DigiCash還試用了防篡改硬件背亥,試圖防止雙重支出,而不是僅僅檢測它悬赏。在這個系統(tǒng)中狡汉,你會得到一個通常被稱為錢包或某種卡片的小型硬件設備。該設備將跟蹤您的余額闽颇,當您花費時余額減少盾戴,充值是余額增加。設備最關鍵的是兵多,應該沒有物理或數(shù)字的辦法進入并篡改其計數(shù)尖啡。所以如果這個計數(shù)變?yōu)榱汩掀停敲催@張卡就停止支付,直到它被重新加載為止衅斩。
圖3:電子貨幣系統(tǒng)盆顾,用戶的卡和錢包。
圖3顯示了Mondex系統(tǒng)的用戶端畏梆。有一個智能卡您宪,一個錢包單元,他們都可以加載現(xiàn)金具温。如果您想進行用戶之間的交易蚕涤,那么提供者的用戶將首先把卡片放入錢包中,并將錢從卡上轉移到錢包上铣猩。然后接受者會將他們的卡片插進錢包中揖铜,你將錢移到第二張卡上。這是一種匿名交換數(shù)字現(xiàn)金的方法达皿。
Mondex在一些社區(qū)試用了他們的技術天吓。一個社區(qū)恰好是一個非常接近我長大的城市:圭爾夫,安大略峦椰。你可能已經(jīng)猜到它并沒有真正流行起來龄寞。Mondex卡的一個主要問題是它和現(xiàn)金極像——如果你失去他們或被盜,錢就丟失了汤功。更糟糕的是物邑,如果卡片有某種故障,讀卡器不讀取滔金,則無法確定該卡是否有結余色解。在這些情況下,Mondex通常會cover成本餐茵,他們會假設卡被加載科阎,并向用戶賠償了這筆錢。當然忿族,這可能會使公司損失很多錢锣笨。
此外,錢包笨重而反應緩慢道批,用信用卡或現(xiàn)金支付要快得多错英。零售商也討厭有幾個付款終端,他們只想要一張信用卡屹徘。所有這些因素加在一起導致了Mondex的失敗走趋。
然而,這些卡是智能卡,這意味著它們上面具有小型微控制器簿煌,并且該技術已被證明是成功的氮唯。在今天的許多國家,包括加拿大在內的每一張信用卡和每一張借記卡現(xiàn)在都擁有智能卡技術姨伟。但它用于不同的目的惩琉。它不用于防雙花問題,因為它不是一種基于現(xiàn)金的技術夺荒,因此不會出現(xiàn)這個問題瞒渠。銀行而不是你的信用卡,隨時監(jiān)控著你的余額或可用信用技扼。相反伍玖,芯片是用于認證的,也就是證明你知道和你的帳戶相關聯(lián)的PIN剿吻。但是窍箍,Mondex這一技術很久之后才被銀行業(yè)廣泛采用。
憑空鑄造的錢幣
在DigiCash系統(tǒng)中丽旅,如果您有一個價值100美元的數(shù)字現(xiàn)金椰棘,那么憑什么它值100美元?答案很簡單:為了獲得價值100美元的ecash榄笙,你必須從你的銀行帳戶中拿取100美元邪狞,并將其發(fā)送給正在發(fā)行你的電子現(xiàn)金的銀行。但是茅撞,關于如何做到這一點帆卓,人們提出了一系列不同的建議,而不同的公司采取的做法也不同米丘。一個牽強的可能:如果一個國家的政府實際授權了創(chuàng)造數(shù)字現(xiàn)金的服務鳞疲,讓錢幣憑空出現(xiàn),那又怎么樣蠕蚜?那就是NetCash背后的想法,盡管它從未實踐過悔橄。一個不一樣的系統(tǒng)e-Gold將一堆黃金放在金庫中靶累,并發(fā)行對應價值的數(shù)字現(xiàn)金。另一家名為Digigold的公司并沒有完全由黃金支撐癣疟,而只是獲得了部分儲備挣柬。
所有這些想法最終都會將數(shù)字現(xiàn)金的價值與美元或商品掛鉤。如果美元的價值上漲或下跌睛挚,你的數(shù)字貨幣持有量的價值將隨之而變邪蛔。一個完全不同的可能性是允許數(shù)字現(xiàn)金是自己的貨幣,獨立于任何其他貨幣發(fā)行和估價扎狱。
要創(chuàng)建一個可能獲得真正價值的自由浮動數(shù)字貨幣侧到,你需要設計一些稀缺的東西勃教。事實上,稀缺性也是黃金或鉆石被用作貨幣支持的原因匠抗。在數(shù)字領域故源,實現(xiàn)稀缺的一種方法是設計一套系統(tǒng),使得鑄幣需要一段時間的破解才能成功解決計算問題(或“拼圖”)汞贸。這就是比特幣“采礦”中發(fā)生的事情绳军,我們將在第5章講述。
基本思想是——用計算解決一些具有一定價值矢腻、相當古老的數(shù)字對象謎題门驾。1992年,密碼學家Dwork和Naor首先提出了一個潛在的回復垃圾郵件的解決方案多柑。你每次發(fā)送電子郵件奶是,你的電腦必須解決一個需要幾秒鐘解決的難題,那該怎么辦呢顷蟆?為了執(zhí)行這一要求诫隅,接受者的電子郵件程序會簡單地忽略沒有解決計算難題的電子郵件。對于一般用戶而言帐偎,發(fā)送電子郵件不是一個很大的障礙逐纬,因為你不經(jīng)常發(fā)送電子郵件。但是削樊,如果你是垃圾郵件發(fā)送者贩耐,你正在嘗試一次性發(fā)送數(shù)千或數(shù)百萬封電子郵件,解決這些計算難題可能會變得令人望而卻步等龙。一個類似的想法后來被亞歷山大(1997年)獨立發(fā)現(xiàn)闽坡,提出了一個名叫哈希凱什(Hashcash)的東西。
這些計算謎題需要具有一些特定的屬性才能成為有用的垃圾郵件威懾工具迅脐。首先芍殖,垃圾郵件發(fā)送者不可能解決一個謎題,卻將解決方案附加到他發(fā)送的每封電子郵件中谴蔑。為了確保這一點豌骏,電子郵件中的謎題應該是特定的:它應該取決于發(fā)件人和接收者、電子郵件的內容以及發(fā)送的大致時間隐锭。其次窃躲,接收者應該能夠輕松地檢查拼圖解決方案,而無需重復解決難題的過程钦睡。第三蒂窒,每個謎題應該完全獨立于其他謎題,在某種意義上,解決一個謎題并不會減少解決任何其他謎題所需的時間洒琢。最后秧秉,隨著時間的推移硬件在不斷改善,解決任何給定的計算難題會變得更快更便宜纬凤,接受者要能夠接受調整他們的謎題解決方案的難度福贞。這些屬性可以通過使用加密哈希函數(shù)(Hash fuctions)設計謎題來實現(xiàn),我們將在第1章中研究停士。
比特幣使用與Hashcash基本相同的計算難題挖帘,但有一些小的改進。比特幣比Hashcash做的還要多恋技,畢竟Bitcoin需要一本書來解釋拇舀!我只提到這一點,因為Hashcash發(fā)明家亞當·本德(Adam Back)說:“比特幣是控制通貨膨脹的哈什凱什蜻底〗颈溃”我認為這有一些夸張。這就像說:“特斯拉只是電池裝在輪子上一樣薄辅∫鳎”
就像密碼學中的其他好主意一樣,許多計算謎題旨在實現(xiàn)略微不同的屬性站楚。一個來自Rivest和Shamir的提案脱惰,RSA密碼系統(tǒng)的R和S就來自于他們。請注意窿春,在Hashcash的設計中拉一,你解決一些難題的成本僅僅是個人成本的總和。這與政府造幣的成本結構不同旧乞。如果你考慮到紙幣的防偽技術蔚润,獲取所有設備,創(chuàng)建安全特性等方面都有巨大初始成本尺栖。但是一旦他們完成了所有這些工作嫡纠,他們的成本就會下降,印制一張紙幣或一百張紙幣并沒有什么太大的區(qū)別延赌。換句話說货徙,鑄造紙幣具有巨大的固定成本,但邊際成本較低皮胡。Rivest和Shamir想要設計出可以模擬這些屬性的計算謎題,以便鑄造第一枚硬幣在計算上具有很大的挑戰(zhàn)性赏迟,但鑄造后續(xù)硬幣便宜得多屡贺。他們的提案也使用的哈希功能,但是以不同的方式。我們不會了解他們解決方案的細節(jié)甩栈,但他們試圖解決的問題在很大層次上是非常有趣的泻仙。
為什么Hashcash沒有達到防止垃圾郵件的預期目的呢?也許垃圾郵件只是一個不夠大的待解決問題量没。對于大多數(shù)人來說玉转,垃圾郵件只是一個滋擾,而不值得他們花費他們的計算周期來打擊殴蹄。我們今天的垃圾郵件過濾器可以很好地將垃圾郵件從我們的收件箱中刪除究抓。也有可能Hashcash實際上不會阻止垃圾郵件發(fā)送者。特別是袭灯,大多數(shù)垃圾郵件發(fā)送者今天使用“僵尸網(wǎng)絡”發(fā)送他們的垃圾郵件刺下,他們使用惡意軟件控制大量其他人的電腦。他們也可以用這些電腦來收獲Hashcash稽荧。也就是說橘茉,使用計算謎題來限制對資源的訪問仍然只是一個想法。你可以在一些替代網(wǎng)絡協(xié)議的建議中看到它姨丈,例如MinimaLT畅卓。
記錄分類帳中的所有內容
Bitcoin的另一個重要組成部分是區(qū)塊鏈:所有比特幣交易都被安全地記錄下來的分類帳。區(qū)塊鏈背后的想法相當古老蟋恬,可以追溯到Haber和Stornetta在1991年的一篇論文中翁潘。他們提議的是一種安全時間戳的數(shù)字文檔,而不是數(shù)字貨幣計劃筋现。時間戳的目的是給出一個文件大致產(chǎn)生時間的概念唐础。更重要的是,時間戳準確地傳達了這些文檔的創(chuàng)建順序:如果在另一個文件之前存在矾飞,則將在時間戳上反映出來一膨。安全屬性要求文檔在事后的時間戳不能更改。
在Haber和Stornetta的方案中洒沦,有一個將客戶文檔發(fā)送到時間戳的服務豹绪。當服務器接收到文檔時,它會將文檔與當前時間以及鏈接申眼,還有指向上一個文檔的指針一起簽署瞒津,并發(fā)出帶有該信息的“證書”。這里所說的指針是一種特殊類型的指針括尸,它指向的是一個數(shù)據(jù)而不是一個位置巷蚪。這意味著,如果這里所說的數(shù)據(jù)發(fā)生更改濒翻,指針就會自動失效屁柏。在第1章中啦膜,我們將研究如何使用散列函數(shù)(Hash functions)創(chuàng)建這樣的指針。
這樣做是用每個文檔的證書確保前一個文檔內容的完整性淌喻。實際上僧家,你可以遞歸地應用此參數(shù):每個證書基本上修復了文檔和證書的全部歷史記錄直到這一點為止。如果我們假設系統(tǒng)中的每個客戶端至少記錄幾個證書——他們自己的文檔證書以及上一個和后續(xù)文檔的證書裸删,那么所有參與者可以一起確保在事實之后不能更改歷史記錄八拱。特別的是,文件的相對排序得到保留涯塔。
圖4:鏈接時間戳肌稻。要為文檔創(chuàng)建證書,時間戳服務器包括一個指向上一個文檔證書的哈希指針伤塌,當前時間灯萍,并將這三個數(shù)據(jù)元素簽名在一起。
后來的一篇文章對效率提出了一個改進:我們可以將它們收集到區(qū)塊中并將鏈接塊鏈接在一起每聪,而不是單獨鏈接文檔旦棉。在每個塊中,文檔將再次以樹形結構鏈接在一起药薯,而不是線性結合绑洛。這減少了驗證特定文檔出現(xiàn)在系統(tǒng)歷史記錄中某個特定點所需的檢查量。視覺上童本,這種混合方案如圖5所示真屯。
圖5:有效鏈接時間戳。 箭頭表示散列指針穷娱,虛線表示時間間隔绑蔫。
我們將在第3章中看到,這個數(shù)據(jù)結構形成了比特幣區(qū)塊鏈的骨架泵额。比特幣改進了一個微妙但重要的方式:使用Hashcash-esque協(xié)議來延遲新塊添加到鏈中的速度配深。此修改對Bitcoin的安全模型有著深遠而有利的影響。Bitcoin不再需要可信服務器嫁盲;相反篓叶,事件由被稱為“礦工”的不可信節(jié)點集合記錄。每個礦工跟蹤塊羞秤,而不是依靠普通用戶來完成缸托。任何人都可以通過解決計算謎題來創(chuàng)建塊成為礦工。比特幣也擺脫了簽名瘾蛋,只依靠散列指針(hash pointers)來確保數(shù)據(jù)結構的完整性俐镐。最后,實時的時間戳在比特幣中也并不重要哺哼,系統(tǒng)的亮點是以防篡改的方式記錄事務的相對順序佩抹。事實上奇唤,比特幣塊并不是按固定的時間表創(chuàng)建的。該系統(tǒng)確保平均每10分鐘創(chuàng)建一個新的區(qū)塊匹摇,但連續(xù)塊之間的時間有相當大的變化。
本質上甲葬,比特幣結合了計算謎題的想法來規(guī)范新貨幣單元的創(chuàng)造廊勃,并以安全的時間戳來記錄分類賬上的交易,同時防止雙花問題经窖。早些時候坡垫,較不復雜的提案結合了這兩個想法。第一個叫做b-money画侣,由魏代于1998年所創(chuàng)造冰悠。在b-money中,任何人都可以使用hashcash的系統(tǒng)來創(chuàng)造貨幣配乱。同時有一個像比特幣一樣的對等網(wǎng)絡(p2p網(wǎng)絡)溉卓。每個節(jié)點都維護一個分類帳,但它并不是比特幣區(qū)塊鏈中的全局分類帳搬泥。每個節(jié)點都有自己的分類帳桑寨,它考慮的是每個人的平衡。
另一個叫做Bitgold的類似提案是由Nick Szabo創(chuàng)造的忿檩。Szabo說他早在1998年就有了Bitgold的想法尉尾,但直到2005年才開始共享出來。我之所以提到這一點燥透,是因為有一個小陰謀論被紐約時報記者Nathaniel
Popper所宣傳沙咏,他寫了一本非常好的關于比特幣歷史的書。波佩爾指出班套,在Satoshi發(fā)布了Bitcoin白皮書之后肢藐,網(wǎng)志的時間戳已經(jīng)改變,因此Bitgold的提案看起來像是在比特幣發(fā)布后大約兩個月寫的孽尽。波普爾和許多其他觀察家認為的那樣窖壕,Szabo可能就是Satoshi,他引用時間戳變化作為Szabo / Satoshi試圖掩蓋他在知道Bitcoin之前已經(jīng)發(fā)明了Bitgold事實的證據(jù)杉女。
這個解釋的問題是瞻讽,如果你真的讀了博客的內容,Szabo在1998年是非常明確的有了這個想法熏挎,他不想去改變這些日期速勇。因此,一個更合理的解釋是坎拐,在比特幣推廣了類似的想法后烦磁,他只是把這個帖子頂?shù)搅瞬┛偷捻敹搜伲源_保人們知道他先前的提案。
比特幣與b-money和Bitgold有幾個重要的區(qū)別都伪。在這些提案中呕乎,計算謎題直接用于發(fā)行貨幣。任何人都可以解決一個謎題陨晶,解決方案是一個單位的錢本身猬仁。在比特幣中,謎題解決方案本身并不構成錢先誉。它們被用來固定區(qū)塊鏈湿刽,且只能在有限的時間間接導致鑄幣。其次褐耳,b-money和Bitgold依靠在創(chuàng)建或轉移資金時簽署的時間戳服務诈闺。我們已經(jīng)看到,比特幣不需要可信的時間戳铃芦,只是嘗試保留區(qū)塊和交易的相對順序雅镊。
最后,在b-money和Bitgold中杨帽,如果服務器或節(jié)點之間對分類帳有不同意見漓穿,則沒有明確的解決方法。在兩個作者的著作中注盈,讓多數(shù)人作出決定似乎是含蓄的晃危。但是,由于任何人都可以設置一個或多個隱藏在不同身份的節(jié)點——這些機制不是很安全老客,除非有一個集中的看門人控制著網(wǎng)絡的入口僚饭。相反,在比特幣中胧砰,攻擊者要改變歷史鳍鸵,他們必須以比其他參與者更快的速度解決計算謎題。這不僅更加安全尉间,而且還量化了系統(tǒng)的安全性偿乖。
b-money和Bitgold是非正式的提案——b-money是郵寄名單上的一個帖子,Bitgold是一系列博客文章哲嘲。既沒有起飛贪薪,甚至沒有實施開來。不像比特幣白皮書眠副,他們沒有一個完整的規(guī)范或任何代碼画切。這些提案掩蓋了可能或不可能解決的問題。第一囱怕,正如我們已經(jīng)提到的霍弹,如何解決分類帳的分歧毫别。另一個問題是確定計算難題對于打造貨幣單位是多么困難。由于硬件在一定的計算能力下會隨著時間的推移而變得更加便宜典格,因此Bitcoin采用了一種周期性地自動調整謎題難度的機制岛宦。b-money和Bitgold不包括這樣的一種機制,這可能會導致問題耍缴,因為硬幣可能會變得非常容易地創(chuàng)建而失去價值恋博。
中本聰?shù)陌凳?/b>
你可能會知道Satoshi Nakamoto是比特幣創(chuàng)始人采用的假名。雖然他的身份仍然是一個謎私恬,他卻在比特幣的早期廣泛傳播。讓我們用這個來挖掘一些問題炼吴,比如當他開始創(chuàng)造比特幣時本鸣,他在多大程度上受到先前我們所看到的想法的影響,以及是什么激勵了他硅蹦。
Satoshi說荣德,他在2007年5月左右開始編碼比特幣。我選擇相信他童芹,他是匿名的事實并不是他會說謊的理由涮瞻。他于2008年8月注冊了http://bitcoin.org域名。當時他開始發(fā)送私人電子郵件給一些他認為可能對該提案感興趣的人假褪。然后在2008年10月稍后署咽,他公開發(fā)表了一份描述協(xié)議的白皮書,不久之后生音,他發(fā)布了比特幣的初始代碼宁否。然后他在那里逗留了大約兩年,其間在論壇上張貼了大量的信息缀遍,給很多人發(fā)送了電子郵件慕匠,并回應了人們的關注。在編程方面域醇,他提交了一些補丁台谊。他與其他開發(fā)人員一起維護源代碼,并在出現(xiàn)問題時進行修復譬挚。2010年12月锅铅,其他人已經(jīng)緩慢接管了項目的維護,然后他停止了與他們溝通殴瘦。
我一直把Satoshi Nakamoto稱為“他”狠角,但是我沒有理由相信Satoshi是個男人,而不是女人蚪腋。我只是因為Satoshi是一個男性的名字而使用男性代詞丰歌。我也認為他是一個單身漢姨蟋。有一種理論認為,Satoshi Nakamoto可能是一個個體的集合立帖。我不買這個理論的帳——我覺得Satoshi可能只是一個人眼溶。原因是,如果我們考察Satoshi假名進行的所有在線互動晓勇,以及Satoshi回復電子郵件和修補代碼的兩年時間堂飞,很難想象這可能是多人共享用戶帳戶和密碼,以類似的風格和聲音作出回應绑咱,并確保彼此沒有矛盾绰筛。這似乎是一個更簡單的解釋,至少這部分Satoshi的活動是由一個人完成的描融。
此外铝噩,從他的著作和補丁中可以清楚地看出,這個個體理解了比特幣及其所有設計方面的全部基礎代碼窿克。所以假設同一個人寫了原始代碼庫和白皮書是非常合理的骏庸。最后,Satoshi可能對原始設計有幫助年叮。但是具被,在比特幣發(fā)布之后,我們可以看到Satoshi很快把他收到的其他人的任何幫助歸功于我們大家只损。如果他得到了別人的幫助一姿,卻誤導我們是自己發(fā)明的東西,那就太不好了跃惫。
接下來啸蜜,我們可能會問自己:“Satoshi對于ecash的歷史知道些什么?” 為了更好地理解這一點辈挂,我們可以先看看他在白皮書中引用的內容衬横,以及早期版本的Bitcoin網(wǎng)站上的參考資料。在白皮書中终蒂,他引用了一些關于基本密碼學和概率論的論文蜂林。他還引用了我們早些時間看到的時間戳工作,因此認為他基于這些參考文獻進行區(qū)塊鏈設計是很自然的拇泣,因為他們是如此的相似噪叙。他還引用了Hashcash提案,其計算謎題與Bitcoin中使用的方案非常相似霉翔。他也提到了b-money睁蕾。 后來,他在網(wǎng)站上還添加了對Bitgold的引用,以及Hal Finney的一個計劃來重用計算謎題的解決方案子眶。
但是瀑凝,如果看一看早期與Satoshi Nakamoto對應的人發(fā)布的電子郵件,我們發(fā)現(xiàn)B-money的提案實際上是按照Adam Back的建議添加的臭杰。Satoshi然后通過電子郵件與創(chuàng)建b-money的魏代聯(lián)系粤咪,顯然魏代是那個告訴他Bitgold的人。所以這些提案并不是來自原始設計的靈感渴杆。他后來和Hal Finney通信了很多寥枝,這對于他為什么引用Finney的作品至少在網(wǎng)站上是一個合理的解釋。
基于此磁奖,在創(chuàng)建比特幣時以下似乎是可信的:ecash歷史上的Hashcash和時間戳是Satoshi知道或認為唯一與比特幣相關的事囊拜。然而,在他了解b-money和Bitgold之后比搭,他似乎更贊賞他們之間的相關性艾疟。2010年年中,維基百科上Bitcoin的文章被標記為維基百科編輯已刪除敢辩,因為他們認為這不值得一提。Satoshi和其他人之間有一些關于如何寫B(tài)itcion的討論弟疆,以便維基百科接受它戚长。為此,Satoshi提出了比特幣的這種描述:“比特幣是對1998年以魏代為主的Cypherpunk進行的b-money提案和Nick Szabo的Bitgold提案的實施怠苔。所以同廉,Satoshi在這點上確實把Bitcoin定位為這兩個想法的延伸,或者作為對兩個現(xiàn)有系統(tǒng)有效解釋的一個很好的實施柑司。
但是迫肖,其他的所有的呢——比如我們看過的Chaumian的ecash計劃和信用卡提案呢?在設計比特幣時攒驰,Satoshi是否知道任何關于這些的歷史呢蟆湖?很難說,他沒有任何跡象表明知道這個歷史玻粪,但同樣可能因為他們與比特幣無關而沒有提到這一點隅津。比特幣使用了完全不同的分散模型,所以沒有理由去關注那些失敗的舊集中式系統(tǒng)劲室。
Satoshi自己就這樣做了伦仍,他在比特幣論壇上的一個帖子提到了Chaumian的ecash。在寫另一個名為http://opencoin.org的提案中很洋,他指出充蓝,他們似乎是在談論舊的Chaumian中央造幣廠的東西,但也許只是因為這是唯一可用的。也許他們會對新的方向感興趣谓苟。許多人自動將電子貨幣視為失敗的官脓,因為自1990年代以來所有的公司都失敗了。我想這很明顯娜谊,這些中心化系統(tǒng)的中央控制性注定了他們的結局确买。我認為這是我們第一次嘗試分散的、不信任的系統(tǒng)纱皆。這給了我們一個很好的了解Satoshi對早期提案的看法湾趾,特別是他是如何認為比特幣是不一同的。比特幣的分散化確實是一個定義的特征派草,這使它與我們所看到的幾乎所有的東西不同搀缠。
Satoshi的另一個有趣的引語表明,他可能不是一個學術界人士近迁。大多數(shù)學術研究者在構建系統(tǒng)之前艺普,會在思考想法時立即寫下來。Satoshi說他采取了相反的做法:“我其實使比特幣倒退了鉴竭。在說服我自己可以解決所有問題之前歧譬,我必須寫下所有代碼,最后我才去寫這篇論文搏存。我想我將能夠盡快發(fā)布代碼瑰步,而不是寫一個詳細的規(guī)范¤得撸”
由于Satoshi有一些神話缩焦,值得一提的是,他像其他人一樣犯了錯誤责静,在未來這不是一個完美的神話袁滥。在原始的比特幣代碼以及其設計中,存在著錯誤和可疑的設計選擇灾螃。例如题翻,有一個功能可以將bitcoins發(fā)送到從未被抓取到的IP地址,回想起來腰鬼,這真是一個壞主意藐握。當他描述比特幣對什么有用的時候,他的腳本集中在互聯(lián)網(wǎng)上使用它的想法垃喊。這個場景當然是Bitcoin的核心猾普,但它并不是唯一的。例如本谜,他并沒有指出進入咖啡店的愿景初家,并且可以用比特幣支付咖啡。
最后一個問題我們會問自己,我們從數(shù)字貨幣的歷史中了解到的是有色的溜在∧爸“為什么Satoshi保持匿名?”掖肋,這有很多可能的原因仆葡。首先,這可能只是為了樂趣志笼。許多人匿名寫小說沿盅,像Banksy這樣的涂鴉藝術家也保持匿名。事實上纫溃,在當時Satoshi參與的社區(qū)腰涧、Cypherpunk社區(qū)以及加密郵件列表中,人們常常以匿名方式發(fā)布紊浩。
另一方面窖铡,Satoshi的選擇可能會有法律上擔憂的考慮。兩家美國公司“Liberty
Reserve”和“e-Gold”都面臨洗錢的法律問題坊谁。2006年费彼,自由儲備金的創(chuàng)始人之一逃離了美國,擔心他會因洗錢罪被起訴口芍。另一方面箍铲,e-Gold的創(chuàng)始人則留在了美國,其中一人實際上被起訴阶界,并最終對指控承擔了罪責。這些有罪的入獄恰恰在Satoshi設立比特幣網(wǎng)站聋庵,并開始向他人通過電子郵件發(fā)送他提案之前膘融。也就是說,許多人發(fā)明了ecash系統(tǒng)祭玉,沒有人不害怕法律或選擇保持匿名的氧映。所以這可能是原因,也可能不是脱货。
這也是值得回憶的岛都,ecash的某些方面獲得了專利,Cypherpunk運動的成員關心由于這些專利而實施ecash系統(tǒng)振峻。事實上臼疫,cypherpunks郵件列表中的一個帖子提出,一組匿名編碼器實施ecash扣孟,以防如果有人要起訴烫堤,他們將無法找到編者。很難想象比特幣會因為設計有所不同而違反了ecash專利,但是Satoshi則更加謹慎鸽斟“未矗或者靈感只是來自cypherpunk社區(qū)的匿名編碼器的想法。
最后一個原因可能是人身安全富蓄。我們知道剩燥,Satoshi早期的礦業(yè)有很多比特幣,由于Bitcoin的成功立倍,這些現(xiàn)在值很多錢灭红。我認為這是一個合理的理由。畢竟帐萎,選擇匿名不是一次就能做出的決定比伏,而是你一直在做的事情。也就是說疆导,這可能不是Satoshi最原始原因赁项。Satoshi第一次使用Satoshi Nakamoto,他甚至沒有發(fā)布白皮書或比特幣的代碼庫澈段,很難想象他有什么想法會像現(xiàn)在一樣成功悠菜。事實上,在早期的許多時刻败富,Satoshi對Bitcoin的前景樂觀而謹慎悔醋。他似乎已經(jīng)明白許多以前的努力失敗了,比特幣也可能會失敗兽叮。
結語
如果你認為所有失敗的企業(yè)都試圖做到這一點芬骄,比特幣的成功是非常了不起的。比特幣有幾個顯著的創(chuàng)新鹦聪,包括區(qū)塊鏈和支持用戶之間的交易的分散式模型账阻。它為用戶提供了實用但不完美的匿名級別。在第六章中泽本,我們將詳細介紹比特幣的匿名性淘太。在某種意義上,它比DigiCash中強大的匿名性弱规丽,但在另一個意義上說它更強蒲牧。那是因為在DigiCash中,只有這些錢的發(fā)送者才能保持匿名赌莺,而不是商人冰抢。比特幣給予發(fā)送者和商家(不管是用戶還是商戶)具有相同的匿名級別。
讓我最后總結一些我們可以從比特幣中學習的經(jīng)驗教訓艘狭。第一個是面對困難不要放棄晒屎。僅僅因為人們在開發(fā)數(shù)字貨幣方面失敗了20年喘蟆,并不意味著沒有一個系統(tǒng)能起作用。二是愿意妥協(xié)鼓鲁。如果你想要完美的匿名或完美的分權蕴轨,你可能需要惡化你設計的其他領域『Э裕回過頭來看淫半,比特幣似乎做出了正確的妥協(xié)圣贸。它縮小了匿名性,并要求參與者在線并連接到對等網(wǎng)絡(p2p網(wǎng)絡),但這被用戶認為是可以接受的署穗。
最后一個教訓是通過數(shù)字獲得成功必搞。比特幣能夠建立一個充滿激情的用戶社區(qū)绩脆,以及匯聚愿意為開源技術做出貢獻的開發(fā)人員刘莹。這是一種明顯不同于以往的數(shù)字現(xiàn)金嘗試,那些通常是由一家公司開發(fā)目代,唯一的技術倡導者是公司本身的雇員屈梁。比特幣當前的成功在很大程度上要歸因于充滿活力的支持社區(qū),他們推動了這項技術榛了,讓人們使用它在讶,并讓商人采用它。