「火星公開課」第231期姜家志:ETH、EOS與BCH智能合約框架比較

「火星公開課」第231期姜家志:ETH、EOS與BCH智能合約框架比較

智能合約其實是一個智能的合同,未來也很可能會出現可編程的經濟、經濟學等,改變經濟領域的一些方面以及交互方式。

「火星公開課」第231期姜家志:ETH、EOS與BCH智能合約框架比較

要點速覽:

1.POS共識算法需要解決的問題太多,太多的狀態需要在協議考慮到,這也是Casper協議被推遲的原因。2.不建議自己開發一種新的語言或者使用自己開發虛擬機技術,區塊鏈行業的研發實力並沒有那麼強大。3.公鏈進展還是屬於比較早期,我們需要解決的問題也會比較多,比如隱私性的問題,包括一些數據類型的使用。

11月27日21:00,蟲洞項目負責人姜家志做客「火星財經創始學習群」,做了主題為“ETH、EOS與BCH智能合約框架比較”的分享。

姜家志表示,ETH、EOS與BCH三者相比,在共識機制、出塊速度、Gas費用、TPS等方面均存在差異。整體來說,ETH還需在工程上有巨大進步,不然會很快被其他公鏈超越,EOS上的超級權限的確會讓人顧忌,對於上面運行一個項目主要資產時,會有讓人會擔心超級權限的控制,這是EOS上需要解決的問題。

他同時表示,公鏈進展還屬於比較早期,公鏈創新者的荊棘之處在於勇於創新的永遠是少部分人,在很長時間內都有可能不會被認可,但這也是區塊鏈給的自由,不用妥協,要自由就做好承擔代價的準備。

以下為姜家志分享內容,由火星財經(ID:hxcj24h)整理:

今天要分享的是ETH、EOS與BCH智能合約框架的比較。BCH的智能合約主要介紹下Wormhole的開發和想法。

比特幣的腳本系統其實也是一種編程語言,早期的時候也用來實現一些簡單的合約https://ivy.copernet.io/。我們也改了一個基於腳本的編程,但是這個腳本系統很不好用,而且也不適合寫我們現在理解的智能合約。

這是因為UTXO和賬戶模型的不同,一個大的問題就是比特幣裡面只有私鑰能夠控制幣,代碼無法控制幣。

「火星公開課」第231期姜家志:ETH、EOS與BCH智能合約框架比較

用合約語言的方式寫代碼,會被翻譯成BCH的腳本。上面的合約會被翻譯成下面的腳本。

「火星公開課」第231期姜家志:ETH、EOS與BCH智能合約框架比較

下面我要聊的BCH智能合約不是這個,是指我們在設計和開發的Wormhole的智能合約。

三個做對比的話,首先是共識的不同:POW 、POS、DPOS。

工作量證明(Proof Of Work,簡稱POW),簡單理解就是一份證明,用來確認你做過一定量的工作,PoW模型是目前最去中心化的區塊鏈系統,是不需要許可的系統,任何人都可以通過獲取算力加入POW中,但是它也有自己的問題,POW的幣種進化速度會很慢,各種新特性的發展速度會很慢。

POW達成共識的時間會很慢,ETH通過GHOST協議才只能做到15秒一個出塊時間,這會嚴重影響POW上的智能合約的確認時間。

至於POS協議,目前並沒有看到一個好的安全的POS協議在運行。眾所周知,ETH未來的協議演進方向是Casper協議,POS共識算法需要解決的問題太多,太多的狀態需要在協議考慮到,這也是Casper協議被推遲的原因,目前來看對於Casper協議的未來,我個人並不是那麼樂觀。

DPOS是犧牲了去中心化,但它又不是完全的中心化,是一種弱中心化的架構。犧牲去中心化的原因是它想提升性能,這個方向是會能給我帶來很多的思考,在整個區塊鏈運行上,如果我們說能把BTC、BCH,現在的ETH這種POW模型認為是最去中心化的話,到中心化之間還有很多中間狀態的,是不是能選一個方式來滿足需求?

