中本聰疼进,有國內(nèi)段子手開玩笑說:"中本聰是中國人本來很聰明的縮寫÷菥瑁“
1颠悬,中本聰是誰,他為何不象V神那樣入世定血,難道在研發(fā)新的大招?
2诞外,中本聰在比特幣白皮書中都沒有提到貨幣這個詞澜沟,由"比特幣“技術(shù)衍生出來的,數(shù)千種披著“數(shù)字貨幣”外衣滿天飛的某某幣情況峡谊,這符合他發(fā)布比特幣白皮書的初衷嗎茫虽?
3,中本聰為數(shù)字資產(chǎn)的發(fā)展做出了巨大的貢獻既们,何時才會出現(xiàn)在公眾視野中濒析?
本想寫一篇關(guān)于中本聰?shù)墓适挛恼拢诰W(wǎng)上搜索了一圈資料以后啥纸,卻發(fā)現(xiàn)能獲得的有價值資料十分有限号杏。于是摘錄了一部分巴比特創(chuàng)始人長鋏的文章《我們都是中本聰:那些孜孜以求建立密碼學(xué)貨幣的先驅(qū)們》
I am not Dorian Nakamoto.
中本聰在密碼郵件組中是一個年輕后輩(可能30歲出頭),但地位十分顯赫斯棒,在這個郵件組中盾致,有菲爾·齊默爾曼(PGP技術(shù)的開發(fā)者)、約翰·吉爾摩(太陽微系統(tǒng)公司的明星員工)荣暮、斯蒂文·貝洛文(美國貝爾實驗室研究員庭惜,哥倫比亞大學(xué)計算機科學(xué)教授)、布拉姆·科恩(BT下載的作者)穗酥、蒂姆匣ど蓿·C·梅(英特爾公司前首席科學(xué)家)惠遏、阿桑奇(維基解密創(chuàng)始人)這樣的大牛,雖然沒有任何來自密碼郵件組的成員對中本聰?shù)脑u價骏啰,但我們可以從一些細節(jié)中了解中本聰在其中的地位节吮。
1、哈爾·芬尼(PGP加密的發(fā)明人之一)是中本聰?shù)脑缙谥制饕唬藗冇H切的稱他為中本聰?shù)摹拔稚保ㄎ稚请娫挵l(fā)明人貝爾的助手)哈爾?芬尼(Hal Finney)
2课锌、2011年,維基解密宣布支持比特幣捐贈祈秕,社區(qū)一片歡呼渺贤。消失已久的中本聰卻在論壇發(fā)貼警告這不是一個好消息,他建議阿桑奇不要接受比特幣捐贈请毛。維基解密后來淡化處理了這件事志鞍。那也是中本聰最后一次公開露面,這暗示了他對阿桑奇的不小影響力方仿。
3固棚、中本聰?shù)牡匚槐让艽a學(xué)貨幣的先行者大衛(wèi)·喬姆要高,大衛(wèi)喬姆是什么人仙蚜,大家可以重溫凱文·凱利20年前寫的《失控》此洲,在那本書中凱文·凱利對其濃彩重墨,宛如在為喬布斯一樣的科技明星立傳委粉。兩位天才不同的是呜师,前者失敗了,后者卻汲取了前者的教訓(xùn)贾节≈梗可能正是由于這個原因,導(dǎo)致凱文·凱利對比特幣持悲觀態(tài)度(《技術(shù)元素栗涂,隱秘的匿名市場》)知牌,前者的失敗太痛心了,凱文深愛著大衛(wèi)斤程,以致于他已經(jīng)不太相信中本聰能力挽狂瀾角寸。
中本聰不像凱文那樣對密碼學(xué)貨幣領(lǐng)域那些失敗的前輩頂禮膜拜,相反暖释,他對“現(xiàn)在更多的人對90年代感興趣”不以為然袭厂,在與一位研究者的信件交流中(不久前被研究者公布中本聰和某研究者的信件交流(節(jié)選)),他強調(diào)比特幣的獨一無二球匕,嘲弄基于“信任第三方”系統(tǒng)的失斘苹恰(例如電子現(xiàn)金)×敛埽“我希望人們能夠有一種區(qū)別橄杨,即人們認(rèn)為“我是第一次知道我們在嘗試一個無信任第三方為基礎(chǔ)的系統(tǒng)”秘症。”中本聰?shù)淖孕趴梢娨话摺?/p>
中本聰對這些失敗者的反省是式矫,Beenz乡摹、Flooz、E-cash采转、B-money等虛擬貨幣先驅(qū)嘗試的失敗主要是由其中心化的組織結(jié)構(gòu)所造成的聪廉。這是因為一旦為虛擬貨幣信用背書的公司倒閉,或保管總賬的中央服務(wù)器被黑客攻破故慈,該虛擬貨幣即面臨信用破產(chǎn)與內(nèi)部崩潰的風(fēng)險板熊。2009年2月,中本聰在IRC頻道寫道:“政府擅長擊潰Napster那樣擁有中央控制的網(wǎng)絡(luò)察绷,但是Gnutella 和Tor 這樣完全P2P的網(wǎng)絡(luò)看起來依舊安枕無憂干签。” (《比特幣:一個虛幻而真實的金融世界》預(yù)計2013年12月15日上市,巴比特成員合著拆撼,京東容劳、當(dāng)當(dāng)已有預(yù)售)
中本聰?shù)拿艽a學(xué)造詣十分精湛,許多曾經(jīng)被認(rèn)為是冗余設(shè)計的錯誤闸度,后來被證明都是正確的竭贩,比如精心挑選的Koblitz曲線,避開了美國國安局在加密標(biāo)準(zhǔn)中暗藏的后門莺禁。比如在橢圓曲線數(shù)字簽名算法加密的基礎(chǔ)上娶视,再哈希兩次,足以應(yīng)付量子計算機的威脅……(中本聰?shù)奶觳牛罕忍貛乓砸庀氩坏降姆绞蕉汩_了一些密碼學(xué)子彈)
人們可能誤解了比特幣誕生的意義睁宰,在白皮書《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》中,中本聰甚至提都沒提“貨幣”這個詞寝凌,而存在性證明柒傻,卻在創(chuàng)世區(qū)塊就已經(jīng)暗示了。直到幾年之后较木,社區(qū)開發(fā)者才意識到區(qū)塊鏈的深遠意義红符。
誰是中本聰并不重要。
中本聰就像是密碼朋克們的字母混合體伐债,比如喬姆预侯、戴偉、芬尼峰锁、瑞特萎馅、拜克和薩博,也許他對比特幣開發(fā)的作用比其他人更關(guān)鍵虹蒋,但由于他的神秘糜芳,他會成為一個非常重要的難以被遺忘的歷史密碼飒货。用威廉·吉布森(William Gibson)的小說來形容中本聰,他可視作數(shù)字時代的先知峭竣;用黑客帝國來形容中本聰塘辅,他就像是來自矩陣的尼奧。
比如說皆撩,中本聰是一個結(jié)局早就寫好了的過場戲扣墩,我們從文化上來理解他,他是全球黑客和網(wǎng)絡(luò)自由戰(zhàn)士組成的松散聯(lián)盟的象征扛吞。匿名組織呻惕,維基解密,布拉德利·曼寧喻粹,朱利安·阿桑奇和愛德華·斯諾登……他們都對網(wǎng)絡(luò)監(jiān)控深惡痛絕蟆融,宣稱他們將終結(jié)腐敗。
他們是和平主義的泄密者守呜,他們是知識分子和實用主義者型酥,信仰非暴力,是互聯(lián)網(wǎng)時代的誠實孩子查乒。政府可能將他們標(biāo)記為持不同政見者弥喉,但把他們定義為英雄可能更適合。他們希望挑戰(zhàn)舊秩序玛迄,并建立更公平由境、平等的社會,在那兒教育可以公平地自由的分配給所有人蓖议,在那兒隱私是一種權(quán)利而不是一種特權(quán)虏杰。總而言之勒虾,對那些追求一個更公平的世界的人來說:我們都是中本聰纺阔。
-----------------------------------------------------------------------------
以上內(nèi)容摘自長鋏文章:”
我們都是中本聰:那些孜孜以求建立密碼學(xué)貨幣的先驅(qū)們
http://www.8btc.com/cypherpunk-satoshi
拓展閱讀:
比特幣白皮書:一種點對點的電子現(xiàn)金系統(tǒng)
原文作者:中本聰(Satoshi Nakamoto)
作者郵箱:Satoshin@gmx.com
執(zhí)行翻譯:8btc.com? 巴比特?QQagent
[摘要]:本文提出了一種完全通過點對點技術(shù)實現(xiàn)的電子現(xiàn)金系統(tǒng),它使得在線支付能夠直接由一方發(fā)起并支付給另外一方修然,中間不需要通過任何的金融機構(gòu)笛钝。雖然數(shù)字簽名(Digital signatures)部分解決了這個問題,但是如果仍然需要第三方的支持才能防止雙重支付(double-spending)的話愕宋,那么這種系統(tǒng)也就失去了存在的價值玻靡。我們(we)在此提出一種解決方案,使現(xiàn)金系統(tǒng)在點對點的環(huán)境下運行中贝,并防止雙重支付問題囤捻。該網(wǎng)絡(luò)通過隨機散列(hashing)對全部交易加上時間戳(timestamps),將它們合并入一個不斷延伸的基于隨機散列的工作量證明(proof-of-work)的鏈條作為交易記錄雄妥,除非重新完成全部的工作量證明最蕾,形成的交易記錄將不可更改依溯。最長的鏈條不僅將作為被觀察到的事件序列(sequence)的證明,而且被看做是來自CPU計算能力最大的池(pool)瘟则。只要大多數(shù)的CPU計算能力都沒有打算合作起來對全網(wǎng)進行攻擊黎炉,那么誠實的節(jié)點將會生成最長的、超過攻擊者的鏈條醋拧。這個系統(tǒng)本身需要的基礎(chǔ)設(shè)施非常少慷嗜。信息盡最大努力在全網(wǎng)傳播即可,節(jié)點(nodes)可以隨時離開和重新加入網(wǎng)絡(luò)丹壕,并將最長的工作量證明鏈條作為在該節(jié)點離線期間發(fā)生的交易的證明庆械。
1. 簡介
互聯(lián)網(wǎng)上的貿(mào)易,幾乎都需要借助金融機構(gòu)作為可資信賴的第三方來處理電子支付信息菌赖。雖然這類系統(tǒng)在絕大多數(shù)情況下都運作良好缭乘,但是這類系統(tǒng)仍然內(nèi)生性地受制于“基于信用的模式”(trust based model)的弱點。我們無法實現(xiàn)完全不可逆的交易琉用,因為金融機構(gòu)總是不可避免地會出面協(xié)調(diào)爭端堕绩。而金融中介的存在,也會增加交易的成本邑时,并且限制了實際可行的最小交易規(guī)模奴紧,也限制了日常的小額支付交易。并且潛在的損失還在于晶丘,很多商品和服務(wù)本身是無法退貨的黍氮,如果缺乏不可逆的支付手段,互聯(lián)網(wǎng)的貿(mào)易就大大受限浅浮。因為有潛在的退款的可能沫浆,就需要交易雙方擁有信任。而商家也必須提防自己的客戶滚秩,因此會向客戶索取完全不必要的個人信息件缸。而實際的商業(yè)行為中,一定比例的欺詐性客戶也被認(rèn)為是不可避免的叔遂,相關(guān)損失視作銷售費用處理。而在使用物理現(xiàn)金的情況下争剿,這些銷售費用和支付問題上的不確定性卻是可以避免的已艰,因為此時沒有第三方信用中介的存在。
所以蚕苇,我們非常需要這樣一種電子支付系統(tǒng),它基于密碼學(xué)原理而不基于信用,使得任何達成一致的雙方程腹,能夠直接進行支付,從而不需要第三方中介的參與盒件。杜絕回滾(reverse)支付交易的可能,這就可以保護特定的賣家免于欺詐舱禽;而對于想要保護買家的人來說炒刁,在此環(huán)境下設(shè)立通常的第三方擔(dān)保機制也可謂輕松加愉快。在這篇論文中誊稚,我們(we)將提出一種通過點對點分布式的時間戳服務(wù)器來生成依照時間前后排列并加以記錄的電子交易證明翔始,從而解決雙重支付問題。只要誠實的節(jié)點所控制的計算能力的總和里伯,大于有合作關(guān)系的(cooperating)攻擊者的計算能力的總和城瞎,該系統(tǒng)就是安全的。
2. 交易(Transactions)
我們定義疾瓮,一枚電子貨幣(an electronic coin)是這樣的一串?dāng)?shù)字簽名:每一位所有者通過對前一次交易和下一位擁有者的公鑰(Public key) 簽署一個隨機散列的數(shù)字簽名脖镀,并將這個簽名附加在這枚電子貨幣的末尾,電子貨幣就發(fā)送給了下一位所有者狼电。而收款人通過對簽名進行檢驗蜒灰,就能夠驗證該鏈條的所有者。
該過程的問題在于漫萄,收款人將難以檢驗卷员,之前的某位所有者,是否對這枚電子貨幣進行了雙重支付腾务。通常的解決方案毕骡,就是引入信得過的第三方權(quán)威,或者類似于造幣廠(mint)的機構(gòu)岩瘦,來對每一筆交易進行檢驗未巫,以防止雙重支付。在每一筆交易結(jié)束后启昧,這枚電子貨幣就要被造幣廠回收叙凡,而造幣廠將發(fā)行一枚新的電子貨幣;而只有造幣廠直接發(fā)行的電子貨幣密末,才算作有效握爷,這樣就能夠防止雙重支付⊙侠铮可是該解決方案的問題在于新啼,整個貨幣系統(tǒng)的命運完全依賴于運作造幣廠的公司,因為每一筆交易都要經(jīng)過該造幣廠的確認(rèn)刹碾,而該造幣廠就好比是一家銀行燥撞。
我們需要收款人有某種方法,能夠確保之前的所有者沒有對更早發(fā)生的交易實施簽名。從邏輯上看物舒,為了達到目的色洞,實際上我們需要關(guān)注的只是于本交易之前發(fā)生的交易,而不需要關(guān)注這筆交易發(fā)生之后是否會有雙重支付的嘗試冠胯。為了確保某一次交易是不存在的火诸,那么唯一的方法就是獲悉之前發(fā)生過的所有交易。在造幣廠模型里面涵叮,造幣廠獲悉所有的交易惭蹂,并且決定了交易完成的先后順序。如果想要在電子系統(tǒng)中排除第三方中介機構(gòu)割粮,那么交易信息就應(yīng)當(dāng)被公開宣布(publicly announced)[1]?盾碗,我們需要整個系統(tǒng)內(nèi)的所有參與者,都有唯一公認(rèn)的歷史交易序列舀瓢。收款人需要確保在交易期間絕大多數(shù)的節(jié)點都認(rèn)同該交易是首次出現(xiàn)廷雅。
3. 時間戳服務(wù)器(Timestamp server)
本解決方案首先提出一個“時間戳服務(wù)器”。時間戳服務(wù)器通過對以區(qū)塊(block)形式存在的一組數(shù)據(jù)實施隨機散列而加上時間戳京髓,并將該隨機散列進行廣播航缀,就像在新聞或世界性新聞組網(wǎng)絡(luò)(Usenet)的發(fā)帖一樣[2][3][4][5]?。顯然堰怨,該時間戳能夠證實特定數(shù)據(jù)必然于某特定時間是的確存在的芥玉,因為只有在該時刻存在了才能獲取相應(yīng)的隨機散列值。每個時間戳應(yīng)當(dāng)將前一個時間戳納入其隨機散列值中备图,每一個隨后的時間戳都對之前的一個時間戳進行增強(reinforcing)灿巧,這樣就形成了一個鏈條(Chain)。
4. 工作量證明(Proof-of-Work)
為了在點對點的基礎(chǔ)上構(gòu)建一組分散化的時間戳服務(wù)器揽涮,僅僅像報紙或世界性新聞網(wǎng)絡(luò)組一樣工作是不夠的抠藕,我們還需要一個類似于亞當(dāng)?柏克(Adam Back)提出的哈希現(xiàn)金(Hashcash)[6]?蒋困。在進行隨機散列運算時盾似,工作量證明機制引入了對某一個特定值的掃描工作,比方說SHA-256下雪标,隨機散列值以一個或多個0開始零院。那么隨著0的數(shù)目的上升, 找到這個解所需要的工作量將呈指數(shù)增長,而對結(jié)果進行檢驗則僅需要一次隨機散列運算村刨。
我們在區(qū)塊中補增一個隨機數(shù)(Nonce)门粪,這個隨機數(shù)要使得該給定區(qū)塊的隨機散列值出現(xiàn)了所需的那么多個0。我們通過反復(fù)嘗試來找到這個隨機數(shù)烹困,直到找到為止,這樣我們就構(gòu)建了一個工作量證明機制乾吻。只要該CPU耗費的工作量能夠滿足該工作量證明機制髓梅,那么除非重新完成相當(dāng)?shù)墓ぷ髁磕怛撸搮^(qū)塊的信息就不可更改。由于之后的區(qū)塊是鏈接在該區(qū)塊之后的枯饿,所以想要更改該區(qū)塊中的信息酝锅,就還需要重新完成之后所有區(qū)塊的全部工作量。
同時奢方,該工作量證明機制還解決了在集體投票表決時搔扁,誰是大多數(shù)的問題。如果決定大多數(shù)的方式是基于IP地址的蟋字,一IP地址一票稿蹲,那么如果有人擁有分配大量IP地址的權(quán)力,則該機制就被破壞了鹊奖。而工作量證明機制的本質(zhì)則是一CPU一票苛聘。“大多數(shù)”的決定表達為最長的鏈忠聚,因為最長的鏈包含了最大的工作量设哗。如果大多數(shù)的CPU為誠實的節(jié)點控制,那么誠實的鏈條將以最快的速度延長两蟀,并超越其他的競爭鏈條网梢。如果想要對業(yè)已出現(xiàn)的區(qū)塊進行修改,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量赂毯,并最終趕上和超越誠實節(jié)點的工作量战虏。我們將在后文證明,設(shè)想一個較慢的攻擊者試圖趕上隨后的區(qū)塊欢瞪,那么其成功概率將呈指數(shù)化遞減活烙。
另一個問題是,硬件的運算速度在高速增長遣鼓,而節(jié)點參與網(wǎng)絡(luò)的程度則會有所起伏啸盏。為了解決這個問題,工作量證明的難度(the proof-of-work difficulty)將采用移動平均目標(biāo)的方法來確定骑祟,即令難度指向令每小時生成區(qū)塊的速度為某一個預(yù)定的平均數(shù)回懦。如果區(qū)塊生成的速度過快,那么難度就會提高次企。
5. 網(wǎng)絡(luò)
運行該網(wǎng)絡(luò)的步驟如下:
1) 新的交易向全網(wǎng)進行廣播怯晕;
2) 每一個節(jié)點都將收到的交易信息納入一個區(qū)塊中;
3) 每個節(jié)點都嘗試在自己的區(qū)塊中找到一個具有足夠難度的工作量證明缸棵;
4) 當(dāng)一個節(jié)點找到了一個工作量證明舟茶,它就向全網(wǎng)進行廣播;
5) 當(dāng)且僅當(dāng)包含在該區(qū)塊中的所有交易都是有效的且之前未存在過的,其他節(jié)點才認(rèn)同該區(qū)塊的有效性吧凉;
6) 其他節(jié)點表示他們接受該區(qū)塊隧出,而表示接受的方法,則是在跟隨該區(qū)塊的末尾阀捅,制造新的區(qū)塊以延長該鏈條胀瞪,而將被接受區(qū)塊的隨機散列值視為先于新區(qū)快的隨機散列值。
節(jié)點始終都將最長的鏈條視為正確的鏈條饲鄙,并持續(xù)工作和延長它凄诞。如果有兩個節(jié)點同時廣播不同版本的新區(qū)塊,那么其他節(jié)點在接收到該區(qū)塊的時間上將存在先后差別忍级。當(dāng)此情形帆谍,他們將在率先收到的區(qū)塊基礎(chǔ)上進行工作,但也會保留另外一個鏈條颤练,以防后者變成最長的鏈條既忆。該僵局(tie)的打破要等到下一個工作量證明被發(fā)現(xiàn),而其中的一條鏈條被證實為是較長的一條嗦玖,那么在另一條分支鏈條上工作的節(jié)點將轉(zhuǎn)換陣營患雇,開始在較長的鏈條上工作。
所謂“新的交易要廣播”宇挫,實際上不需要抵達全部的節(jié)點苛吱。只要交易信息能夠抵達足夠多的節(jié)點,那么他們將很快被整合進一個區(qū)塊中器瘪。而區(qū)塊的廣播對被丟棄的信息是具有容錯能力的翠储。如果一個節(jié)點沒有收到某特定區(qū)塊,那么該節(jié)點將會發(fā)現(xiàn)自己缺失了某個區(qū)塊橡疼,也就可以提出自己下載該區(qū)塊的請求援所。
6. 激勵
我們約定如此:每個區(qū)塊的第一筆交易進行特殊化處理,該交易產(chǎn)生一枚由該區(qū)塊創(chuàng)造者擁有的新的電子貨幣欣除。這樣就增加了節(jié)點支持該網(wǎng)絡(luò)的激勵住拭,并在沒有中央集權(quán)機構(gòu)發(fā)行貨幣的情況下,提供了一種將電子貨幣分配到流通領(lǐng)域的一種方法历帚。這種將一定數(shù)量新貨幣持續(xù)增添到貨幣系統(tǒng)中的方法滔岳,非常類似于耗費資源去挖掘金礦并將黃金注入到流通領(lǐng)域。此時挽牢,CPU的時間和電力消耗就是消耗的資源谱煤。
另外一個激勵的來源則是交易費(transaction fees)。如果某筆交易的輸出值小于輸入值禽拔,那么差額就是交易費刘离,該交易費將被增加到該區(qū)塊的激勵中室叉。只要既定數(shù)量的電子貨幣已經(jīng)進入流通,那么激勵機制就可以逐漸轉(zhuǎn)換為完全依靠交易費硫惕,那么本貨幣系統(tǒng)就能夠免于通貨膨脹太惠。
激勵系統(tǒng)也有助于鼓勵節(jié)點保持誠實。如果有一個貪婪的攻擊者能夠調(diào)集比所有誠實節(jié)點加起來還要多的CPU計算力疲憋,那么他就面臨一個選擇:要么將其用于誠實工作產(chǎn)生新的電子貨幣,或者將其用于進行二次支付攻擊梁只。那么他就會發(fā)現(xiàn)缚柳,按照規(guī)則行事、誠實工作是更有利可圖的搪锣。因為該等規(guī)則使得他能夠擁有更多的電子貨幣秋忙,而不是破壞這個系統(tǒng)使得其自身財富的有效性受損。
7. 回收硬盤空間
如果最近的交易已經(jīng)被納入了足夠多的區(qū)塊之中构舟,那么就可以丟棄該交易之前的數(shù)據(jù)灰追,以回收硬盤空間。為了同時確保不損害區(qū)塊的隨機散列值狗超,交易信息被隨機散列時弹澎,被構(gòu)建成一種Merkle樹(Merkle tree)[7]?的形態(tài),使得只有根(root)被納入了區(qū)塊的隨機散列值努咐。通過將該樹(tree)的分支拔除(stubbing)的方法苦蒿,老區(qū)塊就能被壓縮。而內(nèi)部的隨機散列值是不必保存的渗稍。
不含交易信息的區(qū)塊頭(Block header)大小僅有80字節(jié)佩迟。如果我們設(shè)定區(qū)塊生成的速率為每10分鐘一個,那么每一年產(chǎn)生的數(shù)據(jù)位4.2MB竿屹。(80 bytes * 6 * 24 * 365 = 4.2MB)报强。2008年,PC系統(tǒng)通常的內(nèi)存容量為2GB拱燃,按照摩爾定律的預(yù)言秉溉,即使將全部的區(qū)塊頭存儲于內(nèi)存之中都不是問題。
8. 簡化的支付確認(rèn)(Simplified Payment Verification)
在不運行完整網(wǎng)絡(luò)節(jié)點的情況下扼雏,也能夠?qū)χЦ哆M行檢驗坚嗜。一個用戶需要保留最長的工作量證明鏈條的區(qū)塊頭的拷貝,它可以不斷向網(wǎng)絡(luò)發(fā)起詢問诗充,直到它確信自己擁有最長的鏈條苍蔬,并能夠通過merkle的分支通向它被加上時間戳并納入?yún)^(qū)塊的那次交易。節(jié)點想要自行檢驗該交易的有效性原本是不可能的蝴蜓,但通過追溯到鏈條的某個位置碟绑,它就能看到某個節(jié)點曾經(jīng)接受過它俺猿,并且于其后追加的區(qū)塊也進一步證明全網(wǎng)曾經(jīng)接受了它。
當(dāng)此情形格仲,只要誠實的節(jié)點控制了網(wǎng)絡(luò)押袍,檢驗機制就是可靠的。但是凯肋,當(dāng)全網(wǎng)被一個計算力占優(yōu)的攻擊者攻擊時谊惭,將變得較為脆弱。因為網(wǎng)絡(luò)節(jié)點能夠自行確認(rèn)交易的有效性侮东,只要攻擊者能夠持續(xù)地保持計算力優(yōu)勢圈盔,簡化的機制會被攻擊者焊接的(fabricated)交易欺騙。那么一個可行的策略就是悄雅,只要他們發(fā)現(xiàn)了一個無效的區(qū)塊驱敲,就立刻發(fā)出警報,收到警報的用戶將立刻開始下載被警告有問題的區(qū)塊或交易的完整信息宽闲,以便對信息的不一致進行判定众眨。對于日常會發(fā)生大量收付的商業(yè)機構(gòu),可能仍會希望運行他們自己的完整節(jié)點容诬,以保持較大的獨立完全性和檢驗的快速性娩梨。
9. 價值的組合與分割(Combining and Splitting Value)
雖然可以單個單個地對電子貨幣進行處理,但是對于每一枚電子貨幣單獨發(fā)起一次交易將是一種笨拙的辦法放案。為了使得價值易于組合與分割姚建,交易被設(shè)計為可以納入多個輸入和輸出。一般而言是某次價值較大的前次交易構(gòu)成的單一輸入吱殉,或者由某幾個價值較小的前次交易共同構(gòu)成的并行輸入掸冤,但是輸出最多只有兩個:一個用于支付,另一個用于找零(如有)友雳。
需要指出的是稿湿,當(dāng)一筆交易依賴于之前的多筆交易時,這些交易又各自依賴于多筆交易押赊,但這并不存在任何問題饺藤。因為這個工作機制并不需要展開檢驗之前發(fā)生的所有交易歷史。
10. 隱私(Privacy)
傳統(tǒng)的造幣廠模型為交易的參與者提供了一定程度的隱私保護流礁,因為試圖向可信任的第三方索取交易信息是嚴(yán)格受限的涕俗。但是如果將交易信息向全網(wǎng)進行廣播,就意味著這樣的方法失效了神帅。但是隱私依然可以得到保護:將公鑰保持為匿名再姑。公眾得知的信息僅僅是有某個人將一定數(shù)量的貨幣發(fā)所給了另外一個人,但是難以將該交易同特定的人聯(lián)系在一起找御,也就是說元镀,公眾難以確信绍填,這些人究竟是誰。這同股票交易所發(fā)布的信息是類似的栖疑,股票交易發(fā)生的時間讨永、交易量是記錄在案且可供查詢的,但是交易雙方的身份信息卻不予透露遇革。
作為額外的預(yù)防措施卿闹,使用者可以讓每次交易都生成一個新的地址,以確保這些交易不被追溯到一個共同的所有者萝快。但是由于并行輸入的存在比原,一定程度上的追溯還是不可避免的,因為并行輸入表明這些貨幣都屬于同一個所有者杠巡。此時的風(fēng)險在于,如果某個人的某一個公鑰被確認(rèn)屬于他雇寇,那么就可以追溯出此人的其它很多交易氢拥。
11. 計算
設(shè)想如下場景:一個攻擊者試圖比誠實節(jié)點產(chǎn)生鏈條更快地制造替代性區(qū)塊鏈。即便它達到了這一目的锨侯,但是整個系統(tǒng)也并非就此完全受制于攻擊者的獨斷意志了嫩海,比方說憑空創(chuàng)造價值,或者掠奪本不屬于攻擊者的貨幣囚痴。這是因為節(jié)點將不會接受無效的交易叁怪,而誠實的節(jié)點永遠不會接受一個包含了無效信息的區(qū)塊。一個攻擊者能做的深滚,最多是更改他自己的交易信息奕谭,并試圖拿回他剛剛付給別人的錢。
誠實鏈條和攻擊者鏈條之間的競賽痴荐,可以用二叉樹隨機漫步(Binomial Random Walk)來描述血柳。成功事件定義為誠實鏈條延長了一個區(qū)塊,使其領(lǐng)先性+1生兆,而失敗事件則是攻擊者的鏈條被延長了一個區(qū)塊难捌,使得差距-1。
攻擊者成功填補某一既定差距的可能性鸦难,可以近似地看做賭徒破產(chǎn)問題(Gambler’s Ruin problem)根吁。假定一個賭徒擁有無限的透支信用,然后開始進行潛在次數(shù)為無窮的賭博合蔽,試圖填補上自己的虧空击敌。那么我們可以計算他填補上虧空的概率,也就是該攻擊者趕上誠實鏈條辈末,如下所示[8]?:
假定p>q愚争,那么攻擊成功的概率就因為區(qū)塊數(shù)的增長而呈現(xiàn)指數(shù)化下降映皆。由于概率是攻擊者的敵人,如果他不能幸運且快速地獲得成功轰枝,那么他獲得成功的機會隨著時間的流逝就變得愈發(fā)渺茫捅彻。那么我們考慮一個收款人需要等待多長時間,才能足夠確信付款人已經(jīng)難以更改交易了鞍陨。我們假設(shè)付款人是一個支付攻擊者步淹,希望讓收款人在一段時間內(nèi)相信他已經(jīng)付過款了,然后立即將支付的款項重新支付給自己诚撵。雖然收款人屆時會發(fā)現(xiàn)這一點缭裆,但為時已晚。
收款人生成了新的一對密鑰組合寿烟,然后只預(yù)留一個較短的時間將公鑰發(fā)送給付款人澈驼。這將可以防止以下情況:付款人預(yù)先準(zhǔn)備好一個區(qū)塊鏈然后持續(xù)地對此區(qū)塊進行運算,直到運氣讓他的區(qū)塊鏈超越了誠實鏈條筛武,方才立即執(zhí)行支付缝其。當(dāng)此情形,只要交易一旦發(fā)出徘六,攻擊者就開始秘密地準(zhǔn)備一條包含了該交易替代版本的平行鏈條内边。
然后收款人將等待交易出現(xiàn)在首個區(qū)塊中,然后在等到z個區(qū)塊鏈接其后待锈。此時漠其,他仍然不能確切知道攻擊者已經(jīng)進展了多少個區(qū)塊,但是假設(shè)誠實區(qū)塊將耗費平均預(yù)期時間以產(chǎn)生一個區(qū)塊竿音,那么攻擊者的潛在進展就是一個泊松分布和屎,分布的期望值為:
當(dāng)此情形,為了計算攻擊者追趕上的概率春瞬,我們將攻擊者取得進展區(qū)塊數(shù)量的泊松分布的概率密度眶俩,乘以在該數(shù)量下攻擊者依然能夠追趕上的概率。
化為如下形式快鱼,避免對無限數(shù)列求和:
寫為如下C語言代碼:
#include double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
return sum;
}
對其進行運算颠印,我們可以得到如下的概率結(jié)果,發(fā)現(xiàn)概率對z值呈指數(shù)下降抹竹。
當(dāng)q=0.1時
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012
當(dāng)q=0.3時
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006
求解令P<0.1%的z值:
為使P<0.001线罕,則
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340
12.結(jié)論
我們在此提出了一種不需要信用中介的電子支付系統(tǒng)。我們首先討論了通常的電子貨幣的電子簽名原理窃判,雖然這種系統(tǒng)為所有權(quán)提供了強有力的控制钞楼,但是不足以防止雙重支付。為了解決這個問題袄琳,我們提出了一種采用工作量證明機制的點對點網(wǎng)絡(luò)來記錄交易的公開信息询件,只要誠實的節(jié)點能夠控制絕大多數(shù)的CPU計算能力燃乍,就能使得攻擊者事實上難以改變交易記錄。該網(wǎng)絡(luò)的強健之處在于它結(jié)構(gòu)上的簡潔性宛琅。節(jié)點之間的工作大部分是彼此獨立的刻蟹,只需要很少的協(xié)同。每個節(jié)點都不需要明確自己的身份嘿辟,由于交易信息的流動路徑并無任何要求舆瘪,所以只需要盡其最大努力傳播即可。節(jié)點可以隨時離開網(wǎng)絡(luò)红伦,而想重新加入網(wǎng)絡(luò)也非常容易英古,因為只需要補充接收離開期間的工作量證明鏈條即可。節(jié)點通過自己的CPU計算力進行投票昙读,表決他們對有效區(qū)塊的確認(rèn)召调,他們不斷延長有效的區(qū)塊鏈來表達自己的確認(rèn),并拒絕在無效的區(qū)塊之后延長區(qū)塊以表示拒絕蛮浑。本框架包含了一個P2P電子貨幣系統(tǒng)所需要的全部規(guī)則和激勵措施某残。
注釋?(? returns to text)
W Dai(戴偉),a scheme for a group of untraceable digital pseudonyms to pay each other with money and to enforce contracts amongst themselves without outside help(一種能夠借助電子假名在群體內(nèi)部相互支付并迫使個體遵守規(guī)則且不需要外界協(xié)助的電子現(xiàn)金機制), “B-money”, http://www.weidai.com/bmoney.txt, 1998?
H. Massias, X.S. Avila, and J.-J. Quisquater, “Design of a secure timestamping service with minimal trust requirements,”(在最小化信任的基礎(chǔ)上設(shè)計一種時間戳服務(wù)器) In 20th Symposium on Information Theory in the Benelux, May 1999.?
S. Haber, W.S. Stornetta, “How to time-stamp a digital document,” (怎樣為電子文件添加時間戳)In Journal of Cryptology, vol 3, No.2, pages 99-111, 1991.?
D. Bayer, S. Haber, W.S. Stornetta, “Improving the efficiency and reliability of digital time-stamping,”(提升電子時間戳的效率和可靠性) In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993.?
S. Haber, W.S. Stornetta, “Secure names for bit-strings,”(比特字串的安全命名) In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. on Computer and Communications Security, pages 28-35, April 1997.?
A. Back, “Hashcash – a denial of service counter-measure,”(哈希現(xiàn)金——拒絕服務(wù)式攻擊的克制方法)http://www.hashcash.org/papers/hashcash.pdf, 2002.?
R.C. Merkle, “Protocols for public key cryptosystems,” (公鑰密碼系統(tǒng)的協(xié)議)In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980.
S. Haber, W.S. Stornetta, “Secure names for bit-strings,”(比特字串安全命名) In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. on Computer and Communications Security, pages 28-35, April 1997.
H. Massias, X.S. Avila, and J.-J. Quisquater, “Design of a secure timestamping service with minimal trust requirements,”(在最小化信任的條件下設(shè)計一種時間戳服務(wù)器) In 20th Symposium on Information Theory in the Benelux, May 1999.?
W. Feller, “An introduction to probability theory and its applications,” (概率學(xué)理論與應(yīng)用導(dǎo)論)1957?