比特幣已經(jīng)在眾人面前疾渣,吸引足夠多的眼球,更多是因?yàn)楸忍貛暖倽q的價(jià)格和財(cái)
富效應(yīng)路星,把他定位為數(shù)字黃金是幾乎不完整的定義。更是極少有人去思考其背后
的原因瘟忱。其實(shí)奥额,比特幣上漲的最重要的原因是機(jī)制設(shè)計(jì),簡(jiǎn)單直接解決了問(wèn)題访诱。
比特幣網(wǎng)絡(luò)每10分鐘誕生一個(gè)賬本垫挨,網(wǎng)絡(luò)上所有礦工參與爭(zhēng)奪這個(gè)記賬權(quán),把這?
10分鐘所有的交易打包在一個(gè)賬本里面触菜,形成區(qū)塊九榔。一旦爭(zhēng)奪到區(qū)塊的記賬權(quán),
就可以獲得12.5個(gè)比特幣的獎(jiǎng)勵(lì),所有區(qū)塊連在一起哲泊,就變成區(qū)塊鏈剩蟀。就是今天
媒體、機(jī)構(gòu)切威、大家耳熟能詳?shù)膮^(qū)塊鏈育特。
創(chuàng)造了前所未有巨大的機(jī)制商業(yè)奇跡,在比特網(wǎng)絡(luò)解決了那些問(wèn)題:
把當(dāng)中一條拿出來(lái)先朦,都是現(xiàn)代商業(yè)上的奇跡缰冤,沒(méi)有任何一個(gè)公司能夠做到。但比
特幣一個(gè)做到了以上所有7條喳魏。
這一切都是正是因?yàn)橐粋€(gè)全新的機(jī)制模型設(shè)計(jì)創(chuàng)新棉浸。我們都知道,逐利本是商業(yè)
的天性刺彩,比特幣的偉大之處在于讓單純的逐利行為(挖礦)變成了維護(hù)整個(gè)商業(yè)
系統(tǒng)穩(wěn)定發(fā)展的有效驅(qū)動(dòng)力(POW)迷郑,這是機(jī)制設(shè)計(jì)商業(yè)模型的偉大創(chuàng)新。
好了创倔,做了以上分享嗡害,我附贈(zèng):以下比特幣白皮書(shū)
用心看,一定對(duì)您有更多思考三幻。
[摘要]:提出了一種完全通過(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)絡(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)的工作量證明鏈條作為在該節(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>
的退款的可能帅矗,就需要交易雙方擁有信任。而商家也必須提防自己的客戶煞烫,因此會(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ù)特定的賣(mài)家免于欺詐悦荒;而對(duì)于想要保護(hù)買(mǎi)家的人來(lái)說(shuō)唯欣,在此環(huán)
境下設(shè)立通常的第三方擔(dān)保機(jī)制也可謂輕松加愉快。在這篇論文中逾冬,我們(we)將提出一種通
過(guò)點(diǎn)對(duì)點(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)媒佣,之前的某位所有者匕累,是否對(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)注的只是于本交易之前發(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í)施隨機(jī)散列而加上時(shí)間戳,并將該隨機(jī)散列進(jìn)行廣播鸭丛,就像在新聞或世界性新
聞組網(wǎng)絡(luò)(Usenet)的發(fā)帖一樣[2][3][4][5] 竞穷。顯然,該時(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è)類似于亞當(dāng)·柏克(Adam Back)提出的哈希現(xiàn)金
(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),而對(duì)結(jié)果進(jìn)行檢驗(yàn)則僅需要一次隨機(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ū)塊中的信息违帆,就還需要重新完成之后所有區(qū)塊的全部工作量。
同時(shí)金蜀,該工作量證明機(jī)制還解決了在集體投票表決時(shí)刷后,誰(shuí)是大多數(shù)的問(wèn)題的畴。如果決定大多數(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)算速度在高速增長(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)都將收到的交易信息納入一個(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ì)保留另外一個(gè)鏈條,以防后者變成最長(zhǎng)的鏈
條离斩。該僵局(tie)的打破要等到下一個(gè)工作量證明被發(fā)現(xiàn)银舱,而其中的一條鏈條被證實(shí)為是
較長(zhǎng)的一條,那么在另一條分支鏈條上工作的節(jié)點(diǎn)將轉(zhuǎn)換陣營(yíng)跛梗,開(kāi)始在較長(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ò)的激勵(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)還要多的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. 回收硬盤(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 * 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)接受了它。
當(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 Value)
雖然可以單個(gè)單個(gè)地對(duì)電子貨幣進(jìn)行處理续誉,但是對(duì)于每一枚電子貨幣單獨(dú)發(fā)起一次交易將是
一種笨拙的辦法。為了使得價(jià)值易于組合與分割初肉,交易被設(shè)計(jì)為可以納入多個(gè)輸入和輸出酷鸦。
一般而言是某次價(jià)值較大的前次交易構(gòu)成的單一輸入,或者由某幾個(gè)價(jià)值較小的前次交易共
同構(gòu)成的并行輸入牙咏,但是輸出最多只有兩個(gè):一個(gè)用于支付臼隔,另一個(gè)用于找零(如有)。
需要指出的是妄壶,當(dāng)一筆交易依賴于之前的多筆交易時(shí)摔握,這些交易又各自依賴于多筆交易,但
這并不存在任何問(wèn)題丁寄。因?yàn)檫@個(gè)工作機(jī)制并不需要展開(kāi)檢驗(yàn)之前發(fā)生的所有交易歷史氨淌。
10. 隱私(Privacy)
傳統(tǒng)的造幣廠模型為交易的參與者提供了一定程度的隱私保護(hù),因?yàn)樵噲D向可信任的第三方
索取交易信息是嚴(yán)格受限的伊磺。但是如果將交易信息向全網(wǎng)進(jìn)行廣播盛正,就意味著這樣的方法失
效了。但是隱私依然可以得到保護(hù):將公鑰保持為匿名屑埋。公眾得知的信息僅僅是有某個(gè)人將
一定數(shù)量的貨幣發(fā)所給了另外一個(gè)人豪筝,但是難以將該交易同特定的人聯(lián)系在一起,也就是
說(shuō)雀彼,公眾難以確信壤蚜,這些人究竟是誰(shuí)即寡。這同股票交易所發(fā)布的信息是類似的徊哑,股票交易發(fā)生
的時(shí)間、交易量是記錄在案且可供查詢的聪富,但是交易雙方的身份信息卻不予透露莺丑。
作為額外的預(yù)防措施,使用者可以讓每次交易都生成一個(gè)新的地址,以確保這些交易不被追
溯到一個(gè)共同的所有者梢莽。但是由于并行輸入的存在萧豆,一定程度上的追溯還是不可避免的,因
為并行輸入表明這些貨幣都屬于同一個(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)了一個(gè)區(qū)塊姨蝴,使其領(lǐng)先性+1,而失敗事件則是攻擊者的鏈
條被延長(zhǎng)了一個(gè)區(qū)塊肺缕,使得差距-1左医。
攻擊者成功填補(bǔ)某一既定差距的可能性,可以近似地看做賭徒破產(chǎn)問(wèn)題(Gambler’s Ruin
problem)同木。假定一個(gè)賭徒擁有無(wú)限的透支信用浮梢,然后開(kāi)始進(jìn)行潛在次數(shù)為無(wú)窮的賭博,試
圖填補(bǔ)上自己的虧空彤路。那么我們可以計(jì)算他填補(bǔ)上虧空的概率秕硝,也就是該攻擊者趕上誠(chéng)實(shí)鏈
條,如下所示[8] :
假定p>q洲尊,那么攻擊成功的概率就因?yàn)閰^(qū)塊數(shù)的增長(zhǎng)而呈現(xiàn)指數(shù)化下降远豺。由于概率是攻擊者
的敵人,如果他不能幸運(yùn)且快速地獲得成功坞嘀,那么他獲得成功的機(jī)會(huì)隨著時(shí)間的流逝就變得
愈發(fā)渺茫躯护。那么我們考慮一個(gè)收款人需要等待多長(zhǎng)時(shí)間,才能足夠確信付款人已經(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ā)出,攻擊者就
開(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è)泊松分布含潘,分布的期望值為:
當(dāng)此情形饲做,為了計(jì)算攻擊者追趕上的概率,我們將攻擊者取得進(jìn)展區(qū)塊數(shù)量的泊松分布的概
率密度遏弱,乘以在該數(shù)量下攻擊者依然能夠追趕上的概率盆均。
化為如下形式,避免對(duì)無(wú)限數(shù)列求和: