一文了解以太坊最新研發進展,零知識證明、分片等話題一網打盡

一文了解以太坊最新研發進展,零知識證明、分片等話題一網打盡

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

小編:記得關注哦

來源:巴比特

作者:以太坊基金會

編譯:灑脫喜

寫在前面:原文由以太坊基金會(EF)資助的14支研發團隊共同完成,他們分別就不同客戶端、零知識證明、Ewasm、形式化驗證、Remix、以太坊 1.x、以太坊2.0 、Solidity、ZoKrates等細分研發工作進行了總結。

一文了解以太坊最新研發進展,零知識證明、分片等話題一網打盡

朋友們:

在這段複雜的時期裡,我們希望大家都能夠平平安安。在困於家中的同時,我們再次為社區更新一些以太坊研發團隊所取得的進展。雖然幾個月前我們剛發佈過冬季篇總結,但自從伊斯坦布爾網絡升級完成以來,我們已經走過了很長一段路,很多團隊有了新的進展要和大家分享。

與往常一樣,這次更新重點關注了由以太坊基金會(EF)支持的團隊及項目,他們正努力發展和改善以太坊。

Enjoy!

目錄

1、Aleth / C++ 以太坊客戶端

2、應用零知識證明(Applied ZKP)

2、1 Powers of Tau 可信初始設置儀式

2、2 Semaphore

2、2、1 安全審計和代碼發佈

2、2、2 第二階段儀式

2、3 Semaphore RLN

2、4 MACI

2、4、1 未來的工作:為MACI添加匿名性

2、5 MiMC懸賞

2、6 Optimistic Rollup Hub + ZK Optimistic rollup

2、7 PeekABook

2、8 實驗方向

3、 生態系統支持計劃

4、 Ewasm

4、1 以太坊 1.x / 無狀態以太坊

4、2 以太坊2.0

4、2、1 跨分片設計

4、2、2 速度

4、3 WebAssembly

5、形式化驗證

5、1 Act

5、2 SMTChecker

5、3 已驗證ABI 編碼器/解碼器

5、4 以太坊2.0

5、5 Hevm

6、Geth

6、1 DNS發現

6、2 交易廣播

6、3 動態快照

6、4 Discovery v5

7、Javascript團隊

7、1 Ethers.js

7、2 Web3.js

7、3 EthereumJS

7、4 Grid

8、 Python生態系統 (PyEVM / Trinity / Web3.py / Vyper )

8、1 Web3.py

8、2 Trinity

8、3 EthPM

9、Remix

9、1 Remix IDE - live和桌面應用

9、2 Remix插件

9、3 外部插件

9、4 Remix 模擬器

9、5 Remix靜態分析器

9、6 Remix測試

9、7 博客文章和覆蓋社區

9、8 E2E測試

10、 以太坊 1.x研究(無狀態以太坊)

11、 Serenity研究 (以太坊2.0)

11、1 以太坊2.0快速更新

11、2 以太坊2.0的staking

12、 安全性和共識測試

13、Solidity

13、1 SMT 檢查器

13、2 Solidity 峰會

14、 ZoKrates

一、 Aleth / C++ 以太坊客戶端

作者:Paweł Bylica

2019年12月,我們發佈了1.8.0版本的Aleth,它包含了很多關於C ++ 以太坊節點功能的很多修復及改進。特別是,我們對RPC接口、區塊鏈同步、網絡協議以及測試工具(testeth,aleth-vm)進行了改進。有關更多詳細信息,請參見更改日誌。

這一版本還包含與共識機制相關的大量工作:

  1. 支持穆爾冰川網絡升級;
  2. 執行EIP-1380;
  3. 執行EIP-2046;
  4. 支持單個EIP激活,以促進以EIP-centric網絡升級過程;

Aleth 1.8.0是最後一個計劃版本,從現在開始,我們僅致力於代碼的基本維護,PR審查以及滿足測試和EIP審查的其餘需求。在此,我要感謝所有Aleth的貢獻者,特別是Nils-Erik Frantzell,他們在過去的一年中為該項目付出了很多努力。

同樣值得一提的還有兄弟項目的維護版本:

  1. EVMC 7.1.0;
  2. evmone 0.4.0 和0.4.1;

最後,我們發表了一篇有關EVM高效gas計算算法的文章,以及在Devcon 5演示文稿中展示的EVM實現優化技術。

二、應用零知識證明

作者Koh Wei Jie 和Kobi Gurkan

應用ZKP團隊致力於將前沿的零知識證明研究帶入到以太坊的應用開發當中。

2、1 Powers of Tau 可信初始設置儀式

2019年9月,我們啟動了Powers of Tau (PPOT)可信初始設置儀式,PPOT旨在通過部分減輕可信設置儀式的負擔,使零知識生態系統受益(特別是對於在以太坊上構建的zk-SNARK項目)。每個zk-SNARK項目都需要兩個階段的參數生成,而PPOT取代了第一個階段,因此所有電路都可以共享使用它。各個團隊可以從儀式中選擇任何貢獻,擴展出來並執行自己的第2階段設置。

這個儀式支持最多2^28個約束的電路,這意味著每個貢獻需要97G下載量、一天的計算以及49G的下載量。在撰寫本文時,我們從28位獨立的個人手中收集了29份貢獻,所有貢獻文件均可下載,並可根據公開儀式筆錄獨立進行核實。

2、2 Semaphore

推出於2009年年中的Semaphore,是Applied ZKP團隊開發的旗艦項目,它是一個通用的隱私小工具,可支持混幣器、匿名登錄和匿名投票等應用。Chih-Cheng Liang在開發的一個Semaphore應用是Semaphore 身份驗證,它使匿名登錄能夠抵禦女巫攻擊。我們鼓勵讀者閱讀這篇科普文章,瞭解什麼是Semaphore,以及它的工作原理。

2、2、1 安全審計和代碼發佈

我們聘請ABDK Consulting對Semaphore的zk-SNARK電路代碼和Solidity合約進行了安全審核,然後修復了一些發現的問題,併發布了最終的源代碼。其包含了circom標準庫中的許多組件,從而為使用circom的SNARK開發者社區提供了更多的工具集。

2、2、2 第二階段儀式

在撰寫本文時,我們正在執行特定於電路的多方可信設置儀式。我們遵循的過程在此處有記錄。我們與VDF聯盟成員Supernational合作,在預先公佈的以太坊區塊哈希上運行可驗證延遲函數(VDF),並將所述VDF的輸出應用於PPOT儀式挑戰文件#25,並於2020年4月6日啟動電路特定儀式。

感謝Brian Gu的出色工作,我們得以將Aztec協議的點火軟件用於我們的儀式。請閱讀參與者指南,以瞭解更多有關儀式的詳細信息。

2、3 Semaphore RLN

Semaphore RLN提供了一種在P2P設置中執行速率限制的方法,我們使用了Shamir秘密共享算法來公開廣播者私鑰的子集,而不是依賴於鏈上的nullifier map來防止雙重信號。

2、4 MACI

MACI最初是由Vitalik Buterin在ethresear.ch的一篇帖子中提出的,使用MACI構建的系統可使參與者之間難以串通,同時保留了智能合約審查阻力及正確執行的好處。儘管僅當協調者誠實時,MACI才能提供抗合謀的能力,但不誠實的協調者既不能審查也不能篡改它的執行。

在2019年年末,我們開始進行技術規範和實施工作,並且即將完成一個最小可行產品。

2、4、1 未來的工作:為MACI添加匿名性

MACI使用協調器進行處理,而協調器使用SNARK來證明完整性,因此惡意協調器僅會損害抗合謀屬性。而當前方法的一個缺點是,協調者在看到所有密鑰更改時,其能夠將每個用戶的原始密鑰鏈接到他們的最終密鑰。我們希望通過允許用戶匿名更改密鑰,來進一步改善協調器的隱私。關於這一話題更詳細的內容,你可以看這篇ethresear.ch文章;

2、5 MiMC懸賞

MiMC由於其良好的性能,它已經成為SNARK中一種流行的密碼學哈希函數。雖然它是“低乘法複雜性哈希函數”家族中最老的函數,但我們認為它應該得到更多的關注。我們啟動了一個關於MiMC哈希函數的碰撞懸賞計劃,並計劃將懸賞活動擴展到Poseidon哈希函數。

2、6 Optimistic Rollup Hub + ZK Optimistic rollup

Optimistic Rollup通過使用鏈上數據可用性和欺詐證明,可實現更好的layer 2可擴展性。這個Hub鏈還允許在不同的rollup之間輕鬆進行大規模遷移。

ZK Optimistic Rollup 基於相同的思想,但目的是用於匿名傳輸。rollup中的每一筆交易不是透明的交易元數據,而是2-to-2 匿名傳輸。

2、7 PeekABook

PeekABook允許兩名用戶私下匹配訂單,這樣,除非他們擁有可履行的訂單,否則任何用戶都無法發現有關另一個用戶所下訂單的更多信息。

2、8 實驗方向

截至目前,我們已經以成熟的代碼、規範或具體計劃描述了已發佈的項目。我們正不斷探索新的實驗領域,並期待它們成長為成熟的項目。其中包括:驗證SNARK中的STARK(允許某種形式的layer 1遞歸盲查找),基於MPC的構造,證明p2p網絡中用戶之間存在路徑,而不暴露路徑本身,等等。

三、生態系統支持計劃

4月1日,我們發佈了ESP分配更新,然後分享了一些關於改進流程工作,以及在2019年獲得財政支持的項目列表。

你也可以關注基金會的twitter號,以瞭解相關支持項目的最新進展。

四、Ewasm

作者:Alex Beregssaszi

自去年12月發佈更新以來,團隊一直致力於以太坊2.0 的第二階段開發工作,並開始積極參與以太坊1.x的研究。

我們的直覺是,研究的某些內容是雙方都需要的,並且可以在兩者之間進行共享。

4、1 以太坊 1.x / 無狀態以太坊

在無狀態模型中,我們不希望讓每個人都保留區塊鏈的整個狀態副本,取而代之的是,每個區塊都附帶受影響狀態部分的證明(即所謂的witness)。而關於witness的最佳創造、分配及核實,成為了這一新的無狀態系統的一個關鍵組成部分。

關於如何縮小區塊witness的大小,開發者們已經有了很多想法, Paul 已經在一個調查中對它們進行了收集。而我們首先要考慮的就是減少代碼大小。這一點很重要,因為witness中還需要包含代碼。目前我們想到了兩種方法:壓縮和默克爾化。而早期階段的實驗表明,我們可以將作為區塊witness的一部分代碼傳輸量減少40-60%。

我們計劃進一步探索:

  1. 減少witness的存儲大小;
  2. 關於witness大小的確切計量;
  3. 參與創建witness規範;

4、2 以太坊2.0

必須要注意的是,由於以太坊2.0的執行模型也是無狀態的,因此以太坊 1.x的部分研究工作在這裡也是適用的。

4、2、1 跨分片設計

如果沒有有效轉移以太幣(以及可能的其他代幣)的能力,執行支付和交易將變得很複雜。去年,研究人員提出了很多模型,包括帶有累加器的收據、隊列和餘額圖。而Casey提出了一種名為EthTransfer objects的替代方案。

除了以太幣傳輸外,合約可能希望能夠與不同分片上的其他合約通信,並可能執行原子操作。所有這些,都為第二階段提供了廣闊的設計空間,截至目前,我們一直在進行探索。

作為實驗,從幾周前開始,我們開始研究Eth1x64,其可以減少設計空間,並應允許不同設計的快速迭代。

在Eth1x64下,每個分片是同質的,並運行Eth 1.x的一個實例,其中分片0 就是當前的以太坊1.0 主網。我們正在研究多個小提議,它們都專注於實現跨分片通信的各種方式。

這項工作將使我們瞭解到在以太坊1.0中引入分片的複雜性,允許我們從Dapp開發者那裡收集更廣泛的反饋,並且我們可以將結果用於改進基於WebAssembly的第二階段(Phase 2)設計。

4、2、2 速度

零知識協議已變得越來越重要,我們必須要確保在以太坊2.0上可有效地支持它們。對此,我們已開發了AssemblyScript中對SNARK友好的MiMC哈希函數的優化實現,以及基於zkSNARK的token示例。該示例在執行環境(EE)中運行良好,而基準測試表明,兩者都可以達到與編譯器引擎和基於EVM(預編譯輔助)實現相當的性能。關於測試的具體數字,有興趣的讀者可以看 Jared撰寫的總結內容。

這項工作還指導了對大整數API的進一步審查,它是基於WebAssembly的安全執行的一個重要元素。

4、3 WebAssembly

最近幾個月,我們發佈了WebAssembly的穩定版1.0規範,這對WebAssembly而言是一個碩果累累的時期。期間還出現了一些新的有希望的解釋器項目,我們正密切關注它們,並打算將它們納入我們的基準測試報告。

一月份,我們開始研究Fizzy,這是一個新的Webassembly引擎。諸如只支持整數(不支持浮點操作)和只執行解釋器等特性,使其非常適合區塊鏈應用。此外,使用現代C++17編寫的簡潔代碼庫以及易於嵌入的目標,使得Fizzy成為適用於以太坊2.0 客戶端實現的可行模塊化組件。截至發稿時,Fizzy能夠通過幾乎所有官方測試用例(Wasm驗證除外,目前其尚未實現),並且在速度基準方面具有很好的表現。

五、形式化驗證

作者:Leo Alt和Martin Lundfall

5、1 Act

Act是編寫形式化規範的一種簡單而有效的規範語言,它是在幾個團隊的合作下開發的,我們希望將來Act語言能夠被普遍使用。

通過允許屬性在不同level上表達,Act 工具的主要目標是實現模塊化驗證。可以將規範驗證為一個獨立的文檔,其中可以從指定函數的pre/post條件中檢查合約不變量,也可以從函數的存儲更新中檢查post條件。理想情況下,這種模塊化驗證將使其他工具更容易地驗證源代碼和字節碼的正確性。

我們目前正在為中間證明開發三種證明後端:

  1. Coq定義;
  2. K規範;
  3. SMT定理;

每一個後端都有自己的優缺點,我們希望通過同時開發所有前端來實現良好的性能和覆蓋範圍。

我們希望在2020年6月之前發佈每個證明後端的原型,並研究如何表達循環不變量。

我們將很快發佈一篇關於Act的詳細技術文章,歡迎大家對它的代碼庫進行貢獻!

5、2 SMTChecker

SMTChecker是Solidity編譯器中基於模型檢查的靜態分析模塊,它試圖在編譯時驗證源代碼的斷言。去年,開發者增加了一個基於Constrained Horn Clauses的新引擎,該引擎的主要功能是可以自動找到用於證明斷言的歸納不變量,從而支持循環和狀態屬性。

我們最近還向該引擎添加了內部函數調用,並不斷改進對Solidity語言的支持。在接下來的3個月中,我們將繼續致力於增加語言支持、反例生成/演示和外部函數調用,這將有望使SMTChecker從實驗版,轉變為一個有用且功能強大的工具。

在未來,我們還希望:

  1. 結合SMTChecker和Act,研究一些令人驚奇的東西;
  2. 為SMTChecker創建一個Remix插件,這將大大提高可用性;

5、3 已驗證ABI 編碼/解碼

我們正在和ConsenSys公司研發部門合作,他們正使用Yul Isabelle開發一個經驗證的ABI編碼器/解碼器。這一想法及相關討論始於Devcon V大會,自那時以來,相關研發已經取得了良好的進展,我們已接近完成了原型。

最初,我們打算將其與Solidity Fuzzer一起使用,以查找與優化和ABI編碼/解碼有關的錯誤。我們的最終夢想是,將經驗證的ABI編碼器/解碼器用作Solidity編譯過程的一部分。這意味著代碼生成的很大一部分是經過驗證的!

5、4 以太坊2.0

我們在維護KEVM形式語義、驗證存款合約以及信標鏈規範方面,一直支持Runtime驗證。存款合約也是我們在開發Act語言時的主要基準之一。我們希望在7月之前,通過Act語言提供存款合約的替代規範和增量Merkle樹屬性的證明,同時我們還打算研究以太坊2.0 第一階段及第二階段必須要證明的屬性。

5、5 Hevm

Hevm,這種用haskell語言編寫的EVM 評估程序和調試器現在可用於屬性測試。 dapp開發工具用戶現在可編寫Solidity測試,這些測試的參數是隨機生成的,並且會根據正確性標準多次運行。這為智能合約開發人員提供了一種相對直接的方式來大量增加測試覆蓋率。

接下來,我們還將探索使用符號執行功能擴展Hevm,這樣就可以使用Hevm正式驗證EVM字節碼。

六、Geth

作者:Péter Szilágyi

在過去的一個季度裡,Geth團隊一直忙於網絡測試工作,以及為將來的發佈奠定基礎。這篇文章只會列舉一些主要功能,有關詳細的要點,請參閱我們的發佈說明。

6、1 DNS發現

我們在2年前就重點提出過一個功能,並在上個季度正式發佈,它是基於DNS的對等節點發現功能。接下來,Geth v1.9.11+節點會有兩種獨立的機制來查找對等節點。當無法通過DHT找到對等節點時,DNS列表會用作回退機制。它們也可能最終成為Tor集成的起點。

基於DNS的發現功能是一種中心化的機制,但我們試圖使該機制的操作儘可能地透明化以及無需許可。默認情況下使用的公共列表,是通過搜尋DHT生成的。用戶運行的任何實現EIP-868及EIP-2124的以太坊客戶端節點,將自動出現在公共列表中。如果你想要為你的專用或公用網絡創建基於DNS的節點列表,請查看我們的DNS發現設置指南。

當前,默認列表中有約1150個公共路由以太坊主網節點,並且我們的公開名單也服務於Ropsten、Goerli和Rinkeby測試網絡。而網絡目前每天為此發現機制生成的DNS查詢,大約達到了800萬次。

6、2 交易廣播

長久以來,以太坊節點使用的大部分網絡帶寬都用於轉移交易。不幸的是,該機制自誕生以來從未得到過優化,因此非常浪費。而在最近一個季度,我們對以太坊協議(EIP 2464)進行了規範更新,以優化帶寬消耗。

這個新的協議已在Geth v1.9.11中實現,另外Nethermind也已經實施,Open Ethereum客戶端也在跟進。由於網絡當中大約只有30%的節點支持它,因此全局節省帶寬量仍然是一個問題,但應用<code>eth/64/<code>與<code>eth/65/<code>的對比實驗已經有了很好的結果。

根據上週的流量,<code>eth / 65/<code>能夠將交易廣播的使用帶寬減少大約75%。對於擁有250個對等全節點的引導節點而言,這節省了750KB/s,或每月大約1.8TB的帶寬。我們確信這仍有改進的空間,但需要我們一步一步前進。

除了eth/65之外,Geth在1月份還支持了大於32KB交易(由StarkWare提供),最初的軟限制為64KB,很快會提高到128KB(更高的限制,很大程度上取決於eth / 65在全球範圍內的表現)。

6、3 動態快照

運行EVM以及執行初始同步的一個大瓶頸,就在於以太坊的狀態模型:MPT(Merkle Patricia Trie)。因為所有的狀態數據都是以樹的形式排列的,所以訪問任何帳戶都需要在主網上隨機進行6-8次磁盤查找。在快速同步過程中,需要逐個下載相同的隨機中間trie節點來獲取實際數據。

半年來,我們一直在積極研究一個名為動態狀態快照(dynamic state snapshots)的功能:簡而言之,它是一種在磁盤上創建平坦的加速結構,該結構允許任何帳戶或存儲slot都可以通過一次磁盤查找進行加載。這與Open Ethereum的<code>fatdb/<code>方案類似,不同之處在於它是動態的:Geth中的快照機制能夠隨著鏈的前進(包括迷你分叉)實時更新加速結構。

動態快照的一個好處是大小為<code>O(1)/<code>的EVM狀態讀取。儘管這聽起來像是聖盃,但事實並非如此。大多數合約執行並不會因為磁盤讀取而發瘋,因此好處是有限的,而且大多數合約也執行大量寫操作,而這些操作仍然需要推送到Merkle-trie樹中。但是,動態快照確實允許<code>eth_call/<code>操作快速進行,並且它們確實使DoS交易變得更加難以完成。

動態快照支持的一個更有趣的功能,是一個新的同步協議,我們已經嘗試了兩年(最初稱為葉同步<code>leaf sync/<code>),目前我們仍在開發該協議,如果我們的預感是正確的,它應該可以加快以太坊的狀態同步速度。

6、4 Discovery v5

下一代discovery協議的初始版本已在Geth中實現,儘管它還沒有被啟用。其規範和實現目前很流暢,並且與Eth 2.0要求保持同步,而其在最終代碼庫中的運用,將會是一個巨大的里程碑。

七、Javascript團隊

作者:Holger Drewes和Philipp Langhans

上個季度對於團隊而言是令人興奮的。三月初,我們在巴黎舉辦的EthCC會議期間首次線下會面,這加深了團隊關係,我們還討論了關於未來的一些計劃。

7、1 Ethers.js

Ethers v5在最終發佈之前要經歷最後一個beta版本。與社區討論過的很多修復及可用性改進(如API調用的合適名稱)已被應用,這為一個穩定而健壯的最終版本做好了準備。最近添加的值得注意的新功能,包括WebSocketProvider以及EIP-1193。

7、2 Web3.js

在擔任Web3.js庫主要維護者一年多之後,Samuel決定要開始新的冒險了(感謝Samuel所做的一切!♥️)。在EthCC會議期間的日子裡,我們過得很愉快。現在,該庫的開發將由團隊的其他成員共同承擔。

目前,我們會重點關注穩定性,團隊成員正努力熟悉技術堆棧和程序,而Samuel是這個項目的第一專家。因此,關於近期的新功能添加,請允許我們進行謹慎的選擇。出於同樣的原因,我們也不會在2.x分支上進行開發。

7、3 EthereumJS

我們將EthereumJS虛擬機移至monorepo,將結構相關的庫(tx、block、blockchain、HF configuration(common))組合在一起。這將大大簡化虛擬機在未來的發展,並允許集成PR。基於這個新的結構基礎,VM的v5版本預計將很快發佈,這將帶來一些突破性的變化。

由於dryajov的出色工作,我們現在還擁有了devp2p堆棧的有效TypeScript實現。相關的正式消息,我們將在近期公佈。

7、4 Grid

以太坊Grid分為兩部分:桌面應用程序和一個可在電子環境之外提供二進制管理的核心模塊。

核心的目標是提供一個引擎,它本身很小,但是可通過插件擴展。我們已實現了必要的機制,其可以在將來不必修改Grid的情況下實現安全、穩定的擴展。

Grid還可以通過稱為工作流(workflow)的小腳本進行擴展。在EthCC大會上,我們已經演示了一些Grid工作流 。

八、Python生態系統 (PyEVM / Trinity / Web3.py / Vyper )

作者:Piper Merriam

8、1 Web3.py

關於Web3.py庫,我們繼續在進行增量改進及穩定性方面的工作。由於有一些第三方的貢獻,我們希望在不久的將來,能夠為助記詞短語和HD帳戶提供初步支持。儘管在這方面還需要做大量的基礎工作,但我們仍將繼續努力以提供全面的異步支持。

8、2 Trinity

在以太坊1.x和以太坊2.0這兩個方面,Trinity客戶端將繼續前進。在以太坊1.x方面,我們繼續致力於開發一個功能強大的主網客戶端。在過去的兩年裡,我們最大的工作就是研發有關“無狀態以太坊”的方案,這些工作將在未來18-24個月內改造以太坊主網。

8、3 EthPM

EthPM團隊正在與Solidity團隊合作以合併打包標準,以便編譯器能夠編譯包中的資源,生成已編譯資源的package,並使用EthPM規範進行元數據和合約源驗證。

九、Remix

關於Remix,你可以查看我們的medium帖子以獲取更多詳細內容。

9、1 Remix IDE - live和桌面應用

  1. 對Solidity 0.6.0重大更改和功能的全面支持,已添加到Solidity插件中;
  2. 現在可以進行低級別交互(Solidity receive和fallback);
  3. 添加了明暗主題,重新設計了Solidity插件和Deploy&Run插件的UI;
  4. 最新的Remix插件引擎(v0.2.0)已成功集成到Remix IDE和remix-模擬器(瀏覽器中的Ethereum dev節點)中。
  5. 從現在開始,桌面版本將跟隨Remix live 發佈。

9、2 Remix插件

  1. 最新版本提供了websocket插件,我們將很快添加更多類型(Secure Ecmascript,IPC);
  2. 與VScode的集成開發,目前正在進行當中,希望很快就能實現;
  3. 這是開發插件的文檔;

9、3 外部插件

  1. 我們支持外部團隊構建插件並將其添加到Remix IDE中;
  2. 我們有Gitter頻道專門用於Remix插件。你可以加入這個Gitter頻道來向社區推薦你的插件;
  3. 如果你需要資金來創建你的插件,你可以:(1)創建一個Github問題,描述自己打算做什麼,(2)向我們([email protected])發送一封郵件,其中包含描述項目的文檔、Github問題的鏈接和發票提議;
  4. 我們會盡最大努力與您聯繫並計劃下一步行動;

9、4 Remix 模擬器

  1. 與Remix IDE的集成基本已完成;

9、5 Remix靜態分析器

  1. Remix Analyzer移到typescript,現在使用最新的AST(抽象語法樹);

9、6 Remix測試

我們最近發佈了一些新功能,並聯繫了Remix社區以獲得反饋,然後收到了很好的結果。以下是medium帖子:第1部分以及第2部分;

9、7 博客文章和覆蓋社區

我們已開始推送一些新內容,這將是我們未來幾個月的重點。

9、8 E2E測試

David aka@ioedeveloper最近加入了團隊,他正在進行E2E測試及Remix IDE方面的開發工作,目的是鞏固我們的發佈過程。

十、 以太坊 1.x研究(無狀態以太坊)

作者:Griffin Hotchkiss

對現有以太坊協議(稱為Eth1.X)的一系列升級,已被研究人員合併為一個統一的工作,以實現和過渡到“無狀態以太坊”。升級和查詢主題,不僅與提高當前區塊鏈的可擴展性和彈性相關,而且與Eth2.0研究團隊正在解決的工程及設計挑戰相關,它們在很多方面是相互補充的。

在巴黎EthCC大會之後,我們還舉行了一場無狀態以太坊研究峰會,與會者們認為,這是一場開創性的會議,並且在所有方面都取得了巨大的成功。

Griffin Ichiba Hotchkiss在一個名為“The 1.X Files”的系列文章中記錄了無狀態以太坊計劃的最新進展,該系列文章除了總結每月的會議內容外,還深入研究了開發者們正在研究的核心概念及前進道路。

相關文章:

  1. 無狀態以太坊技術樹(更新);
  2. 無狀態以太坊峰會內容總結;
  3. The State(lessness) of the Union;
  4. 無狀態以太坊的研發進展;

十一、 Serenity研究 (以太坊2.0)

作者:以太坊基金會團隊

Danny Ryan,Carl Beekhuizen以及以太坊2.0研發團隊在EF博客上會定期發佈關於“以太坊2.0快速更新”和“以太坊2.0 Staking”的系列文章。有關我們接近第0階段啟動的最新消息和進展,請查看下面的最新文章!

11、1 以太坊2.0快速更新

  1. 以太坊2.0快速更新no. 8 - 2020-02-04
  2. 以太坊2.0快速更新no. 9 - 2020-03-17
  3. 以太坊2.0快速更新no. 10 - 2020-03-31

11、2 以太坊2.0的staking

  1. 以太坊2.0 staking #1 - 激勵措施 - 2020-01-13
  2. 以太坊2.0 staking #2 -2020-02-12
  3. 以太坊2.0 staking #3 -分片共識- 2020-03-27

十二、安全性和共識測試

作者:Martin Holst Swende

以太坊主網的健康狀況是重中之重,我們已調查併發布了EIP,提出了對狀態Trie遺漏的懲罰措施。

到2019年底,我們發放了幾筆賞金。ChainSecurity在三個單獨的報告中又獲得了8500點積分。在2020年初,多產的漏洞獵手Sam Sun因ENS漏洞而獲得了另外的1萬懸賞積分。

Go-Evmlab存儲庫已經更新,可以更好地與Geth集成,並在分析鏈操作以及創建自定義evm-fuzzer時提供幫助。

我們還對即將推出的Discovery v5協議進行了兩次外部審核。該協議已在Geth中實現(但未激活)。

共識測試:

區塊鏈測試生成代碼被重新編寫和遷移到retesteth,VMTests現在以區塊鏈測試格式生成。Stats Web服務器設置在http://retesteth.ethdevops.io/

十三、Solidity

作者:Franziska Heintel,Daniel Kirchner和Christian Reitwiessner

自上次更新以來,Solidity團隊發佈了0.6.0版本。除了在我們之前的文章中已宣佈的大量功能之外,還包括“ try / catch”作為處理外部調用失敗情況的高級語法。與此同時,0.6系列在多個次要版本中已趨於穩定,而下一個主要版本0.7的早期計劃已經開始(未來的博客文章將宣佈預期的功能)。

0.6系列中,一個值得注意的新語言特性是支持不可變變量。從0.6.5版開始,Solidity狀態變量可以聲明為“不可變”。不可變變量可以在合約創建期間分配一次,並且可以從runtime代碼中廉價地讀取。構造函數代碼將在構造期間,直接將不可變對象指定值插入到runtime代碼中,以便訪問的runtime開銷僅是單次PUSH的開銷。

最近出現的其他語言功能包括接口繼承(將在不久的將來由ERC165接口ID進行補充)、用於內部還原的可選原因字符串以及通過內聯彙編(inline assembly)分配存儲指針的能力,後者支持用於編寫可更新合約的構造。此外,我們還通過新的<code>C{salt: }/<code>引入了CREATE2的語法,同時將用於設置常規函數調用的gas和value語法,遷移到了類似的語法:<code>c.f {value:10 ether}/<code>。

Solidity團隊目前的重點,是通過Yul作為中間表示來擴展新的代碼生成。最近值得注意的新增功能包括外部函數調用、try/catch、增加的數組支持、元組等等。在後端方面,Yul代碼到Ewasm的轉換現已完成,目前正等待對類型進行一些調整,這意味著通過Yul-IR,將為Ewasm編譯器提供一個可靠的Solidity版本。

我們還對Yul優化器繼續進行了改進,最顯著的變化是引入了Yul Phaser,它是一種使用遺傳算法(Genetic Algorithm)來尋找優化器步驟最佳順序的工具,將來,如果你想花費更多時間進行編譯並獲得更便宜的合約,你也可以在單個合約中使用它。

進一步的改進:solc js現在是在WebAssembly上構建的,而不是asm.js,這將使編譯更快,並提高瀏覽器兼容性。JSON AST導出現在由AST導入進行了補充。我們會繼續努力進行源代碼驗證,通過字節碼中的元數據哈希建立一個經身份驗證的ABI,以及已部署智能合約的源代碼集合,並提供一種從ipfs或其他源檢索權威ABI信息的無需信任方法。

13、1 SMT 檢查器

SMTChecker模塊繼續增加對Solidity的支持,並改進其驗證技術。新的CHC引擎現在還支持內部函數調用和多交易反例(未發佈)。我們目前正在研究對外部函數的支持,並且像往常一樣,會支持Solidity語言的更多功能。

13、2 Solidity Summit !

最後,我們期待在4月29日- 4月30日舉行的在線Solidity峰會。

這是一次交互式論壇活動,其中會包含有關Solidity、Yul、語言設計及工具的討論。我們旨在進行有益的討論,以提出改進建議,併為實際實施鋪平道路。此外,我們希望促進從事類似主題團隊之間的溝通,並確定以太坊智能合約生態系統的需求。

十四、ZoKrates

作者:Jacob Eberhardt

自上次更新以來,ZoKrates團隊設計併發布了ZoKrates.js的第一個版本,這是一個用於編譯、執行和證明ZoKrates程序的庫。其底層使用的是WASM,並且已用於為我們的Remix插件提供動力!

作為這項工作的一部分,並且為了更好地支持與ZoKrates的程序交互,我們開發了新版本的ZoKrates ABI。

為了提高效率,我們在ZoKrates編譯器中添加了進一步的優化技術:記憶函數調用、檢測無約束變量等。 這些優化目前正處於審核及測試階段,我們希望在下一個版本中將它們呈現出來。

此外,本機驗證(用戶通常要求的功能)已作為原型實施,目前正在接受測試。

最後,在ZoKrates中引入無符號整數的開發工作,目前正在進行當中。這在使用常見哈希函數(如SHA256)以及實現內在二進制表示算法時特別有用。


分享到:


相關文章: