比特幣-中本聰原文中文版_第1頁(yè)
比特幣-中本聰原文中文版_第2頁(yè)
比特幣-中本聰原文中文版_第3頁(yè)
比特幣-中本聰原文中文版_第4頁(yè)
比特幣-中本聰原文中文版_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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) Bitcoin: A Peer-to-Peer Electronic Cash System 原文作者:中本聰(Satoshi Nakamoto) 摘要:本文提出了一種完全通過(guò)點(diǎn)對(duì)點(diǎn)技術(shù)實(shí)現(xiàn)的電子現(xiàn)金系統(tǒng),它使得在線支付能夠直接由一方發(fā)起并支付給另外一方,中間不需要通過(guò)任何的金融機(jī)構(gòu)。雖然數(shù)字簽名(Digital signatures)部分解決了這個(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)

2、絡(luò)通過(guò)隨機(jī)散列(hashing)對(duì)全部交易加上時(shí)間戳(timestamps),將它們合并入一個(gè)不斷延伸的基于隨機(jī)散列的工作量證明(proof-of-work)的鏈條作為交易記錄,除非重新完成全部的工作量證明,形成的交易記錄將不可更改。最長(zhǎng)的鏈條不僅將作為被觀察到的事件序列(sequence)的證明,而且被看做是來(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í)離開(kāi)和重新加入網(wǎng)絡(luò),并將最長(zhǎng)的工作量證明鏈條作為在

3、該節(jié)點(diǎn)離線期間發(fā)生的交易的證明。 1. 簡(jiǎn)介 互聯(lián)網(wǎng)上的貿(mào)易,幾乎都需要借助金融機(jī)構(gòu)作為可資信賴的第三方來(lái)處理電子支付信息。雖然在絕大多數(shù)情況下這類(lèi)系統(tǒng)都運(yùn)作良好,但是這類(lèi)系統(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)橛袧撛诘耐丝畹目赡?就需要交易雙方擁有信任。此外,因?yàn)樯碳乙脖?/p>

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

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

6、,之前的某位所有者,是否對(duì)這枚電子貨幣進(jìn)行了雙重支付。通常的解決方案,就是引入信得過(guò)的第三方權(quán)威,或者類(lèi)似于造幣廠(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)被公開(kāi)宣布(publicly announced)1,我們需要整個(gè)系統(tǒng)內(nèi)的所有參與者,都有唯一公認(rèn)的歷史交易序列。收款人需要確保在交易期間絕大多數(shù)的節(jié)點(diǎn)都認(rèn)同該交易是首次出現(xiàn)。 3. 時(shí)間戳服務(wù)器(Timestamp server) 本解決方案首先提出一個(gè)“時(shí)間戳服務(wù)器”。時(shí)間戳服務(wù)器通過(guò)對(duì)以區(qū)塊(block)形式存在的一組數(shù)據(jù)實(shí)

8、施隨機(jī)散列而加上時(shí)間戳,并將該隨機(jī)散列進(jìn)行廣播,就像在新聞或世界性新聞組網(wǎng)絡(luò)(Usenet)的發(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)。 4. 工作量證明(Proof-of-Work) 為了在點(diǎn)對(duì)點(diǎn)的基礎(chǔ)上構(gòu)建一組分散化的時(shí)間戳服務(wù)器,僅僅像報(bào)紙或世界性新聞網(wǎng)絡(luò)組一樣工作是不夠的,我們還需要一個(gè)類(lèi)似于亞當(dāng)·柏克(Adam Back)提出的哈?,F(xiàn)金

9、(Hashcash)6。在進(jìn)行隨機(jī)散列運(yùn)算時(shí),工作量證明機(jī)制引入了對(duì)某一個(gè)特定值的掃描工作,比方說(shuō)SHA-256下,隨機(jī)散列值以一個(gè)或多個(gè)0開(kāi)始。那么隨著0的數(shù)目的上升, 找到這個(gè)解所需要的工作量將呈指數(shù)增長(zhǎng),但是檢驗(yàn)結(jié)果僅需要一次隨機(jī)散列運(yùn)算。 我們?cè)趨^(qū)塊中補(bǔ)增一個(gè)隨機(jī)數(shù)(Nonce),這個(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ū)塊的信息就不可更改。由于之后的區(qū)塊是鏈接在該區(qū)塊之后的,所以想要更改該區(qū)塊中的信息,

10、就還需要重新完成之后所有區(qū)塊的全部工作量。 數(shù)的方式是基于IP地址的,一IP地址一票,那么如果有人擁有分配大量IP地址的權(quán)力,則該機(jī)制就被破壞了。而工作量證明機(jī)制的本質(zhì)則是一CPU一票?!按蠖鄶?shù)”的決定表達(dá)為最長(zhǎng)的鏈,因?yàn)樽铋L(zhǎng)的鏈包含了最大的工作量。如果大多數(shù)的CPU為誠(chéng)實(shí)的節(jié)點(diǎn)控制,那么誠(chéng)實(shí)的鏈條將以最快的速度延長(zhǎng),并超越其他的競(jìng)爭(zhēng)鏈條。如果想要對(duì)業(yè)已出現(xiàn)的區(qū)塊進(jìn)行修改,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量,并最終趕上和超越誠(chéng)實(shí)節(jié)點(diǎn)的工作量。我們將在后文證明,設(shè)想一個(gè)較慢的攻擊者試圖趕上隨后的區(qū)塊,那么其成功概率將呈指數(shù)化遞減。 另一個(gè)問(wèn)題是,硬件的運(yùn)算速度在高速增

11、長(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ū)塊的速度為某一預(yù)設(shè)的平均數(shù)。如果區(qū)塊生成的速度過(guò)快,那么難度就會(huì)提高。 5. 網(wǎng)絡(luò) 運(yùn)行該網(wǎng)絡(luò)的步驟如下: 1) 新的交易向全網(wǎng)進(jìn)行廣播; 2) 每一個(gè)節(jié)點(diǎn)都將收到的交易信息納入一個(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ū)塊的有

12、效性; 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ì)保留另外一個(gè)鏈條,以防后者變成最長(zhǎng)的鏈條。該僵局(tie)的打破要等到下一個(gè)工作量證明被發(fā)現(xiàn),而其中的一條鏈條被證實(shí)為是較長(zhǎng)的一條,那么在另一條分支鏈條上工作的節(jié)點(diǎn)將轉(zhuǎn)換陣營(yíng),開(kāi)始在較長(zhǎng)的鏈條上工作。 所謂“新的交易要廣播”,實(shí)際上

13、不需要抵達(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ò)的激勵(lì),并在沒(méi)有中央集權(quán)機(jī)構(gòu)發(fā)行貨幣的情況下,提供了一種將電子貨幣分配到流通領(lǐng)域的一種方法。這種將一定數(shù)量新貨幣持續(xù)增添到貨幣系統(tǒng)中的方法,非常類(lèi)似于耗費(fèi)資源去挖掘金礦并將黃金注入到流通領(lǐng)域。此時(shí),CPU的時(shí)間和電力消耗就是

14、消耗的資源。 另外一個(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)還要多的CPU計(jì)算力,那么他就面臨一個(gè)選擇:要么將其用于誠(chéng)實(shí)工作產(chǎn)生新的電子貨幣,或者將其用于進(jìn)行二次支付攻擊。那么他就會(huì)發(fā)現(xiàn),按照規(guī)則行事、誠(chéng)實(shí)工作是更有利可圖的。因?yàn)樵摰纫?guī)則使得他能夠擁有更多的電子貨幣,而不是破壞這個(gè)系統(tǒng)使得其自

15、身財(cái)富的有效性受損。 7. 回收硬盤(pán)空間 如果最近的交易已經(jīng)被納入了足夠多的區(qū)塊之中,那么就可以丟棄該交易之前的數(shù)據(jù),以回收硬盤(pán)空間。為了同時(shí)確保不損害區(qū)塊的隨機(jī)散列值,交易信息被隨機(jī)散列時(shí),被構(gòu)建成一種Merkle樹(shù)(Merkle tree)7的形態(tài),使得只有根(root)被納入了區(qū)塊的隨機(jī)散列值。通過(guò)將該樹(shù)(tree)的分支拔除(stubbing)的方法,老區(qū)塊就能被壓縮。而內(nèi)部的隨機(jī)散列值是不必保存的。 不含交易信息的區(qū)塊頭(Block header)大小僅有80字節(jié)。如果我們?cè)O(shè)定區(qū)塊生成的速率為每10分鐘一個(gè),那么每一年產(chǎn)生的數(shù)據(jù)位4.2MB。(80 bytes * 6 * 24 *

16、365 = 4.2MB)。2008年,PC系統(tǒng)通常的內(nèi)存容量為2GB,按照摩爾定律的預(yù)言,即使將全部的區(qū)塊頭存儲(chǔ)于內(nèi)存之中都不是問(wèn)題。 8. 簡(jiǎn)化的支付確認(rèn)(Simplified Payment Verification) 在不運(yùn)行完整網(wǎng)絡(luò)節(jié)點(diǎn)的情況下,也能夠?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)接

17、受了它。當(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ì)被攻擊者焊接的(fabricated)交易欺騙。那么一個(gè)可行的策略就是,只要他們發(fā)現(xiàn)了一個(gè)無(wú)效的區(qū)塊,就立刻發(fā)出警報(bào),收到警報(bào)的用戶將立刻開(kāi)始下載被警告有問(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 and Splitting

18、 Value) 雖然可以單個(gè)單個(gè)地對(duì)電子貨幣進(jìn)行處理,但是對(duì)于每一枚電子貨幣單獨(dú)發(fā)起一次交易將是一種笨拙的辦法。為了使得價(jià)值易于組合與分割,交易被設(shè)計(jì)為可以納入多個(gè)輸入和輸出。一般而言是某次價(jià)值較大的前次交易構(gòu)成的單一輸入,或者由某幾個(gè)價(jià)值較小的前次交易共同構(gòu)成的并行輸入,但是輸出最多只有兩個(gè):一個(gè)用于支付,另一個(gè)用于找零(如有)。 需要指出的是,雖然一筆交易依賴于之前的多筆交易、這些交易又各自依賴于多筆交易,但是這并不存在任何問(wèn)題。因?yàn)檫@個(gè)工作機(jī)制并不需要展開(kāi)檢驗(yàn)之前發(fā)生的所有交易歷史。 10. 隱私(Privacy) 傳統(tǒng)的造幣廠模型為交易的參與者提供了一定程度的隱私保護(hù),因?yàn)樵噲D向可信任

19、的第三方索取交易信息是嚴(yán)格受限的。但是如果將交易信息向全網(wǎng)進(jìn)行廣播,就意味著這樣的方法失效了。但是隱私依然可以得到保護(hù):將公鑰保持為匿名。公眾得知的信息僅僅是有某個(gè)人將一定數(shù)量的貨幣發(fā)所給了另外一個(gè)人,但是難以將該交易同某個(gè)特定的人聯(lián)系在一起,也就是說(shuō),公眾難以確信,這些人究竟是誰(shuí)。這同股票交易所發(fā)布的信息是類(lèi)似的,每一手股票買(mǎi)賣(mài)發(fā)生的時(shí)間、交易量是記錄在案且可供查詢的,但是交易雙方的身份信息卻不予透露。 作為額外的預(yù)防措施,使用者可以讓每次交易都生成一個(gè)新的地址,以確保這些交易不被追溯到一個(gè)共同的所有者。不過(guò)由于存在并行輸入,一定程度上的追溯還是不可避免的,因?yàn)椴⑿休斎氚凳具@些貨幣都屬于同一

20、個(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ū)塊鏈。即便它達(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è)攻擊者能做的,最多是更改他自己的交易信息,并試圖拿回他剛剛付給別人的錢(qián)。 誠(chéng)實(shí)鏈條和攻擊者鏈條之間的競(jìng)賽,可以用二叉樹(shù)隨機(jī)漫步(Binomial Random Walk)來(lái)描述。成功事件定義為誠(chéng)實(shí)鏈條延長(zhǎng)

21、了一個(gè)區(qū)塊,使其領(lǐng)先性+1,而失敗事件則是攻擊者的鏈條被延長(zhǎng)了一個(gè)區(qū)塊,使得差距-1。 攻擊者成功填補(bǔ)某一既定差距的可能性,可以近似地看做賭徒破產(chǎn)問(wèn)題(Gamblers Ruin problem)。假定一個(gè)賭徒擁有無(wú)限的透支信用,然后開(kāi)始進(jìn)行潛在次數(shù)為無(wú)窮的賭博,試圖填補(bǔ)上自己的虧空。那么我們可以計(jì)算他填補(bǔ)上虧空的概率,也就是該攻擊者趕上誠(chéng)實(shí)鏈條,如下所示:假定p>q,那么攻擊成功的概率就因?yàn)閰^(qū)塊數(shù)的增長(zhǎng)而呈現(xiàn)指數(shù)化下降。由于概率是攻擊者的敵人,如果他不能幸運(yùn)且快速地獲得成功,那么他獲得成功的機(jī)會(huì)隨著時(shí)間的流逝就變得愈發(fā)渺茫。那么我們考慮一個(gè)收款人需要等待多長(zhǎng)時(shí)間,才能足夠確信付款人已經(jīng)

22、難以更改交易了。我們假設(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ā)出,攻擊者就開(kāi)始秘密地準(zhǔn)備一條包含了該交易替代版本的平行鏈條。 然后收款人將等待交易出現(xiàn)在首個(gè)區(qū)塊中,然后在等到z個(gè)區(qū)塊鏈接其后。此時(shí),他仍然不能確切知道攻擊者已經(jīng)進(jìn)展了多少個(gè)區(qū)塊,但是假設(shè)誠(chéng)實(shí)區(qū)塊將耗費(fèi)平均預(yù)期時(shí)間以產(chǎn)生一個(gè)區(qū)塊,那么攻擊者的潛在進(jìn)展就是一個(gè)泊松分布,分布的期望值為: =z * q/p ,當(dāng)此情形,為了計(jì)算攻擊者追趕上的概率,我們將攻擊者取得進(jìn)展區(qū)塊數(shù)量的泊松分布的概率密度,乘以在該數(shù)量下攻擊者依然能夠追趕上的概率?;癁槿缦滦问?,避免對(duì)無(wú)限數(shù)列求和: 為如下C語(yǔ)言代碼:#include <math.h> double AttackerSu

溫馨提示

  • 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)論