時間:2023-06-18|瀏覽:240
我們目前采用的是Zohar和Sompolinsky最先提出的區(qū)塊DAG拓撲結(jié)構(gòu)。但是,最近我們注意到,每次介紹項目時,聽眾似乎總會對DAG是什么或者其與區(qū)塊鏈技術(shù)的關(guān)系產(chǎn)生很多誤解。
本文我們會針對一些常見問題進行解答,希望能夠幫助大家消除一些誤解。
誤解1:DAG有別于區(qū)塊鏈
簡單來說,DAG和區(qū)塊鏈是完全不同的概念,因此根本不能放在一起比較。我們來看看他們到底是什么。
DAG(有向無環(huán)圖)是應用于數(shù)據(jù)結(jié)構(gòu)的數(shù)學模型。它由與單向邊相連的頂點組成,且沒有一條路線是從某個頂點開始沿著這些邊走最后再回到同一頂點的——也就是說,它是非循環(huán)的。
本質(zhì)上,DAG是一種低級數(shù)據(jù)結(jié)構(gòu),可用于對多種類型的數(shù)據(jù)進行建模(尤其是具有依賴關(guān)系的網(wǎng)絡),例如對電子表格單元格的依賴,數(shù)字電路的組合邏輯,亦或是諸如貝葉斯網(wǎng)絡的因果系統(tǒng)。DAG數(shù)據(jù)結(jié)構(gòu)具有許多有趣的數(shù)學屬性,有助于簡化與這些類型數(shù)據(jù)相關(guān)的問題。
而關(guān)于區(qū)塊鏈的更多信息,可以閱讀我之前寫的文章“什么是區(qū)塊鏈?”。不過,區(qū)塊鏈本質(zhì)上是一個網(wǎng)絡化系統(tǒng),它能夠讓實體提交語句,就現(xiàn)實達成一致,并復制記錄。雖然這些功能本身各自并沒有獨特之處,但結(jié)合起來就能創(chuàng)造出一些有趣的屬性,而這些屬性在區(qū)塊鏈技術(shù)中是獨一無二的,例如不可變性以及有保證的排序等。
這樣一來,我們立馬就能看出這兩者是不匹配的。DAG是數(shù)據(jù)結(jié)構(gòu),而區(qū)塊鏈是系統(tǒng)。或者說,DAG是一個抽象模型,而區(qū)塊鏈是一個應用程序。將這兩者放在一起比較,就好比將三角形與摩天大樓進行比較。在設(shè)計摩天大樓時或許會在幾何計算中用到三角形的概念,但兩者根本不同,所以無法進行比較。
那么,這個誤解從何而來?這是因為在區(qū)塊鏈的設(shè)計中,基于DAG的拓撲結(jié)構(gòu)與基于單鏈的拓撲是完全不同的。DAG只是組建區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)的一種替代方式。
Taraxa也采用了區(qū)塊DAG的拓撲結(jié)構(gòu),下圖是我們白皮書中的一張圖解。
區(qū)塊鏈系統(tǒng)中的單鏈結(jié)構(gòu)區(qū)塊vs區(qū)塊DAG拓撲
但是,所有采用DAG拓撲的區(qū)塊鏈都一樣嗎?這就引出了關(guān)于DAG的第二大誤解。
誤解2:所有基于DAG的區(qū)塊鏈系統(tǒng)都是一樣的
我們經(jīng)常會遇到一些社區(qū)成員,他們對同樣采用DAG拓撲的另一個區(qū)塊鏈系統(tǒng)也有所了解,于是他們就會將另一個系統(tǒng)的所有特征疊加到Taraxa上,包括一些技術(shù)缺陷或挑戰(zhàn)。
在這里,我們簡要介紹下其他幾個采用DAG拓撲結(jié)構(gòu)的早期區(qū)塊鏈項目,以及它們與Taraxa設(shè)計上的不同。
IOTA可能是第一個向市場展現(xiàn)了區(qū)塊鏈技術(shù)如何讓物聯(lián)網(wǎng)設(shè)備受益的項目,同時他們還提出了一種截然不同的共識算法來利用DAG。IOTA通過隨機進入DAG來驗證交易,這個方法最終使得網(wǎng)絡要依賴于中央?yún)f(xié)調(diào)者來維持順序和正確性,否則該網(wǎng)絡將無法正確處理雙花等問題。而Taraxa的排序機制定義很明確,且不依賴于中心化協(xié)調(diào)。
Byteball(字節(jié)雪球)采用的是沒有區(qū)塊的DAG拓撲結(jié)構(gòu)。該項目與眾不同之處在于其共識功能,也就是在DAG內(nèi)尋找主鏈從而確定排序,并通過定期快照(ball)來限制排序的計算復雜性。但是,它需要依靠12位“受信任”的見證人,所以被認為是高度中心化的。同樣的,Taraxa的排序機制已經(jīng)很好的實現(xiàn)了去中心化。
Nano和IOTA或Byteball不太一樣。在這個項目里,每個帳戶都有其自己的鏈(區(qū)塊格),每個鏈的排序由鏈的所有者確定,且每個交易都需要分成收款-付款兩筆款項并由雙方分別記錄。從某種意義上說,Nano是一個您可以在不同鏈上的交易之間繪制有方向的邊的“DAG”,但它在結(jié)構(gòu)上與IOTA或Byteball有很大不同。不過,Nano的塊格結(jié)構(gòu)設(shè)計高度優(yōu)化了代幣交易,而非智能合約。相比之下,Taraxa則具備通用的并發(fā)智能合約系統(tǒng),可在交易處理期間最大化垂直并發(fā)。
那么為什么要采用DAG,或者說為什么要完全采用區(qū)塊DAG呢?
誤解3:DAG區(qū)塊鏈是物聯(lián)網(wǎng)的最佳拍檔
Taraxa的主要目標是讓物聯(lián)網(wǎng)生態(tài)系統(tǒng)變得更可信、更自主、更有價值。但是,這與其區(qū)塊DAG拓撲關(guān)系并不大。
之所以選擇塊DAG拓撲,是因為它能夠在不犧牲安全性的情況下提高吞吐量(更多信息請參見之前寫的文章“單鏈的艱難權(quán)衡”和“區(qū)塊DAG與PoS”)。區(qū)塊DAG的結(jié)構(gòu)具有包容性,它能夠接受所有分支,所以提高了總吞吐量。而安全性難題則是通過查看每個區(qū)塊用來指向多個父塊的指針(pointer)來解決——指針稱為GHOST規(guī)則。通過此規(guī)則,我們可以計算出區(qū)塊DAG中的一條錨定鏈,然后根據(jù)錨定鏈上每個錨定塊推出的時間來建立一個確定