編者按:從 2008 年誕生以來,區塊鏈走過了十多年的風雨路,繁衍出比特幣、以太坊、EOS等諸多公有鏈。誕生于 2014 年的以太坊,到今天已經走過了整整 5 個年頭。本文將圍繞以太坊,介紹相關基礎知識,提供各種查詢工具、社群鏈接,幫助大家更加深入學習以及在以太坊上進行開發。
記者 | 秦曉峰
編輯 | 盧曉明
以下為本入門手冊目錄:
一、以太坊是什么?
二、以太坊代幣
三、節點、網絡、賬戶與錢包
四、以太坊挖礦
五、智能合約與DApp開發
六、以太坊的發展歷史
七、以太坊社區治理:基金會、社群、貢獻者介紹
八、其他
在介紹以太坊之前,如果你對區塊鏈以及比特幣還不了解,可以閱讀《區塊鏈 100 問》、《區塊鏈課堂100問》或者觀看一下這個視頻《比特幣的原理》。
(Odaily星球日報注:本文帶有下劃線的部分均可以點擊跳轉至相關鏈接。)
一、以太坊是什么?
什么是以太坊?根據 以太坊白皮書定義,以太坊是一個全新開放的區塊鏈平臺,它允許任何人在平臺中建立和使用通過區塊鏈技術運行的去中心化應用;它是一個開放源代碼的項目,由全球范圍內的很多人共同創建,允許用戶按照自己的意愿創建復雜的操作;以太坊核心是以太坊虛擬機(“EVM”)/智能合約,可以執行任意代碼,用計算機科學術語說,以太坊的虛擬機是“圖靈完備的”。
以太坊究竟是什么?推薦閱讀以太坊創始人 Vitalik Buterin 的文章《以太坊是什么》。
此外,我們建議大家可以閱讀一下以太坊白皮書,盡管不一定能全部看懂,但是可以從一個更高的維度去把握以太坊。除了白皮書,以太坊還有黃皮書、紫皮書。
以太坊白皮書:2014 年初,由以太坊創始人 Vitalik Buterin (V 神)發表,從技術方面來看,白皮書只是描述了一種新技術的理論(英文版/中文版);
以太坊黃皮書:2014 年 4 月,由 Gavin Wood 博士(以太坊聯合創始人兼CTO)發布,號稱以太坊的技術圣經,將以太坊虛擬機(EVM)等重要技術規格化(中文版/英文版);
以太坊紫皮書:2016年,V 神發布了一份紫皮書,為解決區塊鏈的效率和能耗問題,提供了一種將POS和基于分片證明進行合并的解決方案,包括提高可擴展性、確保經濟終結性和提高計算機抗審查等(英文版/中文版)。
關于以太坊,國內和國外都有一些以太坊文庫可以參考,Odaily星球日報推薦:《以太坊官方中文文檔》、以太坊愛好者知識庫、ethdocs英文版;如果不愿意看文字版的,視頻也是個不錯的選擇,推薦《以太坊入門》。
二、以太坊代幣
2014 年 1 月,Vitalik 在美國佛羅里達州邁阿密舉行的北美比特幣會議上正式宣布了以太坊。
同年 6 月,以太坊基金(Stiftung Ethereum)在瑞士楚格成立,并在隨后的 42 天內對第一批公開預售的以太幣進行分配,凈賺31591比特幣,當時價值 1840 萬美元,售出大約6010 萬個以太幣。銷售所得首先用于償還日益增加的法律債務,回報開發者們數月以來的努力,以及資助以太坊的持續開發。
代幣是什么?
什么是以太坊代幣?簡單來講,以太坊代幣是內置在以太坊區塊鏈上的數字資產。如果將以太坊區塊鏈看作一個程序,代幣在某種程度上就是程序中的流通貨幣/積分,不同的是,傳統的積分只能由程序的設置者發行,而以太坊上的代幣任何人都可以發行。
以太坊上的代幣分為兩種:一種是以太坊區塊鏈原生代幣以太幣(ETH);另一種是按照以太坊提供的工具和標準開發所發行的代幣(比如BNB)。兩者的區別最直觀在于流通場景,ETH是以太坊網絡的通貨,鏈上的每次操作/交易都需要付燃料費(有點像手續費);BNB 等代幣無法支付燃料,只有 ETH 可以。在BIAN、火幣和 OKex 等鏈下交易所、鏈上去中心化交易所或線下 P2P,BNB 等代幣也可以按一定比率換成 ETH。
代幣可以固定總發行量以及流通量,也可以不固定,比如 ETH 至今仍未停止增發,盡管去年 4 月 Vitalik 曾提議將 ETH 供應量上限定為 1.2 億。
代幣可以用來做什么呢?每個代幣的屬性和功能都要遵守其預期用途的約束,比如支付訪問網絡、驅動智能合約、激勵用戶對某個協議的使用或者充當生態運行燃料(即 Gas,下面會解釋)。當然也有一些代幣沒有任何實際用途,在其生態中也并非完全必須的,發行代幣也只是項目圈錢的手段。
代幣通常通過“原始貨幣眾籌”(Initial Coin Offering,ICO)的銷售方式或者挖礦(后文會解釋)的方式進入公眾視野。代幣創建者會通過提供內置代幣,來交換以太幣、比特幣或其他數字資產。2017 年的 ICO熱潮就是這樣被炒起來的,魚龍混雜,各種跑路事件層出不窮。
推薦閱讀《代幣為什么存在,如何使用》、《以太坊代幣入門指南》以及以太坊創始人V 神的文章《關于代幣發售模型》。
代幣標準
目前,以太坊上代幣超過 1000 種,不同的代幣發行標準也各不相同。最常見的就是 ERC-20 代幣,它也是各個代幣的標準接口。不同的標準有不同特點,比如 ERC-20 代幣可以繼續分解,更類似貨幣;但是 ERC-721 即非同質代幣(NFTs)卻是不可以。目前 ERC-20 是最多項目用于發幣的標準。
然而,ERC-20 代幣標準很可能會造成終端用戶的資金丟失,主要的問題在于無法處理 ERC-20 代幣轉賬函數執行的 ERC-20 收入交易,ERC-233 應運而生。ERC-233 定義了一個標準函數,能夠防止意外發送代幣到(不支持該標準的)合約中,同時也讓代幣的轉賬就像以太坊轉賬一樣。
除此之外,還有 ERC-777(基于操作者的代幣標準)、ERC-809 (非同質代幣的租賃標準)等 23 種不同的代幣發行標準。想要了解更多,可以閱讀。
查詢工具推薦
關于ERC-20 代幣,有一個專門的網站可以查詢,這便是 ethplorer——它可以查詢以太坊上代幣及代幣排名比較。你知道以太坊生態中除了ETH,那個代幣的市值最高嗎?這個網站可以給你答案。除此之外,它還有其他功能,包括錢包、ICO查詢(收費)。
對于二級市場的參與者,尤其是參與過多次私募的投資者而言,最害怕的就是項目方套現跑路。dappcapitulation瀏覽器不僅可以看到以太坊創世“巨鯨”的賬戶余額,還能看到以太坊上各個項目方的賬戶余額,防止項目方套現跑路。
最后推薦一個可以查看以太坊鏈上的大額轉賬的瀏覽器——Tokenview,除了以太坊還有其他幾十種代幣都可以,數據可以追蹤到幾個月前。
三、節點、網絡、賬戶與錢包
節點
節點可以簡單理解為運行著以太坊客戶端的計算機/服務器,所有以太坊節點通過網絡連接組成主網。根據運行的客戶端類型不同,可以分為全節點和輕節點,輕節點需要通過連接主節點獲取最新數據和發起交易。
關于全節點、輕節點以及歸檔節點的區別,推薦閱讀Odaily星球日報編譯的《以太坊節點運行成本》;想要查看各個節點,推薦使用節點瀏覽器ethernodes。
帳戶與錢包
以太坊帳戶可以用來存儲所有的以太坊代幣(不僅僅是ETH),創建時不需要花費 gas(EOS的賬戶創建要花費少量gas)。一個帳戶就是一個私鑰和公鑰地址對。公鑰可以理解為賬戶地址,私鑰可以理解成賬戶的密碼、鑰匙。
區塊鏈地址是根據非對稱加密算法,生成私鑰和公鑰,從公鑰根據一系列的計算推導出地址。任何人均可以生成大量的私鑰、公鑰、地址,可是用人力自己計算非常不現實。區塊鏈錢包正是幫助我們生成私鑰、公鑰、生成符合某個公鏈規范的工具。具體計算方式請參照《什么是區塊鏈錢包》。
區塊鏈錢包可以分為熱錢包、冷錢包、托管錢包等不同種類,不同的錢包性質、安全性與易用性不同,其中熱錢包易用性較高,但因為聯網而容易被盜私鑰;冷錢包本質是私鑰存儲工具、安全性較高;托管錢包則私鑰由運營方托管。具體差異,推薦閱讀《區塊鏈數字貨幣錢包分類》。
以太坊錢包客戶端也有很多種,推薦閱讀《6種以太坊(ETH)錢包的基本介紹》:
Ethereum 官方錢包:瀏覽器 Mist。Mist是一個全節點錢包(全節點錢包通俗的來說就是同步了全部的以太坊區塊信息的錢包)。也就是說打開錢包后,電腦會自動同步全部的以太坊區塊信息。優勢是安全度高,不需要經過第三方發起交易,節點未同步完成之前無法查看地址余額;劣勢是無法調整Gas 價格,對網絡要求高,需要連接全節點,才能發起交易。
Parity 錢包:原以太坊基金會部分成員開發的錢包。功能強大,也是一個全節點錢包。優勢是安全度高,不需要經過第三方發起交易;劣勢是對網絡要求高,需要連接節點才能發起交易。
imToken:移動端錢包,操作簡便,在imToken上生成的錢包私鑰保存在手機本地,平臺方并無備份。
請注意:這里我們需要辨析一點,節點、錢包、瀏覽器三者并未完全沖突的,成為節點可以說是做區塊瀏覽器基礎。就拿Mist來說,它是一個瀏覽器,因為它要查詢數據,因此是構建在一個全節點上的;但與此同時,它也有管理功能,可以管理私鑰和公鑰,因此也是一個錢包。當然,并非所有的錢包都要求是全節點。
主網與測試網
以太坊一直以來有兩種網絡——主網以及測試網。主網,通常是所有客戶端的默認網絡;所謂的測試網是用來模擬主網的行為,功效與主網相同,因此開發者可以在測試網上開發和測試自己的智能合約、發幣等等,作為上鏈前的環境評估。反之,當主網對以太坊協議進行任何重大改變時,其測試主要在這些測試網絡上完成。
最常用的3種測試網分別是 Ropsten、Kovan、Rinkeby。
Ropsten:只支持 geth 客戶端,一個 POW 的區塊鏈,非常類似于以太坊主網,但由于低計算量,容易遭到 DDOS 攻擊。過去受到垃圾攻擊,問題較多。
Kovan:只支持 Parity 客戶端;一個 POA 的區塊鏈,不能挖礦。
Rinkeby:支持 geth和Parity 客戶端;一個POA的區塊鏈,不能挖礦。盡管計算量低,但是對惡意行為者更有彈性。
對于開發中的測試環境,建議使用 Rinkeby 或 KoVan 測試鏈。這是因為他們使用的工作量證明POA共識機制,確保交易和塊能夠一致并及時的創建。
關于主網與測試網的更多內容,推薦閱讀《以太坊測試網絡testNet匯總》。
如果想要搭建自己的測試網絡,推薦使用 kubernetes或者docker-compose,具體搭建過程可以參考《接入以太坊(Ethereum)測試網絡》。
四、以太坊挖礦
挖礦
上文已經提到,代幣獲得一個重要途徑就是挖礦。”挖礦”實際上是一個增加貨幣供應量的過程。關于什么是挖礦,可以閱讀Odaily星球日報的專欄《數字貨幣中的挖礦是什么?》
挖礦本質是在爭奪記賬權,獲得某輪記賬權礦工會獲得:區塊獎勵,包含3個以太幣(君士坦丁堡硬分叉后將降為兩個);區塊鏈中交易發起人所支付的 gas 費 ;作為被引用叔塊的區塊,可以獲得挖礦報酬的1/32。
由于以太坊采用 PoW (工作量證明)共識機制,計算(其實就是亂猜)出特定隨機數的礦工可獲得本輪記賬權,理論上算力越大獲得記賬權的可能性越高,因為每秒可以計算(猜)的次數更多。難度動態調整的方式是每 15 秒整個網絡會產生一個區塊。
以太坊在很多方面與比特幣類似,但也有些不同——以太坊區塊不僅包含交易列表也包含最近狀態,除此之外,區塊數和難度也儲存在區塊中。
以太坊使用的 PoW 算法叫Ethash(Dagger-Hashimoto算法的改良版本),Ethash的工作量證明是內存難解的,這使它能抵抗ASIC。
Gas
在以太坊上執行的每個計算步驟都需要花錢,這里的錢就是 gas。Gas 的設計目的一是為了避免繁瑣的操作占用較多的有限資源,堵塞網絡;二是為了避免整個網絡遭受惡意攻擊;三是為了讓記賬礦工獲得一定的收益。
Gas的價格由市場決定,類似于比特幣的交易費機制。如果你的gas價格高,節點則將優先打包你的交易。
在這里,gas 費用其實是由兩部分相乘得來:Gas price* Gas。這里的 Gas price 可選范圍為 1 到 60 GWei,數額越大,交易處理速度越快;Gas 的可選范圍是 800 萬以上,如果數額較小,就會造成 gas 費用太小,因而不會被礦工打包。
(數據來自etherchain.org)
總體而言,以太坊上“計算和存儲”比在傳統環境中做的更為昂貴;在以太坊網絡上“讀取狀態”是免費的,只有“寫入狀態”是收費的。關于Gas,要想了解更多,推薦閱讀《計算以太坊合約成本》。
叔塊
在比特幣協議中,如果一個塊不是最長鏈的一部分,那么它被稱為是“孤塊”。它也是合法的,但是發現得稍晚,或者是網絡傳輸稍慢,而沒有能成為最長的鏈的一部分。在比特幣中,孤塊沒有意義,隨后將被拋棄,發現這個孤塊的礦工也拿不到采礦相關的獎勵。
但 Ethereum的 GHOST 協議,不認為孤塊沒有價值,而是會給與發現孤塊的礦工以回報。在以太坊中,孤塊被稱為“叔塊”(uncle block),它們可以為主鏈的安全作出貢獻。
通過鼓勵引用叔塊,使引用主鏈獲得更多的安全保證(因為孤塊本身也是合法的) ;給與叔塊報酬,可以一定程度上緩解采礦中心化(礦池集中化)的問題。
關于叔塊的更多內容,可以閱讀《以太坊中的叔塊(uncle block)》以及《以太坊叔塊相關技術解析》。
礦機與礦池
在以太坊早期,可以用電腦的中央處理器(CPU)挖以太幣,但自從顯卡(GPU)礦工的效率高出兩個數量級,CPU就不再盈利了。
后來出現了專門只用于數字貨幣挖礦的計算機,被稱為“礦機“。
以太坊目前挖礦使用顯卡挖礦,可選顯卡是 AMD 顯卡(簡稱“A卡”)或者 NVIDIA 顯卡(簡稱“N卡”)——N卡常見選項是 GTX 1060、GTX 960、GTX 950、GTX 750 Ti等型號。
想要自己嘗試挖礦的讀者,推薦閱讀《以太坊新手挖礦指南》。
顯卡挖礦采用的 Ethash 算法曾被廣泛認為是“抗ASIC”的,然而去年 4 月 4 日,比特大陸在 Twitter 上宣布正式發布適用于以太坊挖礦的 ASIC 礦機 Antminer E3,旨在打破以太坊本身設計中“抗 ASIC”的挖礦算法( EtHash 算法 )。
不過,以太坊社區開發者們也并沒有善罷甘休,他們不斷提出新的方案,想以此抵抗來自比特大陸的侵染。據 Cointelegraph1 月 5 日報道,以太坊核心開發人員已經就實現一種新的工作量證明(Prog-PoW)算法達成初步共識,該算法不僅可以增加ASIC礦機的挖礦“難度”,而且還可以穩定哈希速率,提高基于GPU(而不是基于ASIC)的網絡挖礦效率。
不過目前,社區關于是否采用 Prog-PoW 以及何時采用尚未達成一致意見,在今年 2 月 1 日的公開電話會議上,以太坊開發人員決定推遲提交ProgPow升級代碼,轉而繼續進行審計。
如果你想關注最新消息,可以加入以太坊群組ProgPoW參與討論。
挖礦的另一個維度則是礦池壟斷算力。根據 etherchain.org數據,以太坊礦池算力占比目前排名是:Ethermine(30.37%)、SparkPool(16.24%)、NanoPool(15.51%)、F2Pool(12.37%),并且在過去 30 天乃至往前追溯半年,這個排名一直如此。
此對于散戶而言,由于算力并不占優,出塊的幸運值不高,很難挖到區塊,因此不得不加入礦池,手續費大概在 1% 到 5%。
查詢工具
查詢挖礦收益可以參考網上的魚池熱門礦機頁面或挖幣網數據;
查詢關于以太坊的算力、挖礦難度、出塊數等各種數據,可使用各家以太坊區塊鏈瀏覽器,除了基礎數據,關于歷史數據會用圖表展現,適合各類統計,比如 etherscan和etherchain;
此外,BTC.com旗下的瀏覽器也可以查詢以太坊相關情況。
五、智能合約與DApp開發
智能合約
以太坊上的程序稱之為智能合約,它是代碼和數據的集合。智能合約可以理解為在區塊鏈上可以自動執行的、以代碼形式編寫的合同。很多博彩類區塊鏈游戲就宣稱自己使用了智能合約,可以自動賠付,不會有莊家操盤。推薦閱讀Odaily星球日報專欄《智能合約是如何工作的?》以及《什么情況下智能合約應用案例難以實現?》
(1)編程
智能合約官方推薦的編程語言是 Solidity,文件擴展名以 .SOL 結尾。Solidity 語言和 JavaScript 很相似,可以用它來開發合約并編譯成以太坊虛擬機字節代碼。
關于Solidity 語言開發,以太坊官方準備了下面的工具:
Solidity Documentation
· Solidity在線實時編譯器
· 標準合約API
· Useful Dapp Patterns
(2)運行
EVM(Ethereum Virtual Machine)——以太坊虛擬機是以太坊上智能合約的運行環境。EVM 運行在以太坊節點上,把合約部署到以太坊網絡上,合約就可以在以太坊網絡中運行了。
虛擬機、智能合約和智能合約語言之間的關系,感興趣的讀者可以閱讀《一文看懂區塊鏈虛擬機》。
以太坊虛擬機上運行的是合約的字節碼形式,需要我們在部署之前先對合約進行編譯,可以選擇 Browser-Solidity Web IDE或solc 編譯器。
在以太坊上開發應用時,常常要使用到以太坊客戶端(錢包)——使用錢包是用來管理代幣的,這里有一個完整的 以太坊客戶端列表。
Geth 是開發以太坊時最常使用的客戶端,基于 Go 語言開發;另一個最常使用的是Parity,基于 Rust 開發。
(3)部署
智能合約的部署是指把合約字節碼發布到區塊鏈上,并使用一個特定的地址來標示這個合約,這個地址稱為合約賬戶。
合約部署之后,當需要調用這個智能合約時,只需要向這個合約賬戶發送消息(即交易)即可;通過消息觸發后,智能合約的代碼就會在EVM 中執行。
具體操作細節,推薦閱讀《以太坊是什么 – 以太坊開發入門指南》,另外推薦以太坊開發者網站ethdev以及remix,他們提供基本的編譯、測試網絡、執行合約。
如果你想參考以太坊上已經開發的項目,可以登陸 Ethereum·Github。
DApp
去中心化應用程序(DApp)與傳統 APP 一樣,都是提供一種服務,實現用戶和提供商之間的直接交互。但區塊鏈 DApp 擁有一些智能合約組合,這些合約組合可以實現 DApp 特定的功能。
去年下半年,區塊鏈 DApp 被抬上風口,不少人認為它可以改變傳統的中心化 App 所固有的問題(不透明、缺乏隱私等),然而目前 DApp 應用最廣泛還是博彩類,游戲類次之。根據 Dapprader數據,以太坊 DApp 應用最高日活不超過 1500人。推薦閱讀《什么是dapp?》
(1)查詢
您可以使用下列這些 DApp 查詢工具:
· dappradar與dapp.review:除了查看以太坊,還可以查看EOS及Tron 鏈上dapp;
· Mist:以太坊官方的 DApp 瀏覽器。
· Status:手機上可以使用的 DApp 瀏覽器。
· MetaMask:Google瀏覽器擴展,把 Chrome 變成了一個 DApp 瀏覽器。可以管理你的錢包,以及連接到不同的以太坊網絡,包括本地的開發網絡。
· Parity:以太坊客戶端,也是一個 DApp 瀏覽器。
(2)開發
如果想要開發一個Dapp,怎么操作?首先,Dapp 開發需要了解 Web3 Javascript API、 Solidity 等編程語言,如下所示:
· Web3 JavaScript API- 當您想要與以太坊節點交互時,這是主要的 JavaScript SDK;
· Solidity Docs- Solidity是以太坊開發使用的智能合約語言,它為EVM(以太坊虛擬機)提供編譯操作碼;
· Solium- 嚴格遵守官方Solidity Style Guide制定規則的開發器;
· 測試網絡- 測試網絡可幫助開發人員開發和測試以太坊代碼以及進行網絡交互;
· Dapp開發資源-有助于開發、調試和部署以太坊應用程序,具體包括:智能合約ELI5、101 noob編寫智能合約的介紹、標準化合約API列表。
關于dapp開發,也有一些教程,可供參考:
· 關于ethereum.org Dapp教程
· Dapps初學者教程系列
· Solidity教程系列
· 高級Solidity教程
· A contract packager for Ethereum and Javascript (formerly ether-pudding)
六、以太坊的發展現狀
以太坊路線圖
根據以太坊創始者 Vitalik 及 Gavin Wood 的規劃,以太坊的發展被分為 4 個階段:Frontier (前沿)、Homestead (家園)、Metropolis (大都會)和 Serenity (寧靜)。
以太坊路線圖如下:
Frontier (2015.7-2016.3):以太坊發布測試版(非正式版),供開發者學習、試驗并開始建立以太坊去中心化的應用和工具;
Homestead (2016.3-2017.10):以太坊發布正式版本,普通用戶也可挖礦,中間經歷了 4 次硬分叉,分叉出ETC;
Metropolis (2017.10-現在):由 PoW 向 PoS 過渡,中間經歷兩次硬分叉——拜占庭與君士坦丁堡硬分叉;
Serenity (待定):成為真正主流區塊鏈,升級為 ETH 2.0。
目前,以太坊尚處于 Metropolis (大都會)階段,并且君士坦丁堡硬分叉還被推遲到 2019 年 2 月 27 日。關于 Serenity 階段更多細節,推薦閱讀 Vitalik 的《以太坊 Serenity 設計依據綜述》。
關于以太坊發展歷史的更多細節,推薦閱讀《以太坊發展歷史回顧》、《一篇文章帶你了解以太坊的前世今生》以及《以太坊五年》。
擴容問題
以太坊至今仍處于成長初期,面臨諸多問題——包括共識機制、吞吐量等問題,推薦閱讀《以太坊的發展去向深度分析》。
對此,包括 Vitalik 在內的眾多開發人員清楚認識到這一點,他們提出了一些基于“鏈下(off-chain)” 和 “第二層(Layer 2)” 的擴容解決方案——致力于構建基礎架構和擴展以太坊性能——通常被稱為擴展方案(scaling solutions) ,包括狀態通道(state channels)、分片(sharding) 、子鏈/側鏈方案 Plasma 和 Truebit。Vitalik 更是宣稱 Plasma 和 sharding 可能會產生一種協同效應,使得以太坊處理速度達到 100 萬 TPS。
狀態通道(state channels):設計者希望通過“把很多處理流程轉移到鏈下”,來提高區塊鏈的使用效率,降低手續費,增加隱私的同時又能保留區塊鏈可信賴的特性。狀態通道是支付通道泛化出來的形式,但不僅限于支付,還可用于區塊鏈上任意的“狀態更新”,比如智能合約中的更改。
分片(sharding):將以太坊網絡的整個狀態分割成一系列被稱為分片的分區,其中包含自己獨立的狀態片及交易歷史記錄。在這種系統中,特定的節點只為特定的分片處理交易,從而允許在所有分片中處理的交易吞吐量比在單個分片中處理所有交易(像現在的主鏈一樣)要高得多。
Plasma:和狀態通道一樣,Plasma 也是一種用于管理鏈下交易的技術,同時依靠底層的以太坊區塊鏈來實現其安全性。但是 Plasma 采用了一種新思路,它是通過創建依附于“主”以太坊區塊鏈的“子”區塊鏈。這些子鏈又可以循序產生它們自己的子鏈,并能依次循環往復。
Truebit:Truebit 是一種幫助以太坊在鏈下進行繁重或者復雜運算的技術。它可以讓基于以太坊的應用程序處理更復雜的事務并仍能被主鏈驗證,對于提高以太坊區塊鏈的總交易通量更有效,這使得它與狀態通道和 Plasma 不一樣。
更多詳細內容,推薦閱讀《以太坊第2層擴容方案》、《什么是狀態通道》、《V 神:以太坊上的分片》、《如何擴展以太坊:分片原理解釋》、《以太坊分片:overview and finality》、《以太坊 Plasma 解說》以及《Truebit × 管理未來》。
ETH2.0
以上方案計劃在 ETH 2.0 實現,目前以太坊研究團隊提出了關于以太坊2.0 的一些計劃和設想。如果您希望詳細了解,可以閱讀 Odaliy星球日報編譯的《以太坊2.0是什么?分成幾個階段?》以及Vitalik 的《ETH 2.0 》。根據文章,各階段大致為:
階段 0 引入信標鏈( The Beacon Chain):這條鏈承擔的其中一個職能是讓驗證者可以參與質押系統、替代礦工的角色而成為鏈的構建者。另一個職能是存儲分片狀態的索引。對信標鏈的詳細介紹可閱讀《以太坊2.0協議核心Beacon鏈詳解》;
階段0 入股:信標鏈以及每一條分片鏈將使用 Casper FFG 來完成出塊。FFG 是一種權益證明算法(Proof of Stake),用于對鏈上不良行為實施罰沒(即削減權益);
階段 1 分片:旨在就分片鏈的內容達成共識,并非對其意義達成共識。換言之,這是一次對分片結構的“試運行”,而不是嘗試使用分片進行擴容(Scale)。信標鏈將分片鏈視為沒有結構或意義簡單的位(Bit)集合。分片鏈尚未擁有賬戶、資產或智能合約。
階段 2 智能合約:熟悉的以太坊系統開始回歸。此時,新的以太幣 BETH 可實現轉讓,并且將重新引入智能合約。每個分片將基于 eWASM(我們稱之為“EVM2”)管理一個虛擬機。
階段 3 鏈下狀態存儲:盡可能減少鏈上狀態,鏈上存儲時并不用存儲整個狀態,用戶將負責在鏈下存儲完整的狀態。EVM2 將支持我們熟悉的賬戶、合約、狀態以及其他抽象內容。
階段 4 分片智能合約:希望實現跨片通訊,但是存在很多尚待解決的困難,具體可看文章。
值得注意的是,2019 年 1 月 31 日,以太坊發布了向以太坊 2.0 網絡演進的第0階段第一個預發布版。
另外,核心開發者 Ben Edgington 每周會發布關于 Eth 2.0 信標鏈(Beacon)第 0 階段規范的更新,值得關注一下。
以上關于以太坊研究研究進展的最新情況,均可以在下文的社群中獲得最新消息,可以密切關注。
七、以太坊社區治理:基金會、社區、貢獻者介紹
以太坊基金會
2014 年 6 月,以太坊基金會瑞士注冊成立,是一家非營利性機構, 旨在管理以太幣銷售中籌措的基金,以更好地為以太坊和去中心化技術生態系統服務。它主要但并非唯一的重心是促進以太坊協議和相關技術的開發, 以及扶持使用以太坊技術及協議的應用。
以太坊基金會的官方溝通通常在 以太坊博客上以發帖形式呈現——有些帖子是技術性的、有些是組織性的、有些是個人的,所有博客帖子都在Twitter和Reddit上公開 。
另外,基金會還會在 Youtube頻道上主持一些開發者會議,比如1月18日晚上關于延遲君士坦丁堡分叉的核心開發者電話會議。
相關入口總結:官網網站(主要入口);社區;博客;推特;Youtube;Facebook(不怎么更新);電子郵件(很慢,但很有用,緊急情況可以發郵件)。
社區
以太坊 reddit論壇是最全面的以太坊論壇,很多討論都是在這里完成的,其中的核心開發者也很活躍。但這里很難獲得實際幫助和答案,建議大家選擇Gitter Rooms和Stack Exchange。
Stack Exchange上采用問答形式,一人發帖,其他人踴躍留言,用戶活躍度較高。
Gitter 是 Github 旗下的聊天軟件,使用 Github 帳戶登陸。它以太坊日常聊天的首選論壇,里面有很多的核心開發者,能夠立刻獲得想要的答案。開發者們通常在Gitter 上聊天協作,然后在Github上提交代碼。
另外 Gitter 不同的房間有不同的主題,最核心的是AllCoreDevs房間,這里聚集了幾乎全部的以太坊開發者。
相關的 Gitter 房間總結:
go-ethereum—— 關于geth(與go實現相關的工具)
cpp-ethereum—— 關于eth(與C 實現相關的工具)
web3.js—— 關于web3.js(以太坊Java描述語言用戶操作界面庫)
Solidity—— Solidity合約相關編程語言
serpent—— 用于合約開發的Serpent語言
mist —— GUI 資料獲取和處理方式瀏覽器,官方錢包應用
light-client —— 關于light客戶端和LES協議
research —— 以太坊研究
governance—— 關于開發者管理
whisper—— 匿名數據電報發表
swarm —— 去中心化的內容存儲和分配網絡
EIPs —— 以太坊改進協議(EIPs)討論
ethereumjs-lib —— 以太坊核心功能的Java描述語言庫
devp2p —— DΞV’s點對點網絡協議及框架
以太坊改進提案(EIPs)
以太坊改進協議計劃(EIPS)旨在成為協調協議改進的框架和非正式商業流程。人們會首先向以太坊EIP資源庫提出想法作為一個問題或pull請求。經過基本的過濾,提議會收到一個數字并以草稿的形式發布。必須經過社區一致同意,以太坊改進協議才能變成活躍狀態。從提出改變到最終的同意,取決于以太坊用戶的共識。對于以太坊改進協議的討論,可進入 gitter 關于以太坊改進協議的頻道。
EIP 指南和 EIP 示例
EIP 模板
EIP 存儲庫和 README
用于 EIP 討論的 gitter 頻道
Meetups
以太坊的 Meetups 分布在世界各地,他們通常會舉辦線下見面會,討論技術以及行業發展,抱團取暖。
Meetup 線下見面會資源表
以太坊論壇上的Meetup頻道
貢獻者
以太坊作為開源項目,得到了眾多開發者的支持,以太坊社群也給出一份貢獻者名單,如果你對這些人感興趣,可以去私聊。篇幅有限,以下簡單列出幾個人:
Ricardo de Azevedo BranDAO
Santanu Barai
Brooks Boyd
RJ Catalano
Joseph Chow
Keri Clowes
Fran?ois Deppierraz
Bertie Dinneen
Gregg Dourgarian
Raghav Dua
八、其他
以太坊有一些信息網站,感興趣的可以關注一下:
以太坊創始人&靈魂 vitalik個人網站:http://about.me/vitalik_buterin
以太坊前 CTO Gavin Wood 個人網站:http://gavwood.com/
以太坊智能合約之父 Nick Szabo 個人網站:szabo.best.vwh.net
以太坊大事年表:http://ethereumtimeline.org/
以太坊愛好者:https://ethfans.org/;
以太坊世界新聞網:https://ethereumworldnews.com/category/news/ethereum-news/;
以太坊每周周報:http://www.weekinethereum.com/。
3鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。