總結出來的一個結論是,目前對于
區塊鏈行業,由于低吞吐量帶來的高手續費,給開發DApp帶來很多功能限制。
可擴展性無論是學術界還是產業界都致力于解決區塊鏈低吞吐量的問題。其中一個方法是增加區塊大小。如果把區塊大小增加,吞吐量會有一個提升。但是由于帶寬限制,這不是個提升吞吐量的高效(100倍)解決方案。
方案二,通過鏈下交易。鏈下處理所有交易,將結算部分上鏈。因為可以使用中心化的服務器處理交易,那么可以輕松實現每秒上千/萬筆交易。通過這樣的方式可以有效提高吞吐量。但是也有劣勢,因為不是所有交易都在鏈上完成,那么中心化的服務器本身會不會進行一些作弊?透明度是個問題。
方案三,我們不再采用鏈式的數據結構,而是采用圖結構,不同的節點可以生產不同的區塊進行廣播。當一個節點想打包區塊的時候,可以基于過去的區塊,建立一個有向無環圖,再打包分發給其它節點。好處是可以包含多種交易,同時提高吞吐量。在圖結構里面可能很多交易是有沖突的,對于最終要執行的智能合約是有分歧的,這就是圖結構所遇到的難題。
方案四,代理人機制。參與共識協議的節點越少,跑起來越快,吞吐量越高。只有少量的超級節點參與共識協議可以達到一個高吞吐量,但是容易被大家垢病的是少量的代理節點能否代表整個社區。如果節點越少,這些節點不太喜歡某一些交易或者某一些應用,其實可以拒絕這個應用提交的交易。這就回到了中心化的弊端。
還有,就是分片以及多鏈。這個解決方案代表了一個趨勢,在不損失很多去中心化特性的同時,可以達到比較好的吞吐量。大家看到最新的
以太坊2.0和新的分片項目,還有一些跨鏈項目,大家會發現這中間的區別已經變得很模糊,很多時候可以把一個分片看成一個同構的鏈。在處理多鏈跨鏈交易的原子性協議和分片協議里面提到的原子性協議區別不大,有的采用同樣的技術。只不過多鏈技術以及分片技術,有的時候會有一個中繼鏈或者中繼分片來協調不同的分片或者不同的鏈。但是歸根到底,技術本身其實有很多相似的地方,這里統一起來進行講解。
分片就是將交易分而治之,從而提高吞吐量。舉個例子,有一千道問題,同時有一百個人解決問題。現在可以分組,一百個人分成十個小組,將一千道問題分給十個小組,每個小組十個人處理一百道問題,根據絕大多數人的答案形成一個共識,那么我們其實可以保證每個小組正確的解決一百道問題,這樣整個解決時間就從一千減小到一百。未來如果有更多的聽眾,例如一千個,我們可以把一千人分成一百個小組,一百小組解決一千個問題,一個小組只解決十個問題,最終只用解決十個問題的時間把一千個問題都解決了。然而可能會出現一些攻擊情形,假如如果有十個攻擊者,他們合謀分到第一個小組,達成共識的時候不遵循一些原則,例如把一分錢掰成一萬塊人民幣來進行雙花攻擊。如果攻擊者能控制一個分片,產生的攻擊在一些協議里面其它分片是不能進行阻止的。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。