這是一個很值得思考的問題,基於一個弱中心化的信任網絡,能給我們帶來多少價值,EOS是值得觀察和學習的。

DPOS的治理模型已經和之前的區塊鏈的治理模型發生了很大的變化,它現在的模型已經在形成比較穩定的結構了,它的開發者很少直接面對普通用戶了,中間有一個超級節點的角色,超級節點直接對自己的選民負責,這在很多的政治結構裡都出現過。全民投票的政治模型裡,每個人都需要投票。還有一種是選出一個代表,這個代表幫選民做決定,這種方式更加的專業。好的治理模型是未來公鏈發展的一個重要特性。

出塊速度上不同

EOS上的出塊時間可以做到0.5的出塊,這樣一個智能合約可以秒級的時間被確認。

共識的不同

這造成了出塊的不同,DPOS可以做0.5秒的出塊時間,這也是目前很多菠菜應用選擇EOS的原因,而ETH上是15秒,確認時間會給應用帶來很多的問題,人們更傾向於確定性,而不是非確定性,目前BCH上的確認時間是10分鐘,長的確認時間也會嚴重的限制應用的使用,希望未來BCH能在這些方向上做更多的改進。

從15秒的確定時間到0.5秒,EOS上的確讓以前在ETH不是那麼火爆的應用重新煥發了生命力。

Gas費用的不同

EOS採用了抵押模型,導致了很多應用沒有辦法獲取到資源,在EOS上開一個賬戶都需要有人提供專門的服務,而內存和CPU價格被爆炒也反映了這種模型存在的問題。

ETH採用Gas模型,這是目前運行比較合理的一種方式,但是也有另外的問題就是資源是動態變化的,CPU、內存的價格一直在變化,所以ETH的Gas也在不斷的調整,而使用智能合約的價格不穩定也是ETH一直在嘗試解決的問題。

在Wormhole開發智能合約的時候我們一直比較重視Gas的使用,最好的方式有可能是Gas只用在收取需要高消耗資源的情況,對於真實的用戶想辦法讓他們以更低的成本使用整個網絡,這是一個非常有挑戰的事情,目前我們團隊也在一直優化這部分的算法,也會在Gas的定價上採取更多的靈活性。

TPS的不同

EOS目前能夠處理2000-3000TPS(非智能合約運行數據),隨著代碼的優化以及超級節點處理能力的提高,這個數據還會上升。

ETH目前是15-20TPS,這是ETH目前面對的一個最好的問題,從加密貓到現在ETH在TPS上沒有什麼進步,目前市場也對於ETH出現了一些偏悲觀的判斷就是技術上沒有太多的進步。

BCH: 目前的TPS是100左右,Wormhole上的智能合約運行並不需要BCH的節點運行智能合約,所以Wormhole的智能合約的TPS只依賴於BCH的網絡處理能力。藉助與分片、UTXO證明等技術未來BCH能夠處理更大的交易,但這樣也是隻有Wormhole的節點需要運行智能合約,這樣的好處就是智能合約的運行和交易運行分離開,能夠處理更多的交易。

DOS攻擊的問題

交易需要支付收費自然就能解決DOS的問題,在ETH上智能合約的運行在消耗完Gas之後自然停止運行,這樣就可以避免一個合約在節點中一直運行。

EOS上因為不向用戶收取手續費,只需要應用提供商抵押EOS即可,EOS的智能合約的限制,每個合約必須在30ms內執行完成,不然就認為執行失敗。這樣雖然解決了停機問題,但是還是沒有解決用戶通過抵押EOS發垃圾交易的問題,EOS上面有一些賬戶就在不斷的發送垃圾交易,目前EOS需要不斷的去解決這些垃圾交易的賬戶。

Wormhole的合約,傾向於提供給智能合約更長的執行時間,會更加的選擇使用Gas模型,也需要有一個合理的算法機制讓真實的用戶可以方便的簡單便宜的使用Wormhole合約。Gas模型+算法選擇的方式是我們未來重點考慮的一個方向,同時也要避免對於系統的攻擊,這是一個需要不斷摸索和不斷調整的問題,讓真實用戶使用,但是也要讓攻擊者的成本不斷提高,另外發送BCH交易需要支付BCH的礦工費用。

主要數據結構的不同

ETH中的MPT樹是其最重要的一個數據結構。

使用前綴樹來進行查詢擁有共同前綴key的數據時十分高效,例如在字典中查找前綴為pre的單詞, 對於哈希表來說,需要遍歷整個表,時間效率為O(n);然而對於前綴樹來說,只需要在樹中找到前綴為pre的節點, 且遍歷以這個節點為根節點的子樹即可。 但是對於最差的情況(前綴為空串),時間效率為O(n),仍然需要遍歷整棵樹,此時效率與哈希表相同。 相比於哈希表,在前綴樹不會存在哈希衝突的問題。

這個不是太好理解,大家明白他很複雜就好了。這棵樹有很多的劣勢:

直接查找效率低下,且一次查找會有m次IO開銷,相比於直接查找,無論是速率、還是對磁盤的壓力都比較大。

可能會造成空間浪費,當存在一個節點,當樹中沒有與他相同前綴的分支時,為了存儲該節 點,需要創建許多非葉子節點來構建根節點到該節點間的路徑,造成了存儲空間的浪費。

MPT樹會導致ETH中一個數據庫操作放大7次以上,這是ETH慢的最重要原因,不改進MPT樹ETH的TPS很難有很大的進展,鄧草原老師的項目就是在嘗試減少這棵的訪問時間。

POW的優勢並沒有被釋放。不可能三角也是一個神話,ETH慢的原因是因為這個樹的拖累,造成了大量的IO操作。

優化這棵樹,ETH提高1-2個數量級的TPS不是太大的問題。

MPT一個很大的好處是SPV錢包能夠更好的好處,但是目前來看ETH生態上基本上沒有SPV錢包的應用。

Wormhole上在設計主要數據結構的時候會選擇和EOS一樣的簡單數據結構,比如merkle tree 可以用來快速算hash,以及做merkle proof即可,完成存在性證明和不存在性證明。

存儲方式不同

ETH使用的是LevelDB,需要存儲MPT中的每一個節點。EOS使用的是MongoDB,很多數據都使用了JSON,互聯網裡面比較常用的一種格式。

Wormhole上的智能合約未來是使用我們自己設計的針對區塊鏈存儲的存儲引擎,目前還在開發中,完成的時候會一起開源。

合約語言的不同

ETH :Solidity語言, Solidity 是一個面向合約的高級語言,其語法類似於JavaScript ,是運行在以太坊虛擬機中的代碼。

EOS: WebAssembly,目前支持最好的是C++未來會支持主流的編程語言,WebAssembly 是一種新的字節碼格式,主流瀏覽器都已經支持 WebAssembly,包括微軟、Google、蘋果都已經在支持WebAssembly。

Wormhole:我們也使用WebAssembly,我個人並不建議自己開發一種新的語言或者使用自己開發虛擬機技術,區塊鏈行業的研發實力並沒有那麼強大。WebAssembly的研發基本上聚集了主要大的互聯網公司研發力量。

應用場景不同

ETH: 無許可的智能合約應用,受限與TPS,上面的運行了很多的偏金融類的智能合約。

EOS: 較高的TPS,但是因為對於超級權限的顧慮,上面運行的大多都是菠菜和遊戲相關的智能合約應用,高價值的智能合約對於EOS平臺會有所顧慮,比如穩定幣。

Wormhole: 因為有POW做了安全保證,也保證了無許可特性,再有就是BCH社區在努力的提高TPS,我們覺得在Wormhole上能夠運行一些價值轉移的智能合約以及一些無許可的智能合約。

整體來說,ETH還需要在工程上能夠看到巨大的進步,不然被其他公鏈超越基本上是很快的事情。

EOS上的超級權限的確會讓人顧忌,對於上面運行一個項目主要資產的時候,會有讓人會擔心超級權限的控制,這個是EOS上需要解決的問題。

公鏈進展還是屬於比較早期,我們需要解決的問題也會比較多,比如隱私性的問題,包括一些數據類型的使用。

公鏈創新者的荊棘之處在於勇於創新的永遠是少部分人,在很長時間內都有可能不會被認可,但這也是區塊鏈給的自由,不用妥協,要自由就做好承擔代價的準備。

我個人非常看好區塊鏈未來的發展,因為,從本質上來講,區塊鏈是一個分佈式的公共賬本,所有人對這個賬本都有查詢的權利,沒有一個單一的用戶可以對它進行控制。那整個區塊鏈系統的參與者就會維護整個賬本的更新,它需要按照嚴格的規則共識來進行修改。

其次,不可篡改性從根本上改變了中心化信任的創造方式,它是依賴於數學以及機器去建立的信任而不是人去建立的,信任的建立是非常難的。在整個人類的發展過程中,人類之所以發展到現在其實是通過一些語言或者說和陌生人交流來達到大規模協作的目的,如果沒有這種方式協作的話,很難去高效地組建團隊,整個過程其實是信任的基礎。

互聯網其實是一個大的合作網絡,它所帶來的信任其實是一種領袖的信任值,比如說我們信馬雲、馬化騰等,是因為理解他們的背後是淘寶和騰訊,這種信任的積累是長時間打造的。

現在社會更多的是一種制度化信任,比如說我們對議會制這種制度是認可和鼓勵的。當然到了區塊鏈的時代,整個信任的建立是由機器達到的,就是出現代碼,整個代碼在區塊鏈上會被執行,然後會達到讓大家更好的去協作,更低成本的構建一個大型的網絡。人類歷史上有可能第一次達到零成本去建立信任。因為區塊鏈上的的數據是可以直接相信的。

這個變革會非常巨大,還有就是價值的傳遞,區塊鏈本身是一個地址到另外一個地址的轉移,這就是價值的傳遞。之前的互聯網沒有公眾號的出現,也沒有打賞這種工具出現,其實意味著互聯網上沒有一個萬億級的市場,現在因為打賞的出現,價值可以高速流通,所以出現了一種知識創新的模式。

現在我們都知道跨國轉賬是非常困難的,大概要三到五天的時間才能做到,而且手續費還不固定,即使我們坐飛機坐到北美那邊也頂多二十多個小時,這樣你人都到了你匯的錢還不一定到,這本身是非常不合理的,區塊鏈是能夠改變這些的。

智能合約其實是一個智能的合同,未來也很可能會出現可編程的經濟、經濟學等,改變經濟領域的一些方面以及交互方式,這些都對於未來的發展是非常重要的。

互聯網及制度帶來的發展是信息的高速流轉,但是互聯網沒有解決的問題是價值的傳遞及價值的高速流動,那這個問題是區塊鏈能夠解決的。如果說區塊鏈能做到這一步的話,整個人類會發生比互聯網所帶來的影響力更大的一次變革。那這個變革所釋放出來的自由、所能達到的透明度,能營造一個更加公平的環境,這在人類歷史上是從來沒有過的。價值轉移、信任建立以及智能合約會給整個人類帶來不一樣的世界。

嘉賓簡介

姜家志 / 蟲洞項目負責人

對話發起人

劉昌用 / 知密大學 發起人

文章聲明:本文根據「火星財經創始學習群」嘉賓分享內容整理,不代表火星財經立場,轉載須在文章標題後註明“文章來源:火星財經(ID:hxcj24h)”。


分享到:


相關文章: