章泰 彭博韜 梁盛源
摘要:基于有向無(wú)環(huán)圖(DAG)的IOTA是一個(gè)為物聯(lián)網(wǎng)而生的區(qū)塊鏈項(xiàng)目,和傳統(tǒng)的比特幣區(qū)塊鏈等有著較大的不同之處。它是具有輕便性、可擴(kuò)展性的、無(wú)區(qū)塊的分布式賬本。本文首先介紹了區(qū)塊鏈的發(fā)展,并在底層結(jié)構(gòu)、共識(shí)算法等方面和傳統(tǒng)區(qū)塊鏈項(xiàng)目進(jìn)行了對(duì)比、分析。最后結(jié)合物聯(lián)網(wǎng)的節(jié)點(diǎn)數(shù)量龐大、節(jié)點(diǎn)資源受限、微交易多等特性,總結(jié)了IOTA的工作機(jī)制在物聯(lián)網(wǎng)中的優(yōu)勢(shì)。
關(guān)鍵詞:區(qū)塊鏈;物聯(lián)網(wǎng);IOTA;有向無(wú)環(huán)圖;
前言:
近些年來(lái)物聯(lián)網(wǎng)設(shè)備呈爆發(fā)式增長(zhǎng),在2018年物聯(lián)網(wǎng)設(shè)備連接總數(shù)已達(dá)70億[1],而隨著設(shè)備的增多必將產(chǎn)生大量數(shù)據(jù)和信息,不同的物聯(lián)網(wǎng)供應(yīng)商也將有可能掌握用戶更多的數(shù)據(jù),從而引發(fā)數(shù)據(jù)篡改、數(shù)據(jù)泄漏等安全問(wèn)題[2]。區(qū)塊鏈?zhǔn)且粋€(gè)自帶信任機(jī)制的,去中心化、不可篡改、可追溯、多方共同維護(hù)的分布式記錄系統(tǒng)。
1 區(qū)塊鏈的發(fā)展
從2008年中本聰首次提出區(qū)塊鏈,到2009年第一個(gè)區(qū)塊誕生,也被稱為“創(chuàng)世區(qū)塊”。2012年,瑞波幣協(xié)議系統(tǒng)發(fā)布,在去中心化基礎(chǔ)之上,創(chuàng)造了無(wú)需信任基礎(chǔ)的支付、清算系統(tǒng)。
為了推動(dòng)物聯(lián)網(wǎng)和終端設(shè)備的未來(lái)經(jīng)濟(jì),IOTA的創(chuàng)始人于2015年提出了基于有向無(wú)環(huán)圖(Directed Acyclic GraphD,DAG)的Tangle體系結(jié)構(gòu)。IOTA是為物聯(lián)網(wǎng)而生新型小額支付加密貨幣,以期構(gòu)造一個(gè)標(biāo)準(zhǔn)化的能夠承載一切的無(wú)區(qū)塊分布式賬本,并解決區(qū)塊鏈的效率問(wèn)題。目前IOTA已運(yùn)用在終端支付、全球貿(mào)易及供應(yīng)鏈、工業(yè)物聯(lián)網(wǎng)、智能穿戴和智能能源方面。
2 底層結(jié)構(gòu)
無(wú)論IOTA還是傳統(tǒng)區(qū)塊鏈,都是以分布式數(shù)據(jù)庫(kù)為基礎(chǔ)。物聯(lián)網(wǎng)中節(jié)點(diǎn)資源有限,賬本結(jié)構(gòu)在很大程度上決定了終端能否參與進(jìn)來(lái)。本節(jié)介紹并對(duì)比了傳統(tǒng)區(qū)塊鏈和Tangle中的底層數(shù)據(jù)結(jié)構(gòu)。
2.1區(qū)塊鏈中的區(qū)塊
在比特幣中,所有節(jié)點(diǎn)共同維護(hù)著一份相同的鏈?zhǔn)浇Y(jié)構(gòu)副本。這條鏈上的每個(gè)組成單元就是一個(gè)區(qū)塊,每個(gè)區(qū)塊都有屬于自己哈希值,并且通過(guò)哈希指針指向前一個(gè)區(qū)塊,創(chuàng)世區(qū)塊的前一個(gè)哈希指針為全零,區(qū)塊依照時(shí)間順序連接在這條鏈上,形成區(qū)塊鏈。
每個(gè)區(qū)塊由區(qū)塊頭和區(qū)塊體組成,區(qū)塊體記錄了該區(qū)塊中每份交易的數(shù)據(jù),區(qū)塊頭存放了該區(qū)塊的信息,包括Merkle根[3]、前塊哈希、本塊哈希、時(shí)間戳等數(shù)據(jù)。Merkle根由區(qū)塊體中的所有交易的哈希所得,并用來(lái)進(jìn)行支付驗(yàn)證[4]。前塊哈希和本塊哈希是鏈接區(qū)塊的關(guān)鍵。
2.2Tangle中的交易
IOTA從嚴(yán)格意義上來(lái)說(shuō)并不能被稱之為“區(qū)塊鏈”,因?yàn)樗](méi)有采用傳統(tǒng)區(qū)塊鏈中的鏈?zhǔn)浇Y(jié)構(gòu),它既沒(méi)有區(qū)塊也沒(méi)有鏈。其賬本結(jié)構(gòu)是基于DAG設(shè)計(jì)而成的網(wǎng)狀結(jié)構(gòu),這種結(jié)構(gòu)被稱之為Tangle。
在區(qū)塊鏈中,賬本結(jié)構(gòu)的打包單元是區(qū)塊,各個(gè)區(qū)塊依靠哈希連接成鏈。而在Tangle中,打包傳播的單位就是交易。每當(dāng)一筆新的交易產(chǎn)生,它必須驗(yàn)證在它之前的兩筆交易,這些驗(yàn)證關(guān)系就將各個(gè)交易連接起來(lái),就構(gòu)成DAG中了的邊[5]。區(qū)塊鏈與Tangle的底層結(jié)構(gòu)對(duì)比如表1所示。
3共識(shí)機(jī)制
在區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點(diǎn)之間互不了解、互不信任。分布式記賬的本質(zhì)是并行異步操作,而物聯(lián)網(wǎng)中節(jié)點(diǎn)數(shù)量龐大,面臨的最大的問(wèn)題之一就是如何使所有節(jié)點(diǎn)都信任任意節(jié)點(diǎn)打包出的賬本,并使得所有節(jié)點(diǎn)對(duì)外呈現(xiàn)一致的信息。本節(jié)介紹了傳統(tǒng)區(qū)塊鏈的工作量證明(Proof of Works,PoW)機(jī)制和Tangle的交易驗(yàn)證機(jī)制。
3.1區(qū)塊鏈中的共識(shí)機(jī)制
區(qū)塊鏈雖是去中心的分布式系統(tǒng),但使用了串行記錄,即所有區(qū)塊都只能按照出塊時(shí)間依次同步寫入最長(zhǎng)主鏈。
網(wǎng)絡(luò)中的礦工,經(jīng)過(guò)約10分鐘解決SHA256運(yùn)算復(fù)雜但容易驗(yàn)證的計(jì)算難題[4],取得打包區(qū)塊的權(quán)力和獎(jiǎng)勵(lì),并將該塊進(jìn)行全網(wǎng)廣播。其他節(jié)點(diǎn)收到該新區(qū)塊后,首先驗(yàn)證區(qū)塊體中的交易和區(qū)塊頭中的SHA256計(jì)算,如果正確才會(huì)將該區(qū)塊加入到本地區(qū)塊鏈。
由于賬本作弊無(wú)法通過(guò)驗(yàn)證,而若要篡改某一區(qū)塊,則必須重新計(jì)算該區(qū)塊及其后每個(gè)區(qū)塊的SHA256難題,并且其計(jì)算速度必須超過(guò)主鏈,完成這個(gè)過(guò)程至少需要全網(wǎng)51%算力[6]。PoW將獎(jiǎng)勵(lì)機(jī)制和共識(shí)機(jī)制相融合,使得作弊收益遠(yuǎn)小于誠(chéng)實(shí)記賬的收益,增強(qiáng)了挖礦節(jié)點(diǎn)的誠(chéng)信度。這也就保證了賬本數(shù)據(jù)的可靠性。
3.2Tangle中的共識(shí)機(jī)制
由交易單元組成的DAG,采用了并行記賬,這更符合物聯(lián)網(wǎng)設(shè)備的多微交易特性。由于它的共識(shí)機(jī)制,并行記賬也保持了賬本一致性。
Tangle中的交易存在三種狀態(tài):已成熟的可信交易、已確認(rèn)但未成熟不可信的和還未被確認(rèn)的尖端交易。如果要向Tangle中加入一筆新的交易,就必須執(zhí)行Markov chain Monte Carlo(MCMC)算法選擇和驗(yàn)證兩筆尖端交易,同時(shí)也間接驗(yàn)證了所選尖端交易的父輩交易。這些驗(yàn)證關(guān)系就組成了DAG的邊。交易是否成熟可信,取決于被確認(rèn)次數(shù)與執(zhí)行MCMC算法次數(shù)之比。當(dāng)交易可信度達(dá)到閾值時(shí),所有節(jié)點(diǎn)都可以信任這筆交易。并且用戶在離線狀態(tài)下,也能夠繼續(xù)產(chǎn)生交易,而雙花問(wèn)題的解決不在本文論述范圍內(nèi),IOTA白皮書給出了詳細(xì)的解答[5]。
Tangle中不存在挖礦和礦工,無(wú)需礦工來(lái)傳遞新信任,也不需要支付交易手續(xù)費(fèi),共識(shí)和交易的生成是相結(jié)合的。這能夠很好的與物聯(lián)網(wǎng)中微交易多的特性相匹配。
PoW所保證的一致性和可靠性,其本質(zhì)是消耗電力犧牲性能,降低吞吐量。這與物聯(lián)網(wǎng)的低功耗相悖,10min的出塊速度也違背了物聯(lián)網(wǎng)的及時(shí)交互性。比特幣區(qū)塊鏈和Tangle的共識(shí)機(jī)制對(duì)比如表2所示。
4 結(jié)束語(yǔ)
本文通過(guò)對(duì)比發(fā)現(xiàn),傳統(tǒng)區(qū)塊鏈的效率、確定性、中心化和能耗問(wèn)題在IOTA中都得到了良好的改善。在物聯(lián)網(wǎng)的節(jié)點(diǎn)數(shù)量龐大、節(jié)點(diǎn)資源受限、微交易多等諸多特性下,IOTA的并行記錄、高效出塊、離線記賬和無(wú)交易手續(xù)費(fèi)等特點(diǎn),比傳統(tǒng)區(qū)塊鏈更適合于物聯(lián)網(wǎng)中點(diǎn)對(duì)點(diǎn)的機(jī)器交易。
參考文獻(xiàn):
[1]Knud Lasse Lueth.State of the IoT 2018: Number of IoT devices now at 7B–Market accelerating [EB/OL].(2018-8-8)[2019-3-3].https://iot-analytics.com/state-of-the-iot-update
-q1-q2-2018-number-of-iot-devices-now-7b/
[2]張冬楊.2019年物聯(lián)網(wǎng)發(fā)展趨勢(shì)[J].物聯(lián)網(wǎng)技術(shù),2019,9(02):5-6.
[3]R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980.
[4]Satoshi Nakamoto.Bitcoin: A Peer-to-Peer Electronic Cash System [EB/OL].(2008-11-1)[2019-3-3]. https://bitcoin.org/bitcoin.pdf
[5]Serguei Popov.The Tangle [EB/OL].(2018-4-30)[2019-3-3].https://assets.ctfassets.net/r1dr6vzfxhev/2t4uxvsIqk0EUau6g2sw0g/45eae33637ca92f85dd9f4a3a218e1ec/iota1_4_3.pdf
[6]邵奇峰,金澈清,張召,等.區(qū)塊鏈技術(shù):架構(gòu)及進(jìn)展[J].計(jì)算機(jī)學(xué)報(bào),2018,41(05):969-988.