EOSIO Dawn 3.0 正式發布囉

今天早上起床,就看到EOS鶴立雞群的10%漲幅,原來是Dawn 3.0發布了。在官方的Medium文章有關於這次更新提綱挈領的介紹,我也在此整理一下我看得懂的重點。

可擴展性

我們團隊每一步的開發都是將未來的可擴展性納入考量,也就是說,本次Dawn 3.0的實現只是未來潛在優化的一小部份。我們設計了EOSIO,讓未來可以不需要硬分叉,透過平行運算的實現來增進吞吐量。

跨鍊通信

現在業界也有許多透過側鍊、Plasma以及分片技術(sharding)來實現鍊間溝通。跨鍊溝通使得一個區塊鍊能夠安全的驗證另一個區塊鍊上事件的真實性,而最終目標就是讓跨鍊間的溝通變得跟智能合約之間的溝通一樣簡單、安全。而我們相信我們已經達成了此一目標。

Dawn 3.0 利用下列有效提昇跨鍊之間的溝通:

  • Spare Header Verification
  • Context Free Action

交易壓縮

現在有大量的交易含有可壓縮的資訊,透過有效壓縮這些資訊,我們能夠大大提昇使用傳輸以及儲存效率,也降低了使用可壓縮資訊的使用者所需負擔的手續費用

資源分配以及速限(Resource Metering Rate Limiting)

Dawn3.0 使用了新的resource rate limiting 系統。以前我們強調完全主觀的Rate Limit以及強制,現在透過主客觀整合式的系統,一個交易最多可執行時間提昇到了100ms,而以前最多只有1ms。這讓每筆交易能夠允許的運算量大幅度增加。

出塊間隔以及共識協議

EOS的出塊時間由3秒優化到了0.5秒,而共識機制則是改為DPOS和BFT的結合(未上線)。這樣的優化讓鍊間通訊變得更加有效率,現在兩個EOSIO-based的區塊鍊僅須三秒終究可以完成一次來回的溝通,而同樣的通訊如果要再Ethereum上完成,需要9分鐘,在Bitcoin上則需要超過3小時。

由於BFT DPOS是一個非硬分叉優化(non-hard-forking optimization),因此尚未實施。我們會在六月上線的主鍊EOSIO 1.0 公佈前正是實施BFT DPOS。

安全性

我們希望能將EOS設計為安全性最高的區塊鍊。但要知道,所謂的安全性是一個多維的問題,包含了駭客攻擊、硬體故障、密碼丟失等等風險。我們透過下面幾點來增進用戶使用的安全性。

延遲交易

Dawn 3.0最重要的功能之一是增加了一個用戶可以配置的安全延遲時間,以用於不同的操作。在這樣的機制之下,一比交易需要在被廣播到區塊鍊上之後,等待數小時或是數天才可以被應用。照給予了用戶一個緩衝時間,在這段時間內可以透過利用更高權限重設帳戶來取消交易。也就是說如果發現帳戶餘額有所異樣,可以在這段期間內取消交易。

恢復密碼

所有的帳戶都有至少兩個權限等級:Owner以及Active,其中Owner權限是一個多簽,並且能夠在任何時候重設Active權限,以免active key被盜或是遺失。

如果你遺失了owner key或是你Multisig的夥伴不合作,可以在owner權限超過30天不動作之後,透過Active 權限來要求重設Owner權限。在這樣的模型下,由一個或多個硬體錢包控制的owner權限將可以防止駭客入侵以及硬體失靈。如果有人想要完全盜走你的帳戶權限,他不但需要你的多簽夥伴合作、還需要你的硬體錢包以及其他Private key。

交易提案系統

用戶可以在自己的時間內添加和刪除權限,不再像傳統多簽一樣需要在一定時間內收集到所有人的簽名。利用這個提案系統,任何人都可以提出交易,只要各方簡單的批准達到某個設定threshold就可以執行。

簡化智能合約的開發流程

我們的目標是讓EOS上的智能合約開發變得越簡單越好,如果你知道如何利用C++撰寫一個簡單的程式,那麼開發一個智能合約對你而言應該易如反掌。我們提供一段簡單的Sample Code,告訴你撰寫一個智能合約多麼簡單。


我們支援了以下功能,在智能合約的開發上為你省下大筆時間:

  • Floating Point Support
  • C++ Standard Template Library Support
  • Scheduled Transactions

一個重要的功能是 Scheduled Transaction,讓我們不再需要自己維繫一個鍊下的伺服器定時來呼叫我們的智能合約。換言之,我們可以設計永遠執行的智能合約,或是設計在未來定時被喚醒的合約,這大大的提昇了智能合約的變化性以及易用性。(這也太吸引人了吧!)

性能測試

實際運作情況下的性能測試是我們最關切的,我們也在不同的情況下測試了EOS的性能,結果也另我們特別滿意:

Baseline - 1000 TPS

這是我們沒有任何優化的最低性能,我們通過多節點的網路運行單線程簽名驗證的直譯器,達到1000 TPS的吞吐量。

平均情况 - 3000 TPS

使用了JIT(Just In Time)編譯器之後,我們透過一樣的多節點網路運行單線程簽名驗證直譯器,即可達到3000 TPS的速度。

最佳情况 - 6000 TPS

如果我們能實現平行簽名驗證,那麼我們可以假設每個簽名的時間趨近於零。我們透過取消簽名驗證來模擬這樣的環境,在這個模型下,我們透過JIT編譯器達到6000 TPS。

理論情況 - 8000 TPS

如果我們去除網路的程式,只專注於CPU使用JIT時的處理能力(一樣關閉簽名驗證),那麼我們最高可以來到8000 TPS。如果我們想要更高的吞吐量,必須要實現WebAssembly的平行化還有更高級的Scheduler。除此之外,我們試著用直譯器取代JIT,得到了2700TPS的速度,這告訴我們單是啟用JIT就給我們帶來三倍速的提昇。(測試環:MacBook 2.8Ghz i7)

無上限的處理量?

其實對於「每秒交易量」的定義,在我們能夠實行鍊間溝通的情況下,將變得不再有意義。因為靠著鍊間通信,所有代幣可以安全的在鍊間傳輸,我們也可以透過多條鍊來分擔工作量。如果我們有一千條鍊同時運作,那們要達到千萬比交易/每秒的目標,就不再是天方夜譚了。

最後一里路

在最後這段期間,我們將決定我們最終的Token標準,也將實施Staking、投票機制以及治理機制。

結語

EOS,級神。

感覺EOS真的是一個神到天上的項目,之前看的並不仔細,這次細細一讀發現果真人類沒有極限,看來要再回去K她的白皮書了。這篇文章提到了我也還不太清楚的專有名詞,有機會我會再好好研究然後回報給大家的!
image.png

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
5 Comments