官术网_书友最值得收藏!

3.3 并行處理的探索

為解決數(shù)據(jù)處理能力低(交易吞吐量小)的問題,一個重要的思路是讓多筆交易同時并行處理。側(cè)鏈技術(shù)通過對主鏈上的款項進行鎖定、解鎖的操作,可把不同的區(qū)塊鏈進行連接(圖3-2),擴充了交易處理的空間。而分片的思路則是把用戶劃分為不同的片區(qū),每個片區(qū)里的交易可以獨立驗證、并行進行,而跨片區(qū)之間的交易則需進行額外處理(圖3-3)。在側(cè)鏈、分片技術(shù)中仍存在主鏈,兩者均是通過限制交易的靈活性(如款項被凍結(jié)、交易的對象受限等),在保障安全的前提下,滿足賬本的一致性。

圖3-2 側(cè)鏈示意圖

圖3-3 分片技術(shù)示意圖

而另一方面,DAGDirected Acyclic Graph有向無環(huán)圖)則是對另一種數(shù)據(jù)結(jié)構(gòu)形式的探索。在一般的區(qū)塊鏈項目中,所有節(jié)點保存的信息都是相同的;而采用DAG技術(shù)的項目,則允許各個節(jié)點保存不同的信息。在DAG中,區(qū)塊可以隨時產(chǎn)生,而一個區(qū)塊與多個父區(qū)塊進行連接(圖3-4)。這樣一來,所有人可以隨時記賬,交易信息的記錄速度大為提高。

圖3-4 DAG示意圖

然而由于多個區(qū)塊同時產(chǎn)生,且均有效,DAG無法以“唯一最長鏈”來保證一致性。在這方面,有的項目以“歷時性”來保證DAG上賬本的一致性。具體而言,在DAG中一個新區(qū)塊將隨機選擇兩個次新的區(qū)塊進行連接,同時對與之相連的所有區(qū)塊進行交易信息的驗證。經(jīng)歷了多次驗證的區(qū)塊,其交易內(nèi)容存在沖突的可能性很低,可被認為是已確認的交易信息。這一方案里,一致性的驗證依賴于區(qū)塊網(wǎng)絡(luò)的延伸和增長。

其他項目則以“全連接”來保證賬本一致,即每個新的區(qū)塊都與之前所有區(qū)塊相連,并驗證此前的所有交易信息。還有的項目以“次序”來保證一致性,由區(qū)塊遞歸投票來確認新的區(qū)塊等。

DAG帶來吞吐量的提高,然而“一致性”始終是個有待解決的復(fù)雜問題,目前問題的解決都需要付出一些代價:可能是交易信息的確切驗證時間有所延誤;也可能是節(jié)點與節(jié)點之間需要進行大量的網(wǎng)絡(luò)通信,使得實際交易速度仍有待觀察。

歸根到底,分布式賬本的“一致性”問題,是一個平衡的問題。不妨說“一致性”是一個系統(tǒng)目標,而達成這一目標需要付出相應(yīng)的資源,因此或犧牲交易速度,或限制交易的靈活性,或延后確認時間,或提高對全網(wǎng)的傳輸要求,都是不同系統(tǒng)條件下進行的適應(yīng)性選擇。相信上述提及的不同技術(shù),將在不同的應(yīng)用場景下,得到進一步的探索和驗證。

主站蜘蛛池模板: 宜州市| 巨鹿县| 枣庄市| 西昌市| 南木林县| 上虞市| 安吉县| 霞浦县| 巨野县| 镇坪县| 张家川| 延川县| 梁平县| 中江县| 资兴市| 钟祥市| 安国市| 陇西县| 徐闻县| 颍上县| 时尚| 苗栗县| 石渠县| 莲花县| 威宁| 甘肃省| 汉川市| 咸宁市| 林西县| 绍兴市| 贡觉县| 襄汾县| 马山县| 新源县| 同江市| 仙游县| 登封市| 淅川县| 富蕴县| 扶风县| 共和县|