比特幣白皮書_第1頁(yè)
比特幣白皮書_第2頁(yè)
比特幣白皮書_第3頁(yè)
比特幣白皮書_第4頁(yè)
比特幣白皮書_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、比特幣白皮書:一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)原文作者:中本聰(Satoshi Nakamoto )作者郵箱:Satoshi n 執(zhí)行翻譯: 巴比特QQagent摘要:本文提出了一種完全通過(guò)點(diǎn)對(duì)點(diǎn)技術(shù)實(shí)現(xiàn)的電子現(xiàn)金系統(tǒng),它 使得在線支付能夠直接由一方發(fā)起并支付給另外一方,中間不需要通過(guò)任何的金融機(jī)構(gòu)。雖然數(shù)字簽名(Digital sig natures)部分解決了這個(gè)問(wèn)題,但是如果仍然需要第三方的支持才能防止雙重支付(double-spending)的話,那么這種系統(tǒng)也就失去了存在的價(jià)值。我們(we)在此提出一種解決方案,使現(xiàn)金系統(tǒng)在點(diǎn)對(duì)點(diǎn)的環(huán)境下運(yùn)行,并防止雙重支付問(wèn)題。該網(wǎng)絡(luò)通過(guò)隨機(jī)散列(hash

2、ing )對(duì)全部交易加上 時(shí)間戳(timestamps ),將它們合并入一個(gè)不斷延伸的基于隨機(jī)散列 的工作量證明(proof-of-work )的鏈條作為交易記錄,除非重新完成 全部的工作量證明,形成的交易記錄將不可更改。最長(zhǎng)的鏈條不僅將作為被觀察到的事件序列(sequenee )的證明,而且被看做是來(lái)自 CPU 計(jì)算能力最大的池(pool )。只要大多數(shù)的CPU計(jì)算能力都沒(méi)有打算 合作起來(lái)對(duì)全網(wǎng)進(jìn)行攻擊,那么誠(chéng)實(shí)的節(jié)點(diǎn)將會(huì)生成最長(zhǎng)的、超過(guò)攻擊者的鏈條。這個(gè)系統(tǒng)本身需要的基礎(chǔ)設(shè)施非常少。信息盡最大努力在全網(wǎng)傳播即可,節(jié)點(diǎn)(nodes)可以隨時(shí)離開和重新加入網(wǎng)絡(luò),并將最長(zhǎng)的 工作量證明鏈條作為在

3、該節(jié)點(diǎn)離線期間發(fā)生的交易的證明。1. 簡(jiǎn)介互聯(lián)網(wǎng)上的貿(mào)易,幾乎都需要借助金融機(jī)構(gòu)作為可資信賴的第三方來(lái)處理電子支付信息。雖然這類系統(tǒng)在絕大多數(shù)情況下都運(yùn)作良好,但是這類系統(tǒng)仍然內(nèi)生性地受制于“基于信用的模式” (trust based model)的弱點(diǎn)。我們無(wú)法實(shí)現(xiàn)完全不可逆的交易,因?yàn)榻鹑跈C(jī)構(gòu)總是不可避免地會(huì)出面協(xié)調(diào)爭(zhēng)端。而金融中介的存在, 也會(huì)增加交易的成本, 并且限制了實(shí)際可行的最小交易規(guī)模,也限制了日常的小額支付交易。并且潛在的損失還在于,很多商品和服務(wù)本身是無(wú)法退貨的,如果缺乏不可逆的支付手段,互聯(lián)網(wǎng)的貿(mào)易就大大受限。因?yàn)橛袧撛诘耐丝畹目赡埽托枰灰纂p方擁有信任。而商家也必須提防

4、自己的客戶,因此會(huì)向客戶索取完全不必要的個(gè)人信息。而實(shí)際的商業(yè)行為中, 一定比例的欺詐性客戶也被認(rèn)為是不可避免的,相關(guān)損失視作銷售費(fèi)用處理。而在使用物理現(xiàn)金的情況下,這些銷售費(fèi)用和支付問(wèn)題 上的不確定性卻是可以避免的,因?yàn)榇藭r(shí)沒(méi)有第三方信用中介的存在。所以,我們非常需要這樣一種電子支付系統(tǒng), 它基于密碼學(xué)原理而不基于信用, 使得任何達(dá) 成一致的雙方,能夠直接進(jìn)行支付,從而不需要第三方中介的參與。杜絕回滾(reverse)支付交易的可能,這就可以保護(hù)特定的賣家免于欺詐; 而對(duì)于想要保護(hù)買家的人來(lái)說(shuō), 在此環(huán) 境下設(shè)立通常的第三方擔(dān)保機(jī)制也可謂輕松加愉快。在這篇論文中,我們(we)將提出一種通過(guò)點(diǎn)

5、對(duì)點(diǎn)分布式的時(shí)間戳服務(wù)器來(lái)生成依照時(shí)間前后排列并加以記錄的電子交易證明,從而解決雙重支付問(wèn)題。只要誠(chéng)實(shí)的節(jié)點(diǎn)所控制的計(jì)算能力的總和,大于有合作關(guān)系的(cooperat ing) 攻擊者的計(jì)算能力的總和,該系統(tǒng)就是安全的。2. 交易(Transactions)我們定義,一枚電子貨幣(an electro nic coin )是這樣的一串?dāng)?shù)字簽名:每一位所有者通 過(guò)對(duì)前一次交易和下一位擁有者的公鑰(Public key) 簽署一個(gè)隨機(jī)散列的數(shù)字簽名, 并將這個(gè)簽名附加在這枚電子貨幣的末尾,電子貨幣就發(fā)送給了下一位所有者。而收款人通過(guò)對(duì)簽名進(jìn)行檢驗(yàn),就能夠驗(yàn)證該鏈條的所有者。該過(guò)程的問(wèn)題在于,收款人

6、將難以檢驗(yàn), 之前的某位所有者,是否對(duì)這枚電子貨幣進(jìn)行了雙 重支付。通常的解決方案,就是引入信得過(guò)的第三方權(quán)威,或者類似于造幣廠(mint)的機(jī)構(gòu), 來(lái)對(duì)每一筆交易進(jìn)行檢驗(yàn),以防止雙重支付。在每一筆交易結(jié)束后,這枚電子貨幣就要被造 幣廠回收,而造幣廠將發(fā)行一枚新的電子貨幣;而只有造幣廠直接發(fā)行的電子貨幣,才算作有效,這樣就能夠防止雙重支付。可是該解決方案的問(wèn)題在于,整個(gè)貨幣系統(tǒng)的命運(yùn)完全依賴于運(yùn)作造幣廠的公司,因?yàn)槊恳还P交易都要經(jīng)過(guò)該造幣廠的確認(rèn),而該造幣廠就好比是一 家銀行。我們需要收款人有某種方法,能夠確保之前的所有者沒(méi)有對(duì)更早發(fā)生的交易實(shí)施簽名。從邏輯上看,為了達(dá)到目的,實(shí)際上我們需要關(guān)

7、注的只是于本交易之前發(fā)生的交易,而不需要關(guān)注這筆交易發(fā)生之后是否會(huì)有雙重支付的嘗試。為了確保某一次交易是不存在的,那么唯一的方法就是獲悉之前發(fā)生過(guò)的所有交易。在造幣廠模型里面,造幣廠獲悉所有的交易,并且決定了交易完成的先后順序。如果想要在電子系統(tǒng)中排除第三方中介機(jī)構(gòu),那么交易信息就應(yīng)當(dāng)被公開宣布(publicly announeed)1,我們需要整個(gè)系統(tǒng)內(nèi)的所有參與者,都有唯一公認(rèn)的歷史交易序列。收款人需要確保在交易期間絕大多數(shù)的節(jié)點(diǎn)都認(rèn)同該交易是首次出 現(xiàn)。3. 時(shí)間戳服務(wù)器 仃imestamp server)本解決方案首先提出一個(gè)“時(shí)間戳服務(wù)器”。時(shí)間戳服務(wù)器通過(guò)對(duì)以區(qū)塊(block)形式

8、存在的一組數(shù)據(jù)實(shí)施隨機(jī)散列而加上時(shí)間戳,并將該隨機(jī)散列進(jìn)行廣播,就像在新聞或世界性新聞組網(wǎng)絡(luò)(Use net )的發(fā)帖一樣2345。顯然,該時(shí)間戳能夠證實(shí)特定數(shù)據(jù)必然于某特定 時(shí)間是的確存在的,因?yàn)橹挥性谠摃r(shí)刻存在了才能獲取相應(yīng)的隨機(jī)散列值。每個(gè)時(shí)間戳應(yīng)當(dāng)將前一個(gè)時(shí)間戳納入其隨機(jī)散列值中,每一個(gè)隨后的時(shí)間戳都對(duì)之前的一個(gè)時(shí)間戳進(jìn)行增強(qiáng)(reinforcing),這樣就形成了一個(gè)鏈條( Chain )。»想機(jī) 4隨札 11 1交易區(qū)塊1 左易 14. 工作量證明(Proof-of-Work )為了在點(diǎn)對(duì)點(diǎn)的基礎(chǔ)上構(gòu)建一組分散化的時(shí)間戳服務(wù)器,僅僅像報(bào)紙或世界性新聞網(wǎng)絡(luò)組一樣工作是不夠的

9、,我們還需要一個(gè)類似于亞當(dāng)Adan? B克k ()提出的哈?,F(xiàn)金(Hashcash)。在進(jìn)行隨機(jī)散列運(yùn)算時(shí),工作量證明機(jī)制引入了對(duì)某一個(gè)特定值的掃描工作,比方說(shuō)SHA-256下,隨機(jī)散列值以一個(gè)或多個(gè)0開始。那么隨著0的數(shù)目的上升,找到這個(gè)解所需要的工作量將呈指數(shù)增長(zhǎng),而對(duì)結(jié)果進(jìn)行檢驗(yàn)則僅需要一次隨機(jī)散列運(yùn)算。我們?cè)趨^(qū)塊中補(bǔ)增一個(gè)隨機(jī)數(shù) (Nonee),這個(gè)隨機(jī)數(shù)要使得該給定區(qū)塊的隨機(jī)散列值出現(xiàn)了所需的那么多個(gè)0。我們通過(guò)反復(fù)嘗試來(lái)找到這個(gè)隨機(jī)數(shù),直到找到為止,這樣我們就構(gòu)建了一個(gè)工作量證明機(jī)制。只要該CPU耗費(fèi)的工作量能夠滿足該工作量證明機(jī)制,那么除非 重新完成相當(dāng)?shù)墓ぷ髁?,該區(qū)塊的信息就不

10、可更改。 由于之后的區(qū)塊是鏈接在該區(qū)塊之后的,所以想要更改該區(qū)塊中的信息,就還需要重新完成之后所有區(qū)塊的全部工作量。同時(shí),該工作量證明機(jī)制還解決了在集體投票表決時(shí),誰(shuí)是大多數(shù)的問(wèn)題。如果決定大多數(shù)5區(qū)塊亠之前瑞沁罰眇幾數(shù)TxTx I | . |7 / 16# / 16的方式是基于IP地址的,一 IP地址一票,那么如果有人擁有分配大量IP地址的權(quán)力,則該機(jī)制就被破壞了。而工作量證明機(jī)制的本質(zhì)則是CPU 一票?!按蠖鄶?shù)”的決定表達(dá)為# / 16CPU為誠(chéng)實(shí)的節(jié)點(diǎn)控制,那如果想要對(duì)業(yè)已出現(xiàn)的區(qū)塊進(jìn)最長(zhǎng)的鏈,因?yàn)樽铋L(zhǎng)的鏈包含了最大的工作量。如果大多數(shù)的 么誠(chéng)實(shí)的鏈條將以最快的速度延長(zhǎng),并超越其他的競(jìng)爭(zhēng)

11、鏈條。行修改,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量,并最終趕上和超越誠(chéng)實(shí)節(jié)點(diǎn)的工作量。我們將在后文證明,設(shè)想一個(gè)較慢的攻擊者試圖趕上隨后的區(qū)塊,那么其成功概率將呈指數(shù)化遞減。另一個(gè)問(wèn)題是,硬件的運(yùn)算速度在高速增長(zhǎng),而節(jié)點(diǎn)參與網(wǎng)絡(luò)的程度則會(huì)有所起伏。為了解決這個(gè)問(wèn)題,工作量證明的難度(the proof-of-work difficulty)將采用移動(dòng)平均目標(biāo)的方法來(lái)確定,即令難度指向令每小時(shí)生成區(qū)塊的速度為某一個(gè)預(yù)定的平均數(shù)。如果區(qū)塊生成的速度過(guò)快,那么難度就會(huì)提高。5. 網(wǎng)絡(luò)運(yùn)行該網(wǎng)絡(luò)的步驟如下:* 1)新的交易向全網(wǎng)進(jìn)行廣播;* 2)每一個(gè)節(jié)點(diǎn)都將收到的交易信息納

12、入一個(gè)區(qū)塊中;3)每個(gè)節(jié)點(diǎn)都嘗試在自己的區(qū)塊中找到一個(gè)具有足夠難度的工作量證明;* 4)當(dāng)一個(gè)節(jié)點(diǎn)找到了一個(gè)工作量證明,它就向全網(wǎng)進(jìn)行廣播;5)當(dāng)且僅當(dāng)包含在該區(qū)塊中的所有交易都是有效的且之前未存在過(guò)的,其他節(jié)點(diǎn)才認(rèn)同該區(qū)塊的有效性;* 6)其他節(jié)點(diǎn)表示他們接受該區(qū)塊,而表示接受的方法,則是在跟隨該區(qū)塊的末尾,制造新的區(qū)塊以延長(zhǎng)該鏈條,而將被接受區(qū)塊的隨機(jī)散列值視為先于新區(qū)快的隨機(jī)散列值。節(jié)點(diǎn)始終都將最長(zhǎng)的鏈條視為正確的鏈條,并持續(xù)工作和延長(zhǎng)它。如果有兩個(gè)節(jié)點(diǎn)同時(shí)廣播不同版本的新區(qū)塊,那么其他節(jié)點(diǎn)在接收到該區(qū)塊的時(shí)間上將存在先后差別。當(dāng)此情形,他們將在率先收到的區(qū)塊基礎(chǔ)上進(jìn)行工作,但也會(huì)保留另

13、外一個(gè)鏈條,以防后者變成最長(zhǎng)的鏈條。該僵局(tie )的打破要等到下一個(gè)工作量證明被發(fā)現(xiàn),而其中的一條鏈條被證實(shí)為是較長(zhǎng)的一條,那么在另一條分支鏈條上工作的節(jié)點(diǎn)將轉(zhuǎn)換陣營(yíng),開始在較長(zhǎng)的鏈條上工作。 所謂“新的交易要廣播”,實(shí)際上不需要抵達(dá)全部的節(jié)點(diǎn)。只要交易信息能夠抵達(dá)足夠多的節(jié)點(diǎn),那么他們將很快被整合進(jìn)一個(gè)區(qū)塊中。而區(qū)塊的廣播對(duì)被丟棄的信息是具有容錯(cuò)能力的。如果一個(gè)節(jié)點(diǎn)沒(méi)有收到某特定區(qū)塊,那么該節(jié)點(diǎn)將會(huì)發(fā)現(xiàn)自己缺失了某個(gè)區(qū)塊,也就可以提出自己下載該區(qū)塊的請(qǐng)求。6. 激勵(lì)我們約定如此:每個(gè)區(qū)塊的第一筆交易進(jìn)行特殊化處理,該交易產(chǎn)生一枚由該區(qū)塊創(chuàng)造者擁有的新的電子貨幣。這樣就增加了節(jié)點(diǎn)支持該網(wǎng)絡(luò)

14、的激勵(lì),并在沒(méi)有中央集權(quán)機(jī)構(gòu)發(fā)行貨幣的情況下,提供了一種將電子貨幣分配到流通領(lǐng)域的一種方法。這種將一定數(shù)量新貨幣持續(xù)增添到貨幣系統(tǒng)中的方法,非常類似于耗費(fèi)資源去挖掘金礦并將黃金注入到流通領(lǐng)域。此時(shí),CPU的時(shí)間和電力消耗就是消耗的資源。另外一個(gè)激勵(lì)的來(lái)源則是交易費(fèi) (transaction fees )。如果某筆交易的輸出值小于輸入值, 那么差額就是交易費(fèi), 該交易費(fèi)將被增加到該區(qū)塊的激勵(lì)中。只要既定數(shù)量的電子貨幣已經(jīng)進(jìn)入流通,那么激勵(lì)機(jī)制就可以逐漸轉(zhuǎn)換為完全依靠交易費(fèi),那么本貨幣系統(tǒng)就能夠免于通貨膨脹。激勵(lì)系統(tǒng)也有助于鼓勵(lì)節(jié)點(diǎn)保持誠(chéng)實(shí)。如果有一個(gè)貪婪的攻擊者能夠調(diào)集比所有誠(chéng)實(shí)節(jié)點(diǎn)加 起來(lái)還要

15、多的CPU計(jì)算力,那么他就面臨一個(gè)選擇:要么將其用于誠(chéng)實(shí)工作產(chǎn)生新的電子 貨幣,或者將其用于進(jìn)行二次支付攻擊。那么他就會(huì)發(fā)現(xiàn),按照規(guī)則行事、誠(chéng)實(shí)工作是更有利可圖的。因?yàn)樵摰纫?guī)則使得他能夠擁有更多的電子貨幣,而不是破壞這個(gè)系統(tǒng)使得其自身財(cái)富的有效性受損。7. 回收硬盤空間如果最近的交易已經(jīng)被納入了足夠多的區(qū)塊之中,那么就可以丟棄該交易之前的數(shù)據(jù),以回收硬盤空間。為了同時(shí)確保不損害區(qū)塊的隨機(jī)散列值,交易信息被隨機(jī)散列時(shí),被構(gòu)建成一種Merkle樹(Merkle tree )7的形態(tài),使得只有根(root)被納入了區(qū)塊的隨機(jī)散列值。通 過(guò)將該樹(tree )的分支拔除(stubbing )的方法,老

16、區(qū)塊就能被壓縮。而內(nèi)部的隨機(jī)散 列值是不必保存的。塊W. < | TxOT*1 |Tx3桿 1以K/iMkiR樹形式攵列的疋易將T3從區(qū)抉屮剪除不含交易信息的區(qū)塊頭(Block header )大小僅有80字節(jié)。如果我們?cè)O(shè)定區(qū)塊生成的速率 為每10分鐘一個(gè),那么每一年產(chǎn)生的數(shù)據(jù)位 4.2MB。(80 bytes * 6 * 24 * 365 = 4.2MB)。2008年,PC系統(tǒng)通常的內(nèi)存容量為 2GB,按照摩爾定律的預(yù)言,即使將全部的區(qū)塊頭存 儲(chǔ)于內(nèi)存之中都不是問(wèn)題。8. 簡(jiǎn)化的支付確認(rèn)(Simplified PaymentVerificati on )在不運(yùn)行完整網(wǎng)絡(luò)節(jié)點(diǎn)的情況下,也

17、能夠?qū)χЦ哆M(jìn)行檢驗(yàn)。 一個(gè)用戶需要保留最長(zhǎng)的工作量證明鏈條的區(qū)塊頭的拷貝,它可以不斷向網(wǎng)絡(luò)發(fā)起詢問(wèn),直到它確信自己擁有最長(zhǎng)的鏈條,并能夠通過(guò)merkle的分支通向它被加上時(shí)間戳并納入?yún)^(qū)塊的那次交易。節(jié)點(diǎn)想要自行檢驗(yàn)該交易的有效性原本是不可能的,但通過(guò)追溯到鏈條的某個(gè)位置,它就能看到某個(gè)節(jié)點(diǎn)曾經(jīng) 接受過(guò)它,并且于其后追加的區(qū)塊也進(jìn)一步證明全網(wǎng)曾經(jīng)接受了它。最長(zhǎng)的I】作量證明鏈當(dāng)此情形,只要誠(chéng)實(shí)的節(jié)點(diǎn)控制了網(wǎng)絡(luò),檢驗(yàn)機(jī)制就是可靠的。但是,當(dāng)全網(wǎng)被一個(gè)計(jì)算力占優(yōu)的攻擊者攻擊時(shí), 將變得較為脆弱。因?yàn)榫W(wǎng)絡(luò)節(jié)點(diǎn)能夠自行確認(rèn)交易的有效性,只要攻 擊者能夠持續(xù)地保持計(jì)算力優(yōu)勢(shì),簡(jiǎn)化的機(jī)制會(huì)被攻擊者焊接的(

18、fabricated )交易欺騙。 那么一個(gè)可行的策略就是,只要他們發(fā)現(xiàn)了一個(gè)無(wú)效的區(qū)塊, 就立刻發(fā)出警報(bào),收到警報(bào)的 用戶將立刻開始下載被警告有問(wèn)題的區(qū)塊或交易的完整信息, 以便對(duì)信息的不一致進(jìn)行判定。對(duì)于日常會(huì)發(fā)生大量收付的商業(yè)機(jī)構(gòu), 可能仍會(huì)希望運(yùn)行他們自己的完整節(jié)點(diǎn), 以保持較大 的獨(dú)立完全性和檢驗(yàn)的快速性。9. 價(jià)值的組合與分割(Combining andSplitti ng Value )雖然可以單個(gè)單個(gè)地對(duì)電子貨幣進(jìn)行處理, 但是對(duì)于每一枚電子貨幣單獨(dú)發(fā)起一次交易將是 一種笨拙的辦法。為了使得價(jià)值易于組合與分割,交易被設(shè)計(jì)為可以納入多個(gè)輸入和輸出。 一般而言是某次價(jià)值較大的前次交

19、易構(gòu)成的單一輸入,或者由某幾個(gè)價(jià)值較小的前次交易共同構(gòu)成的并行輸入,但是輸出最多只有兩個(gè):一個(gè)用于支付,另一個(gè)用于找零(如有)。需要指出的是,當(dāng)一筆交易依賴于之前的多筆交易時(shí),這些交易又各自依賴于多筆交易, 這并不存在任何問(wèn)題。因?yàn)檫@個(gè)工作機(jī)制并不需要展開檢驗(yàn)之前發(fā)生的所有交易歷史。10. 隱私(Privacy)傳統(tǒng)隱私模型新隱私模型身份信R交易 注眾傳統(tǒng)的造幣廠模型為交易的參與者提供了一定程度的隱私保護(hù),因?yàn)樵噲D向可信任的第三方索取交易信息是嚴(yán)格受限的。但是如果將交易信息向全網(wǎng)進(jìn)行廣播,就意味著這樣的方法失效了。但是隱私依然可以得到保護(hù):將公鑰保持為匿名。 公眾得知的信息僅僅是有某個(gè)人將一定

20、數(shù)量的貨幣發(fā)所給了另外一個(gè)人,但是難以將該交易同特定的人聯(lián)系在一起,也就是說(shuō),公眾難以確信,這些人究竟是誰(shuí)。這同股票交易所發(fā)布的信息是類似的,股票交易發(fā)生的時(shí)間、交易量是記錄在案且可供查詢的,但是交易雙方的身份信息卻不予透露。作為額外的預(yù)防措施,使用者可以讓每次交易都生成一個(gè)新的地址,以確保這些交易不被追溯到一個(gè)共同的所有者。但是由于并行輸入的存在,一定程度上的追溯還是不可避免的,因?yàn)椴⑿休斎氡砻鬟@些貨幣都屬于同一個(gè)所有者。此時(shí)的風(fēng)險(xiǎn)在于,如果某個(gè)人的某一個(gè)公鑰 被確認(rèn)屬于他,那么就可以追溯出此人的其它很多交易。11. 計(jì)算設(shè)想如下場(chǎng)景:一個(gè)攻擊者試圖比誠(chéng)實(shí)節(jié)點(diǎn)產(chǎn)生鏈條更快地制造替代性區(qū)塊鏈。

21、 即便它達(dá)到 了這一目的,但是整個(gè)系統(tǒng)也并非就此完全受制于攻擊者的獨(dú)斷意志了, 比方說(shuō)憑空創(chuàng)造價(jià) 值,或者掠奪本不屬于攻擊者的貨幣。 這是因?yàn)楣?jié)點(diǎn)將不會(huì)接受無(wú)效的交易, 而誠(chéng)實(shí)的節(jié)點(diǎn) 永遠(yuǎn)不會(huì)接受一個(gè)包含了無(wú)效信息的區(qū)塊。 一個(gè)攻擊者能做的,最多是更改他自己的交易信 息,并試圖拿回他剛剛付給別人的錢。誠(chéng)實(shí)鏈條和攻擊者鏈條之間的競(jìng)賽,可以用二叉樹隨機(jī)漫步(Bin omial Ran dom Walk)來(lái)描述。成功事件定義為誠(chéng)實(shí)鏈條延長(zhǎng)了一個(gè)區(qū)塊,使其領(lǐng)先性+1,而失敗事件則是攻擊者的鏈條被延長(zhǎng)了一個(gè)區(qū)塊,使得差距-1。攻擊者成功填補(bǔ)某一既定差距的可能性,可以近似地看做賭徒破產(chǎn)問(wèn)題(Gambler

22、 ' s Ruinproblem )。假定一個(gè)賭徒擁有無(wú)限的透支信用,然后開始進(jìn)行潛在次數(shù)為無(wú)窮的賭博, 試圖填補(bǔ)上自己的虧空。那么我們可以計(jì)算他填補(bǔ)上虧空的概率,也就是該攻擊者趕上誠(chéng)實(shí)鏈條,如下所示:P二誠(chéng)實(shí)節(jié)點(diǎn)制造岀下一個(gè)節(jié)點(diǎn)的概率q =攻擊者制造出下一個(gè)節(jié)點(diǎn)的概率住=攻擊者最終消弭了 2個(gè)區(qū)塊的落后差距1 if p < q'jQz = ifp >pJ假定p>q,那么攻擊成功的概率就因?yàn)閰^(qū)塊數(shù)的增長(zhǎng)而呈現(xiàn)指數(shù)化下降。由于概率是攻擊者的敵人,如果他不能幸運(yùn)且快速地獲得成功,那么他獲得成功的機(jī)會(huì)隨著時(shí)間的流逝就變得愈發(fā)渺茫。那么我們考慮一個(gè)收款人需要等待多長(zhǎng)時(shí)

23、間,才能足夠確信付款人已經(jīng)難以更改交易了。我們假設(shè)付款人是一個(gè)支付攻擊者,希望讓收款人在一段時(shí)間內(nèi)相信他已經(jīng)付過(guò)款了,然后立即將支付的款項(xiàng)重新支付給自己。雖然收款人屆時(shí)會(huì)發(fā)現(xiàn)這一點(diǎn),但為時(shí)已晚。收款人生成了新的一對(duì)密鑰組合,然后只預(yù)留一個(gè)較短的時(shí)間將公鑰發(fā)送給付款人。這將可以防止以下情況:付款人預(yù)先準(zhǔn)備好一個(gè)區(qū)塊鏈然后持續(xù)地對(duì)此區(qū)塊進(jìn)行運(yùn)算,直到運(yùn)氣讓他的區(qū)塊鏈超越了誠(chéng)實(shí)鏈條,方才立即執(zhí)行支付。當(dāng)此情形,只要交易一旦發(fā)出,攻擊者就開始秘密地準(zhǔn)備一條包含了該交易替代版本的平行鏈條。然后收款人將等待交易出現(xiàn)在首個(gè)區(qū)塊中,然后在等到z個(gè)區(qū)塊鏈接其后。此時(shí),他仍然不能確切知道攻擊者已經(jīng)進(jìn)展了多少個(gè)區(qū)塊

24、,但是假設(shè)誠(chéng)實(shí)區(qū)塊將耗費(fèi)平均預(yù)期時(shí)間以產(chǎn)生一個(gè)區(qū)塊,那么攻擊者的潛在進(jìn)展就是一個(gè)泊松分布,分布的期望值為:P當(dāng)此情形,為了計(jì)算攻擊者追趕上的概率,我們將攻擊者取得進(jìn)展區(qū)塊數(shù)量的泊松分布的概 率密度,乘以在該數(shù)量下攻擊者依然能夠追趕上的概率。一k)ifk< Zif k >化為如下形式,避免對(duì)無(wú)限數(shù)列求和:k=C寫為如下C語(yǔ)言代碼:#include double AttackerSuccessProbability(double q, int z)double p = 1.0 - q;double lambda = z * (q / p);double sum = 1.0;int i,

25、 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;z值呈指數(shù)下降。對(duì)其進(jìn)行運(yùn)算,我們可以得到如下的概率結(jié)果,發(fā)現(xiàn)概率對(duì)當(dāng)q=0.1時(shí)z=0 P=1.0000000z=1 P=0.2045873z=2 P=0.0509779z=3 P=0.0131722z=4 P=0.0034552z=5 P=0.0009137z=6 P=0.000

26、2428z=7 P=0.0000647z=8 P=0.0000173z=9 P=0.0000046z=10 P=0.0000012當(dāng)q=0.3時(shí)z=0 P=1.0000000z=5 P=0.1773523z=10 P=0.0416605z=15 P=0.0101008z=20 P=0.0024804z=25 P=0.0006132z=30 P=0.0001522z=35 P=0.0000379z=40 P=0.0000095z=45 P=0.0000024z=50 P=0.0000006求解令P<0.1%的z值:為使P<0.001,則q=0.10 z=5q=0.15 z=8q=0.

27、20 z=11q=0.25 z=15q=0.30 z=24q=0.35 z=41q=0.40 z=89q=0.45 z=34012.結(jié)論我們?cè)诖颂岢隽艘环N不需要信用中介的電子支付系統(tǒng)。我們首先討論了通常的電子貨幣的電子簽名原理,雖然這種系統(tǒng)為所有權(quán)提供了強(qiáng)有力的控制,但是不足以防止雙重支付。為了 解決這個(gè)問(wèn)題,我們提出了一種采用工作量證明機(jī)制的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)來(lái)記錄交易的公開信息,只要誠(chéng)實(shí)的節(jié)點(diǎn)能夠控制絕大多數(shù)的CPU計(jì)算能力,就能使得攻擊者事實(shí)上難以改變交易記錄。該網(wǎng)絡(luò)的強(qiáng)健之處在于它結(jié)構(gòu)上的簡(jiǎn)潔性。節(jié)點(diǎn)之間的工作大部分是彼此獨(dú)立的,只需要很少的協(xié)同。每個(gè)節(jié)點(diǎn)都不需要明確自己的身份,由于交易信息的

28、流動(dòng)路徑并無(wú)任何要求,所以只需要盡其最大努力傳播即可。節(jié)點(diǎn)可以隨時(shí)離開網(wǎng)絡(luò),而想重新加入網(wǎng)絡(luò)也非常容易,因?yàn)橹恍枰a(bǔ)充接收離開期間的工作量證明鏈條即可。節(jié)點(diǎn)通過(guò)自己的CPU計(jì)算力進(jìn)行投票,表決他們對(duì)有效區(qū)塊的確認(rèn),他們不斷延長(zhǎng)有效的區(qū)塊鏈來(lái)表達(dá)自己的確認(rèn),并拒絕在無(wú)效的區(qū)塊之后延長(zhǎng)區(qū)塊以表示拒絕。本框架包含了一個(gè)P2P電子貨幣系統(tǒng)所需要的全部規(guī)則和激勵(lì)措施。注釋 (? returns to text)1. W Dai (戴偉),a scheme for a group of untraceable digital pseudonyms to pay eachother with money a

29、nd to enforce contracts amongst themselves without outside help(一種能夠借助電子假名在群體內(nèi)部相互支付并迫使個(gè)體遵守規(guī)則且不需要外界協(xié)助的電子現(xiàn)金機(jī)制),“ B-money ” , 1998?2. H. Massias, X.S. Avila, and J.-J. Quisquater,“Design of a secure timestampingservice with minimal trust requirements,"(在最小化信任的基礎(chǔ)上設(shè)計(jì)一種時(shí)間戳服務(wù)器)In 20th Symposium on Inf

30、ormation Theory in the Benelux, May 1999.?3. S. Haber, W.S. Stornetta,“ How to time-stamp a digital document,”(怎樣為電子文件添加時(shí)間戳)In Journal of Cryptology, vol 3, No.2, pages 99-111, 1991.?4. D. Bayer, S. Haber, W.S. Stornetta,a Improving the efficiency and reliabilityof digital time-stamping, ”(提升電子時(shí)間戳的效率和可靠性)In Sequences II: Methodsin Communication, Security and Computer Science, pages 329-334, 1993.?5. S. Haber, W.S. Stornetta, “Secure names for bit-strings,"(比特字串的安全命名)In Pro

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論