• <blockquote id="p4xxi"><xmp id="p4xxi">

    <em id="p4xxi"></em>
    <abbr id="p4xxi"><noframes id="p4xxi">
    <em id="p4xxi"></em>

    與哈希函數(shù)一起,數(shù)字簽名理論為加密貨幣奠定了基礎(chǔ)。

    摘要:當(dāng)然,高飛幣有一個(gè)致命安全隱患,假設(shè)愛(ài)麗絲通過(guò)把她簽署的聲明發(fā)送給鮑勃,即將她的幣轉(zhuǎn)給鮑勃,但并沒(méi)有告訴其他人,此時(shí)她也可以創(chuàng)建另一個(gè)簽名,聲明將同樣一只幣轉(zhuǎn)給了查克,對(duì)于查克來(lái)說(shuō),這看起來(lái)是一個(gè)完全有效的交易。...

    歡迎來(lái)到四葉草堂,我是龍笑生。數(shù)字簽名(digital signatures)理論和哈希函數(shù)一起,為加密貨幣奠定了基礎(chǔ)。更多精彩內(nèi)容,敬請(qǐng)關(guān)注“四葉草堂”,今天繼續(xù)分享《區(qū)塊鏈:技術(shù)驅(qū)動(dòng)金融》一書(shū)的精彩部分。

    所有貨幣都需要通過(guò)某種方式控制供給,并需要實(shí)施各種安全屬性以防止欺騙行為發(fā)生,就法定貨幣而言,中央銀行這樣的機(jī)構(gòu)控制貨幣供給,并在實(shí)體貨幣上加上防偽標(biāo)識(shí),這些安全屬性提升了攻擊貨幣的門(mén)檻和難度,但并非不可能偽造,最終,執(zhí)法部門(mén)仍需要介入,以防止貨幣系統(tǒng)規(guī)則受到破壞。加密數(shù)字貨幣也必須采取安全措施,以防御破壞系統(tǒng)狀態(tài)的行為,同時(shí)加密數(shù)字貨幣還需要防止“混淆”,即對(duì)不同的人說(shuō)出相互矛盾的話。例如,如果愛(ài)麗絲讓鮑勃確信她向他支付了一個(gè)數(shù)字幣,她就不能再說(shuō)服卡羅爾,也給她支付同一個(gè)數(shù)字幣。加密數(shù)字貨幣與法定貨幣的不同在于,其安全規(guī)則需要完全通過(guò)技術(shù)手段實(shí)現(xiàn),而非依賴(lài)于中央機(jī)構(gòu)。

    哈希函數(shù)是一個(gè)數(shù)學(xué)函數(shù),具有以下三個(gè)特性:● 其輸入可為任意大小的字符串。● 它產(chǎn)生固定大小的輸出,例如輸出值大小為256位。● 它能進(jìn)行有效計(jì)算,簡(jiǎn)單來(lái)說(shuō)就是對(duì)于特定的輸入字符串,在合理時(shí)間內(nèi),可以算出哈希函數(shù)的輸出。此外,哈希函數(shù)達(dá)到密碼安全,還需要具有以下三個(gè)附加特性:(1)碰撞阻力(collision-resistance);(2)隱秘性(hiding);(3)謎題友好(puzzle-friendliness)。

    哈希函數(shù)的第一個(gè)特性是它要具有碰撞阻力,這里的碰撞指對(duì)于兩個(gè)不同的輸入,產(chǎn)生相同的輸出。如果對(duì)于哈希函數(shù)H(·),沒(méi)有人能夠以較短時(shí)間找到碰撞,我們則稱(chēng)該函數(shù)具有碰撞阻力。對(duì)于一個(gè)256位輸出的哈希函數(shù)來(lái)說(shuō),最壞的情況是你需要進(jìn)行2256+1次哈希函數(shù)計(jì)算,平均次數(shù)為2128次,這簡(jiǎn)直是一個(gè)天文數(shù)字——如果一臺(tái)電腦每秒計(jì)算10000個(gè)哈希值,計(jì)算2128個(gè)哈希值,需要花1027多年時(shí)間!為此,我們可以將哈希輸出作為信息摘要(message digest)。以SecureBox為例,SecureBox是一個(gè)允許用戶上傳文件,并保證文件被完整下載的線上文件存儲(chǔ)系統(tǒng),假設(shè)愛(ài)麗絲上傳了很大的文件,并希望能夠在之后下載時(shí)確認(rèn)下載的文件與她上傳的文件相同。無(wú)碰撞哈希函數(shù)為這個(gè)問(wèn)題提供了簡(jiǎn)單有效的解決方法,愛(ài)麗絲只需要記住原文件的哈希值,從SecureBox下載文件后,可以計(jì)算下載文件的哈希值,并與原文件哈希值進(jìn)行對(duì)比,如果哈希值相同,那么愛(ài)麗絲可以說(shuō)該文件就是她上傳的那一個(gè),但是如果不同,她則可以確定文件被破壞了。

    哈希函數(shù)擁有的第二個(gè)特性是其隱秘性。隱秘性保證,如果我們僅僅知道哈希函數(shù)的輸出y=H(x),我們沒(méi)有可行的辦法算出輸入值x。在類(lèi)似拋硬幣的“正面”、“反面”實(shí)驗(yàn)中,如果輸入值并非來(lái)自分散的集合,我們是否還能得到隱秘性?幸運(yùn)的是,對(duì)于這個(gè)問(wèn)題答案是肯定的!我們可以通過(guò)與另一個(gè)較為分散的輸入進(jìn)行結(jié)合,而將一個(gè)并不分散的輸入進(jìn)行隱秘。承諾方案就是應(yīng)用了這一原理,我們首先產(chǎn)生一個(gè)臨時(shí)隨機(jī)數(shù)。然后將這個(gè)臨時(shí)隨機(jī)數(shù)與承諾信息msg一起代入承諾函數(shù),計(jì)算承諾函數(shù)輸出值com,然后公布該輸出,這個(gè)過(guò)程就如同將封好的信封放到一個(gè)人人能看到的桌上那樣。之后,我們公布用于產(chǎn)生承諾的臨時(shí)隨機(jī)數(shù),并公布信息msg,此時(shí)任何人都可以驗(yàn)證這時(shí)公布的msg是否與之前的承諾信息一致,這個(gè)階段就如同打開(kāi)信封。

    哈希函數(shù)的第三個(gè)安全特性為謎題友好特性。直覺(jué)上,謎題友好可以這樣解釋?zhuān)绻幸粋€(gè)人想找到y(tǒng)值所對(duì)應(yīng)的輸入,假定在輸入集合中,有一部分是非常隨機(jī)的,那么他將非常難以求得y值對(duì)應(yīng)的輸入。這個(gè)直覺(jué)是:如果H有一個(gè)n位輸出,那么它的可能取值有2n個(gè)。解決這個(gè)謎題要求找到一個(gè)位于集合Y(通常比所有輸出值集合小很多)內(nèi)的輸出值,Y的大小決定了謎題的難度,如果Y是所有n位字符串的集合,這個(gè)謎題就毫無(wú)意義,然而,如果Y只有一個(gè)元素,那么這個(gè)謎題難度最大。如果一個(gè)哈希函數(shù)具備謎題友好特性,這就意味著對(duì)于這個(gè)謎題沒(méi)有一個(gè)解決策略,比只是隨機(jī)地嘗試x取值會(huì)更好。

    哈希指針是一種數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單來(lái)說(shuō),哈希指針是一個(gè)指向數(shù)據(jù)存儲(chǔ)位置及其位置數(shù)據(jù)哈希值的指針。一個(gè)普通的指針可以告訴你數(shù)據(jù)存儲(chǔ)的位置,哈希指針不但可以告訴你數(shù)據(jù)存儲(chǔ)的位置,并且還可以給你一種方式,讓你驗(yàn)證數(shù)據(jù)沒(méi)有被篡改過(guò)。如果對(duì)手修改了區(qū)塊鏈中任意部位的數(shù)據(jù),那么將會(huì)導(dǎo)致下一個(gè)數(shù)據(jù)塊的哈希指針不正確,如果我們鎖定區(qū)塊鏈的頭部數(shù)據(jù),那么即使對(duì)手修改了所有哈希指針使其與修改過(guò)的數(shù)據(jù)一致,他也無(wú)法修改頭部數(shù)據(jù),從而我們就可以檢測(cè)到篡改行為。這樣做的結(jié)果是,如果對(duì)手想要篡改區(qū)塊鏈中任意地方的數(shù)據(jù),而且保證整個(gè)內(nèi)容一致,他需要篡改所有的哈希指針直至最開(kāi)始的地方,最終將碰到障礙,因?yàn)樗荒艽鄹逆湵眍^部的指針,因此,我們可以搭建一個(gè)包含很多區(qū)塊的區(qū)塊鏈網(wǎng)絡(luò),鏈表頭部的哈希指針被稱(chēng)作創(chuàng)世區(qū)塊(genesis block)。

    另一個(gè)我們可以用哈希指針建立的數(shù)據(jù)結(jié)構(gòu)是二叉樹(shù)。使用哈希指針的二叉樹(shù)也叫作梅克爾樹(shù)(Merkle trees),以其發(fā)明者拉爾夫·梅克爾的名字命名。在梅克爾樹(shù)的數(shù)據(jù)結(jié)構(gòu)中,所有的數(shù)據(jù)區(qū)塊都被兩兩分組,指向這些數(shù)據(jù)區(qū)塊的指針被存儲(chǔ)在上一層的父節(jié)點(diǎn)(parent node)中,而這些父節(jié)點(diǎn)再次被兩兩分組,并且指向父節(jié)點(diǎn)的指針被存儲(chǔ)在上一層的父節(jié)點(diǎn)中,一直持續(xù)這個(gè)過(guò)程,直到最后我們到達(dá)樹(shù)的根節(jié)點(diǎn)。與我們之前建立的區(qū)塊鏈不同,梅克爾樹(shù)的另一個(gè)特點(diǎn)是它可以實(shí)現(xiàn)簡(jiǎn)潔的隸屬證明,假設(shè)某人想要證明某個(gè)數(shù)據(jù)區(qū)塊隸屬于梅克爾樹(shù),我們只要記住樹(shù)根節(jié)點(diǎn),然后他展示給我們數(shù)據(jù)塊信息,以及從該數(shù)據(jù)區(qū)塊通向樹(shù)根節(jié)點(diǎn)的那些區(qū)塊,我們可以忽略樹(shù)的其余部分,這樣做是因?yàn)檫@些區(qū)塊已經(jīng)足夠讓我們驗(yàn)證通往樹(shù)根節(jié)點(diǎn)過(guò)程中所有的哈希值。

    數(shù)字簽名(digital signatures)是密碼學(xué)中的第二個(gè)重要部分,該理論和哈希函數(shù)一起,為加密貨幣奠定了基礎(chǔ)。我們對(duì)數(shù)字簽名有兩個(gè)特性要求,使其與我們對(duì)手寫(xiě)簽名的預(yù)期一致,第一,只有你可以制作你自己的簽名,但任何看到它的人都可以驗(yàn)證其有效性;第二,我們希望簽名只與某一特定文件發(fā)生聯(lián)系,因此該簽名不能用于表明你支持另一份不同的文件。對(duì)于手寫(xiě)簽名來(lái)說(shuō),第二條就如同確保別人不能將你的簽名從一份文件上剪下來(lái),貼到另一份文件的末尾那樣。數(shù)字簽名方案由三個(gè)算法構(gòu)成:● (sk, pk) :=generateKeys(keysize), generateKeys方法把keysize作為輸入,來(lái)產(chǎn)生一對(duì)公鑰和私鑰。私鑰sk被安全保存,并用來(lái)簽名一段消息;公鑰pk是人人都可以看到的,拿到它就可以用來(lái)驗(yàn)證你的簽名。● sig:=sign(sk, message) ,簽名過(guò)程是把一段消息和私鑰作為一個(gè)輸入,輸出信息就是簽名。● isValid:=verify(pk, message, sig) ,驗(yàn)證過(guò)程是通過(guò)把一段消息和簽名信息與公鑰作為輸入,如果返回的結(jié)果是真,證明簽名屬實(shí);如果返回的結(jié)果為假,證明簽名消息為假。

    要將算法概念轉(zhuǎn)化為現(xiàn)實(shí)中可執(zhí)行的數(shù)字簽名機(jī)制,我們還需要考慮許多實(shí)際問(wèn)題,例如,很多簽名算法是隨機(jī)的(特別是比特幣使用的算法),因此我們需要隨機(jī)性的良好來(lái)源,不良隨機(jī)性會(huì)使你認(rèn)為安全的算法變得不安全。另一個(gè)實(shí)際問(wèn)題是關(guān)于信息大小,在實(shí)踐中,你能夠簽署的信息大小是有限制的,有一個(gè)簡(jiǎn)單的方法可以解決這個(gè)限制:對(duì)信息的哈希值進(jìn)行簽署,而非對(duì)信息本身進(jìn)行簽署。如果使用輸出值為256位的加密哈希函數(shù),那么我們可以有效地簽署任何長(zhǎng)度的信息。我們可以將信息的哈希值作為信息摘要,哈希函數(shù)具有碰撞阻力,因此這種方式是安全的,如果你簽署了哈希指針,那么該簽名覆蓋(或者說(shuō)保護(hù))整個(gè)結(jié)構(gòu)——這不僅僅是哈希指針本身,還包括哈希指針指向的整個(gè)區(qū)塊鏈,比如,如果簽署了區(qū)塊鏈末尾的哈希指針,其結(jié)果就是你有效地?cái)?shù)字簽署了整條區(qū)塊鏈。

    與數(shù)字簽名并行的一個(gè)有用技巧,是從數(shù)字簽名模式中拿出一個(gè)公共驗(yàn)證密鑰,并將其與一個(gè)人的身份對(duì)等。如果你見(jiàn)到一條消息的簽名被公鑰pk正確驗(yàn)證,那么你可以認(rèn)為公鑰就是代表某一個(gè)參與者,從這個(gè)角度來(lái)說(shuō),公鑰就是身份。將公鑰視為身份的一個(gè)結(jié)果是,你可以隨時(shí)制定新的身份——可以簡(jiǎn)單通過(guò)數(shù)字簽名方案中的generateKeys程序,生成新的密鑰對(duì)sk和pk,pk是你可以使用的新的公共身份,sk是相應(yīng)的密鑰。你可以不經(jīng)過(guò)中央機(jī)構(gòu)而生成一個(gè)身份的概念可能看起來(lái)有悖常理,畢竟,如果有人剛好就生成了跟你一樣的密鑰,他不就能偷走你的比特幣嗎?我們的回答是,別人生成一個(gè)與你的256位密鑰相同的概率如此之小,在實(shí)踐中,我們不需要擔(dān)心它會(huì)發(fā)生。

    高飛幣的規(guī)則是:● 高飛可以通過(guò)簽署聲明表示他使用唯一的貨幣編號(hào)來(lái)創(chuàng)建一個(gè)新幣。● 幣的所有人可以通過(guò)簽署聲明表示“將這個(gè)幣轉(zhuǎn)給X”(其中X為公鑰),將其轉(zhuǎn)給另一個(gè)人。● 任何人都可以驗(yàn)證一只幣的有效性,跟隨哈希指針追溯到它是由高飛創(chuàng)建,并驗(yàn)證過(guò)程中所有簽名。當(dāng)然,高飛幣有一個(gè)致命安全隱患,假設(shè)愛(ài)麗絲通過(guò)把她簽署的聲明發(fā)送給鮑勃,即將她的幣轉(zhuǎn)給鮑勃,但并沒(méi)有告訴其他人,此時(shí)她也可以創(chuàng)建另一個(gè)簽名,聲明將同樣一只幣轉(zhuǎn)給了查克,對(duì)于查克來(lái)說(shuō),這看起來(lái)是一個(gè)完全有效的交易。鮑勃和查克似乎都可以有效表示自己是那個(gè)幣的所有人,這個(gè)就是所謂的雙重支付(double spending)——愛(ài)麗絲將同樣一只幣花了兩次。我們知道貨幣是不能這樣花的,事實(shí)上,雙重支付是任何加密貨幣需要解決的主要問(wèn)題之一,高飛幣沒(méi)有解決這一問(wèn)題,因此不安全。高飛幣很簡(jiǎn)單,其貨幣轉(zhuǎn)移機(jī)制其實(shí)與比特幣非常相似,但是因?yàn)樗⒉话踩虼瞬⒉贿m合作為加密貨幣。

    為解決雙重支付問(wèn)題,我們?cè)O(shè)計(jì)另外一個(gè)加密貨幣——財(cái)奴幣(ScroogeCoin),財(cái)奴幣是以高飛幣為基礎(chǔ)創(chuàng)建的,但在數(shù)據(jù)結(jié)構(gòu)方面更復(fù)雜。一個(gè)叫財(cái)奴的指定實(shí)體將負(fù)責(zé)公布包含所有發(fā)生過(guò)的交易歷史記錄的僅增賬目(append-only ledger),賬目的僅增特性保證了寫(xiě)入這個(gè)賬目的任何數(shù)據(jù)都會(huì)永久保留下來(lái),為執(zhí)行這個(gè)僅增功能,財(cái)奴建立一個(gè)區(qū)塊鏈,并對(duì)區(qū)塊鏈進(jìn)行數(shù)字簽名,因此就形成了一系列數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊都包含交易ID、交易內(nèi)容,以及上一個(gè)區(qū)塊的哈希指針,財(cái)奴數(shù)字簽名是針對(duì)最后一個(gè)哈希指針(它約束整個(gè)結(jié)構(gòu)中所有的數(shù)據(jù)),并將簽名與區(qū)塊鏈一起發(fā)布。現(xiàn)在,我們來(lái)看一下財(cái)奴幣的核心問(wèn)題,財(cái)奴幣的工作原理是人們可以看見(jiàn)哪些幣是有效的。它可以防止雙重支付,因?yàn)槊總€(gè)人都可以查看區(qū)塊鏈,看到所有交易是否有效,每一只幣確實(shí)是只被消耗了一次,但其問(wèn)題是財(cái)奴的權(quán)利太大了。財(cái)奴雖然不能創(chuàng)建虛假交易,因?yàn)樗麩o(wú)法偽造其他人的簽名,但是他可以停止支持其他用戶的交易,不為他們提供服務(wù)并讓他們的貨幣無(wú)處可花。為了改善財(cái)奴幣,并建立一個(gè)可行系統(tǒng),需要解決的主要技術(shù)問(wèn)題是:我們是否能讓系統(tǒng)“去財(cái)奴化”?也就是說(shuō),我們能否放棄中心化的財(cái)奴人物?我們能夠有一個(gè)在很多方面像財(cái)奴幣一樣運(yùn)作的加密貨幣,但沒(méi)有中央信任機(jī)構(gòu)嗎?為回答這些問(wèn)題,我們需要解決所有用戶如何在交易歷史記錄發(fā)生后,一致同意采用一個(gè)公開(kāi)區(qū)塊鏈,他們必須一致同意哪些交易有效、哪些交易是實(shí)際發(fā)生了,最后,新幣的鑄造也需要通過(guò)去中心化的方式進(jìn)行掌控。如果可以解決所有這些問(wèn)題,那么我們就創(chuàng)建了一個(gè)如同財(cái)奴幣那樣的貨幣,但是沒(méi)有中心化的機(jī)構(gòu)管理,這樣的一個(gè)系統(tǒng)就與比特幣非常相像了。

    相關(guān)推薦
    久久精品国产久精国产果冻传媒| 欧洲成人午夜精品无码区久久| 久久99热国产这有精品| 亚洲一本综合久久| 久久久久国产视频电影| 久久亚洲国产精品成人AV秋霞| 亚洲狠狠婷婷综合久久久久| 国产成人综合久久综合| 少妇久久久久久被弄到高潮| 久久精品天天中文字幕人妻 | 久久人人超碰精品CAOPOREN| 亚洲精品高清一二区久久| 亚洲综合伊人久久综合| 99久久精品国产综合一区| 欧美亚洲国产精品久久久久| 国产精品99久久精品| 久久经典免费视频| 久久精品国产一区二区| 97久久精品无码一区二区| 亚洲精品国产自在久久| 99久久精品免费观看国产| 97久久久久人妻精品专区| 2021久久精品免费观看| 久久成人18免费网站| 久久精品国产99国产精品澳门| 怡红院日本一道日本久久 | 久久久无码一区二区三区| 青青草原综合久久大伊人导航| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久久久人妻精品一区三寸蜜桃| 色8久久人人97超碰香蕉987| 久久毛片一区二区| 青青热久久国产久精品| 久久99精品国产麻豆婷婷| 日韩精品久久久久久免费| 久久久精品国产免大香伊| 久久精品18| 91精品国产综合久久久久久| 亚洲精品WWW久久久久久| 国产亚洲精久久久久久无码AV| 亚洲国产精品18久久久久久|