MOAC墨客技術特點詳解
墨客技術上是遠遠優於以太坊的,所以有「優化的以太坊」的稱號,有的MOAC社區愛好者甚至稱呼墨客為「井太坊」。墨客相對於以太坊每秒7-14次交易處理,墨客可以提供100倍,在優化條件下,甚至到1000倍的處理速度。墨客技術上的亮點可以概括為:分層架構、非同步合約、分片處理、鏈內加速、跨鏈互聯、插拔驗證。
在詳解這些技術亮點之前,我們先來看看一個表格:
從上面的表格可以看出,MOAC相對於BTC,ETH,EOS的技術上的優越性!
1.分層驗證
首先是採取了分層,其他系統要麼堅持pow,要麼堅持pos,要麼混合pow+pos,都無法有效利用兩者的優點,和避免兩者的缺點。墨客採取底層物理網用pow,上層智能合約的邏輯網用pos,使得兩者的優點都能兼顧,可以稱為pop(pos over pow)。
2.分片技術
以太坊最新分片理念,主鏈基本不變,加個validator management contract合約管理sharding的介面和分配。sharding裡面什麼樣子主鏈不關心,主鏈只關心最後你header的hash對了就行。但是技術上要實現分片,根據以太坊的路線規劃要到2019年才能出來。
相對於以太坊的單一網,墨客成功突破並採取了分片sharding技術,可以將墨客分為無數邏輯子網,使得並行計算成為可能,解決了業界一大難題,大幅度提高處理速度,為此可達到Visa級別的交易規模。
專家解說(1):如果你明白互聯網的TCP/IP架構,就明白墨客的分層。其實就是上層是SCS(Smart Contract Server)智能合約伺服器,下面是v-node共識驗證節點。在邏輯上面,SCS和平行層的同伴溝通,但是在物理層,是通過數據打包,通過底層的驗證機相連的。就好像網路上的信息,你按照HTTP打包,再按照TCP打包,再按照IP打包,最後用乙太網ethernet打包。但是要讓邏輯子鏈,可以在物理母鏈上實現,尤其是多邏輯子鏈,對應單一物理母鏈的情況下,你必須可以對單一母鏈進行分割。不然的話,就是一個單一邏輯子鏈對應一個單一物理母鏈了,呵呵。而這個分割,就叫做分片Sharding。
專家解說(2):側鏈side chain和子鏈child chain的區別是什麼呢?先說一下啥叫著側鏈,比如比特幣的閃電網路和以太坊的雷電網路,就是側鏈。啥意思呢?就是主鏈在干自己的事情,側鏈發生什麼,從實際時間上,和主鏈無關。大概只是在特定時間,才和主鏈同步一下。但是問題就是,如果你有N多個側鏈,而且當交易發生在一個側鏈到另一個側鏈,那麼同步問題可能會比較亂,呵呵。子鏈的意思,就是採取分層結構之後,子鏈是一種邏輯上的區分,而並非是一種物理上的區分,所以不同子鏈裡面的狀態,可以在同一個物理鏈裡面保持同步。但是你必須支持分層架構,而且你也必須支持邏輯分片,這樣才可以化單一區塊鏈而成為多種區塊鏈。而且這些邏輯子鏈可以要求不同的共識演算法。目前以太坊只有平層,沒有分層,當然更沒有分片。
專家解說(3):分片和速度。當你無法進行分片的話,你整個網路的處理速度,其實依賴於單一節點的處理速度。而越來越多的節點加入進來,並不是節點多力量大,而是節點多,導致網路擁堵,速度其實更慢了。那麼採取了分片,只有你單一片的節點數目不是太低,比如你50個節點,和500個節點,面對的拜占庭容錯率,可能並沒有太多的區別了。在這個時候,你參與的節點越多,表明你可以分出的片越多,而片越多,你整個網路同時處理智能合約的數量就越多,那麼你的處理能力越強,速度越快了。目前來看,能夠做到分片的區塊鏈平台並不多,我們算是領先的一家吧。
3.非同步調用
以太坊的同步智能合約調用,智能合約的返回和區塊共識綁定在同一個區塊,導致智能合約處理的總額受到區塊時間限制。墨客採取了非同步智能合約調用,使得調用和返回可以跨區塊而不受到區塊時間限制,大大增加了同時處理智能合約的數量。
專家解說(4):區塊鏈技術上如何加快吞吐量和速度,確實是當務之急。墨客除了進行分層,實現POP的共識堆疊,以及進行了分片sharding,另外一個創新,就是實現了非同步調用智能合約。一般不懂計算機科學的同學,這裡給一個科普。比如你在公司上班,干一件事情的時候,需要給家裡打個電話,問一下家裡冰箱裡面缺些啥。那麼同步調用,就是sync call,你放下手頭所有的事情,等家裡人把冰箱的狀況全部告訴你。得到明確的回復之後,你就繼續做你的其他事情了。這裡的關鍵,就是停止和等待。那麼非同步調用,就是async call,你打電話給家裡之後,就掛了電話,繼續做你公司的事情,然後家裡有了全部結果,自己打電話給你,通知回復的結果。而以太坊的智能合約,目前還是同步調用。
專家解說(5):對以太坊來說,因為是同步調用智能合約,整個合約的完成,必須在一個區塊裡面進行。這樣當共識節點給交易打包的時候,必須等待智能合約跑出結果。那麼2016年9月份,就被人惡意攻擊,利用了一個較低的gas去讀取狀態信息,每一個區塊讀5萬次,結果就導致了為了等待結果,而長時間無法完成共識的情況。當時的處理方法,是強行限制gas的天花板是100萬。雖然後來修復了這個漏洞,但是為了保證共識可以按時完成,就只能限制每秒可以處理的智能合約數量。這個頂,應該在450萬gas這個水平。而墨客用了非同步調用智能合約,就是說,智能合約的啟動到完成,可以跨區塊,不是限死在一個區塊完成,這樣也導致了墨客的吞吐量要快很多。
專家解說(6):墨客的非同步調用智能合約的功能,因為可以將智能合約的執行,跨過幾個不同的區塊,就突然產生了可以進行不同區塊鏈的跨鏈功能。因為不同的區塊鏈,具有不同的產生區塊的時間,那麼如果我在墨客上設定一個購買以太坊ERC20代幣的合同,那麼就可以在5秒鐘裡面,跨出墨客的當時的區塊,然後合同通過鏈外通訊,等待以太坊的25秒的區塊完成對應買賣,再在第N+2個墨客區塊,完成這邊的交易。這種原子交易,不同於目前各種跨鏈的第三方角色,都是通過建立一個中間託管賬戶,來完成。而且在合約中,你還可以定義看幾個確認區塊,再完成交易。而缺乏非同步調用合同功能,是無法進行跨鏈的原子交換的。
4.跨鏈
通過非同步智能合約對區塊的跨越,使得墨客可以對區塊產生時間不同的區塊鏈進行原子跨鏈操作,使得墨客成為具有跨鏈能力的區塊鏈底層系統。非同步調用智能合約從啟動到完成,可以跨區塊,不再限死在一個區塊完成,這樣大大加快了MOAC的吞吐量,同時具有進行不同區塊鏈的跨鏈功能。
不同的區塊鏈,具有不同的產生區塊的時間,例如,在MOAC上設定一個購買以太坊ERC20代幣的合同,那麼就可以在5秒鐘裡面,跨出MOAC當時的區塊,然後合同通過鏈外通訊,等待以太坊25秒的區塊完成對應買賣,再在第N+2個MOAC區塊,完成這邊的交易。這種原子交易,完全不同於目前各種跨鏈的第三方角色通過建立一個中間託管賬戶來完成的交易。
在合約中,還可以定義看幾個確認區塊,再完成交易。而其他區塊鏈系統缺乏非同步調用合同功能,是無法進行跨鏈原子交換的,這是MOAC的優勢。
專家解說(7):如果你看過Gavin Wood在Polkadot的白皮書裡面,提到目前的各類區塊鏈無法擴展,主要是不能做到將canonicality和validity做到有效隔離。意思就是在區塊鏈的state transition mechanism和consensus mechanism捆綁太緊。這個不論是POW機制的比特幣和以太坊,還是POS機制的NXT和比特股,都有這個問題。所以墨客在這方面,首先實現分層,將這兩個重要功能脫鉤,算是和Wood大牛的思維比較一致。去中心化交易所,直接在錢包里就能交易,這已經是未來的趨勢了。要解決去中心化跨鏈是必然不可以少的基礎。
5.可拔插驗證自建區塊鏈產品
新的想法意味著要建立一個新的區塊鏈。 需要設置伺服器,開發團隊,建立社區,吸引新用戶等,需要大量開銷來實施新的區塊鏈想法。而墨客鏈上線以後,這些想法便可以輕鬆在墨客鏈上進行實驗驗證,無需巨大的額外開銷。
6.永不分叉
之前的區塊鏈產品一旦區塊鏈被部署和進入生產模式,很難在功能上進行添加/修改/刪除。 這樣的修改要麼是軟分叉或者硬分叉。處理分叉需要巨大的努力和承受由此帶來的經濟後果。而墨客鏈的架構模式使得區塊鏈的不分叉改進成為可能。
推薦閱讀: