精品国产亚洲一区二区三区|亚洲国产精彩中文乱码AV|久久久久亚洲AV综合波多野结衣|漂亮少妇各种调教玩弄在线

<blockquote id="ixlwe"><option id="ixlwe"></option></blockquote>
  • <span id="ixlwe"></span>

  • <abbr id="ixlwe"></abbr>

    樹圖區(qū)塊鏈Conflux研究院:樹圖區(qū)塊鏈Conflux上的輕節(jié)點(diǎn)設(shè)計(jì)

    近日,樹圖區(qū)塊鏈Conflux研究院在介紹延遲執(zhí)行策略時(shí)提到樹圖區(qū)塊鏈Conflux的輕節(jié)點(diǎn)設(shè)計(jì),并為我們點(diǎn)明了疑惑。

    樹圖區(qū)塊鏈Conflux提出解釋道:為了節(jié)約計(jì)算資源,在轉(zhuǎn)發(fā)區(qū)塊時(shí)可以只檢查區(qū)塊的格式和引用是否合法(包括工作量證明),而盡量少檢查區(qū)塊中所存的狀態(tài)根(State Root)。但是不強(qiáng)制檢查狀態(tài)根在安全性上會(huì)帶來一些隱患,例如有些礦工可能會(huì)偷懶,只打包交易而不管實(shí)際執(zhí)行交易,也不去驗(yàn)證收到的區(qū)塊里的狀態(tài)根的正確性——這樣就可以省下執(zhí)行交易、維護(hù)和更新狀態(tài)的開銷。

    樹圖區(qū)塊鏈Conflux研究院:樹圖區(qū)塊鏈Conflux上的輕節(jié)點(diǎn)設(shè)計(jì)

    當(dāng)然,對(duì)于自己親力親為執(zhí)行所有交易的全節(jié)點(diǎn)來說,即使有一小撮礦工偷懶實(shí)際上也不會(huì)影響他們對(duì)于當(dāng)前共識(shí)狀態(tài)的判斷。只要偷懶的礦工仍完整地執(zhí)行共識(shí)層協(xié)議,按照協(xié)議要求檢查區(qū)塊間的引用關(guān)系和選擇引用的區(qū)塊,則他們的算力依然為保證賬本中的交易順序不可篡改作出貢獻(xiàn)。

    但是對(duì)于輕節(jié)點(diǎn)來說,區(qū)塊內(nèi)的狀態(tài)根不對(duì)就是一個(gè)相當(dāng)嚴(yán)重的問題了。這是因?yàn)檩p節(jié)點(diǎn)自己沒有能力維護(hù)當(dāng)前整個(gè)共識(shí)系統(tǒng)里所有賬戶的狀態(tài)——否則也就不是“輕節(jié)點(diǎn)”了——只能選擇信任全節(jié)點(diǎn)提供的(帶有默克爾樹證明的)狀態(tài)。如果多個(gè)全節(jié)點(diǎn)提供的狀態(tài)不一致,輕節(jié)點(diǎn)就難以判斷當(dāng)前的真實(shí)狀態(tài)。

    以比特幣的輕節(jié)點(diǎn)為例,只需要保留每個(gè)區(qū)塊的區(qū)塊頭(Block Header)就可以用 SPV(Simplified Payment Verification)的方式驗(yàn)證一筆交易是否已被確認(rèn)了。

    比特幣的 SPV 驗(yàn)證步驟如下:1)通過區(qū)塊頭中保存的默克爾樹根(Merkle Root)和全節(jié)點(diǎn)提供的默克爾樹證明(Merkle Proof),可以非常容易地驗(yàn)證某個(gè)區(qū)塊里包含特定的交易;2)如果包含交易的區(qū)塊后面跟了足夠多的區(qū)塊(比如說6個(gè))就可以認(rèn)為這筆交易已經(jīng)被確認(rèn)了——實(shí)際上這里是區(qū)塊被確認(rèn),但因?yàn)楸忍貛抛铋L(zhǎng)鏈上的所有交易都會(huì)被執(zhí)行,所以區(qū)塊被確認(rèn)等價(jià)于交易被確認(rèn)。

    理論上,只要能生成足夠多的比特幣區(qū)塊,配合對(duì)于網(wǎng)絡(luò)連接的日食攻擊,就可以騙過輕節(jié)點(diǎn),讓其以為一筆不在真實(shí)的比特幣網(wǎng)絡(luò)最長(zhǎng)鏈上的交易已經(jīng)被確認(rèn)了,從而實(shí)現(xiàn)雙花攻擊?,F(xiàn)在比特幣的 UTXO 已經(jīng)達(dá)到了數(shù) GB 的規(guī)模,很多場(chǎng)合只能通過輕節(jié)點(diǎn)用 SPV 的方式確認(rèn)交易,理論上都會(huì)受到上述攻擊的威脅。

    但是事實(shí)上很少聽說因?yàn)?SPV 驗(yàn)證受到這種雙花攻擊的案例,這又是為什么呢?樹圖區(qū)塊鏈Conflux研究所同樣為我們進(jìn)行了解惑。

    主要的原因還是在于成本。以 6 個(gè)區(qū)塊確認(rèn)為例,欺騙輕節(jié)點(diǎn)實(shí)現(xiàn)雙花攻擊需要攻擊者至少挖到 7 個(gè)比特幣區(qū)塊,并且這些區(qū)塊都不在比特幣的最長(zhǎng)鏈上——否則就變成真的確認(rèn)交易了。

    如果挖的這些區(qū)塊難度和真實(shí)的比特幣網(wǎng)絡(luò)相當(dāng),則意味著攻擊者要放棄 7 個(gè)得到比特幣區(qū)塊獎(jiǎng)勵(lì)的機(jī)會(huì)。按照現(xiàn)在的比特幣每個(gè)區(qū)塊 12.5個(gè)比特幣的獎(jiǎng)勵(lì)計(jì)算,除非雙花攻擊的交易價(jià)值超過 75 個(gè)比特幣,否則這樣的攻擊就是虧本的,因此自然不會(huì)有人去實(shí)施。如果再加上實(shí)施日食攻擊的成本,則上述攻擊就更加無利可圖了。

    所以在比特幣網(wǎng)絡(luò)中,輕節(jié)點(diǎn)只需大致知道正確的挖礦難度值,就不用擔(dān)心在金額不太大的交易中因?yàn)椴捎?SPV 確認(rèn)規(guī)則而被騙。通過 SPV 方式確認(rèn)交易,至少在比特幣的區(qū)塊獎(jiǎng)勵(lì)再減半幾次之前都還是相當(dāng)安全的。當(dāng)然,如果真的是大額比特幣交易的話,就需要增加等待的區(qū)塊數(shù)或者用全節(jié)點(diǎn)驗(yàn)證了。

    以太坊的輕節(jié)點(diǎn)也可以通過類似的方式驗(yàn)證交易執(zhí)行的結(jié)果或查詢賬戶的狀態(tài),只需全節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)中對(duì)應(yīng)交易收據(jù)和賬戶狀態(tài)的默克爾樹根提供相應(yīng)的證明即可。

    與比特幣這樣“一根筋”的區(qū)塊鏈系統(tǒng)不同,樹圖區(qū)塊鏈Conflux 為了更高的系統(tǒng)性能采用了并發(fā)出塊的樹圖結(jié)構(gòu)以及更快的出塊速度(平均每秒4塊),并且減少了非必要情況下對(duì)于狀態(tài)根的驗(yàn)證。這些改動(dòng)不會(huì)影響全節(jié)點(diǎn)對(duì)于共識(shí)的判斷,卻可能為輕節(jié)點(diǎn)驗(yàn)證當(dāng)前狀態(tài)帶來困難。

    為此,樹圖區(qū)塊鏈Conflux 引入了 Blaming 機(jī)制來幫助輕節(jié)點(diǎn)快速地確認(rèn)當(dāng)前賬戶狀態(tài)和每筆交易執(zhí)行的結(jié)果。

    簡(jiǎn)單來說,每個(gè)區(qū)塊自己區(qū)塊頭的 Blaming 域指出自己認(rèn)可的上一個(gè)“正確的主鏈區(qū)塊”,這里的“正確”指區(qū)塊的狀態(tài)根和 Blaming 域都是正確的。例如如果一個(gè)區(qū)塊認(rèn)為自己的父區(qū)塊就是完全正確的,則 Blaming 域就填 0;如果認(rèn)為父區(qū)塊不正確,但是祖父區(qū)塊正確,則填 1;以此類推,如果認(rèn)為祖父區(qū)塊也不正確則相應(yīng)地要填一個(gè)大于1的整數(shù)用來指示最后一個(gè)正確區(qū)塊的位置,即落在中間的所有區(qū)塊都會(huì)被指為“狀態(tài)不正確的區(qū)塊”。

    對(duì)于狀態(tài)根的判斷比較容易理解:打包新區(qū)塊的礦工節(jié)點(diǎn)需要沿著樞軸鏈執(zhí)行每個(gè) Epoch 中的交易,在這個(gè)過程中自然會(huì)知道每個(gè)處在樞軸鏈上的“主鏈區(qū)塊”應(yīng)該有什么樣的狀態(tài)根,因此就可以判斷出實(shí)際處在樞軸鏈上的區(qū)塊是否填對(duì)了這一項(xiàng)。而且因?yàn)榘凑諛休S鏈指定的順序執(zhí)行所有交易本來就是每個(gè)全節(jié)點(diǎn)都應(yīng)該做的,所以上述檢查并不帶來額外的負(fù)擔(dān)。檢查過后,就已經(jīng)可以確定哪些主鏈區(qū)塊的狀態(tài)根是正確的了。但是由于主鏈上有很多區(qū)塊,顯然不可能每次都一一羅列出哪些區(qū)塊的狀態(tài)根是對(duì)的,哪些是錯(cuò)的。這就用到了 Blaming 機(jī)制的第二部分——關(guān)于之前區(qū)塊 Blaming 域的 Blame。

    每個(gè)區(qū)塊 A 在 Blaming 域都會(huì)指明它認(rèn)為的主鏈上最后一個(gè)正確的區(qū)塊 B,這表示區(qū)塊 A 認(rèn)可區(qū)塊 B 的所有觀點(diǎn):除了認(rèn)為區(qū)塊 B 的狀態(tài)根正確以外,還認(rèn)可區(qū)塊 B 的 Blaming 域是正確的。這就意味著區(qū)塊 A 也認(rèn)可了區(qū)塊 B 所指示的在 B 之前的最后一個(gè)正確的主鏈區(qū)塊 C,從而進(jìn)一步認(rèn)可了區(qū)塊 C 所指的 C 之前最后一個(gè)正確區(qū)塊 D,……直至創(chuàng)世塊位置。

    因?yàn)閯?chuàng)世塊總是對(duì)的,所以上述 Blaming 的過程是有限的,每個(gè)區(qū)塊在 Blaming 域填的數(shù)也不會(huì)超過該區(qū)塊的高度。

    通過這種方式,就可以把每個(gè)區(qū)塊 Blaming 域存的一個(gè)數(shù)字?jǐn)U展到一組狀態(tài)根得到當(dāng)前區(qū)塊認(rèn)可的主鏈區(qū)塊。下圖的例子即說明了如何通過 Blaming 機(jī)制擴(kuò)展對(duì)于“正確區(qū)塊”的判斷。

    由于 Blaming 域是在每個(gè)區(qū)塊的區(qū)塊頭部分的,所以輕節(jié)點(diǎn)也可以很容易看到礦工們對(duì)于其它區(qū)塊的狀態(tài)根是否正確的看法。根據(jù)這些信息,輕節(jié)點(diǎn)就可以比較容易地判斷哪些區(qū)塊的狀態(tài)根是值得信任的,哪些區(qū)塊的狀態(tài)根有問題了。然后只需選擇相信基于值得信任的狀態(tài)根做出的證明即可。

    極客網(wǎng)企業(yè)會(huì)員

    免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

    2020-01-13
    樹圖區(qū)塊鏈Conflux研究院:樹圖區(qū)塊鏈Conflux上的輕節(jié)點(diǎn)設(shè)計(jì)
    近日,樹圖區(qū)塊鏈Conflux研究院在介紹延遲執(zhí)行策略時(shí)提到樹圖區(qū)塊鏈Conflux的輕節(jié)點(diǎn)設(shè)計(jì),并為我們點(diǎn)明了疑惑。

    長(zhǎng)按掃碼 閱讀全文