ETH原創文章
A. 【ETH錢包開發03】web3j轉賬ETH
在之前的文章中,講解了創建、導出、導入錢包。
【ETH錢包開發01】創建、導出錢包
【ETH錢包開發02】導入錢包
本文主要講解以太坊轉賬相關的一些知識。交易分為ETH轉賬和ERC-20 Token轉賬,本篇先講一下ETH轉賬。
1、解鎖賬戶發起交易。錢包keyStore文件保存在geth節點上,用戶發起交易需要解鎖賬戶,適用於中心化的交易所。
2、錢包文件離線簽名發起交易。錢包keyStore文件保存在本地,用戶使用密碼+keystore的方式做離線交易簽名來發起交易,適用於dapp,比如錢包。
本文主要講一下第二種方式,也就是錢包離線簽名轉賬的方式。
交易流程
1、通過keystore載入轉賬所需的憑證Credentials
2、創建一筆交易RawTransaction
3、使用Credentials對象對交易簽名
4、發起交易
注意以下幾點:
1、Credentials
這里,我是通過獲取私鑰的方式來載入 Credentials
還有另外一種方式,通過密碼+錢包文件keystore方式來載入 Credentials
2、nonce
nonce是指發起交易的賬戶下的交易筆數,每一個賬戶nonce都是從0開始,當nonce為0的交易處理完之後,才會處理nonce為1的交易,並依次加1的交易才會被處理。
可以通過 eth_gettransactioncount 獲取nonce
3、gasPrice和gasLimit
交易手續費由gasPrice 和gasLimit來決定,實際花費的交易手續費是 gasUsed * gasPrice 。所有這兩個值你可以自定義,也可以使用系統參數獲取當前兩個值
關於 gas ,你可以參考我之前的一篇文章。
以太坊(ETH)GAS詳解
gasPrice和gasLimit影響的是轉賬的速度,如果gas過低,礦工會最後才打包你的交易。在app中,通常給定一個默認值,並且允許用戶自己選擇手續費。
如果不需要自定義的話,還有一種方式來獲取。獲取以太坊網路最新一筆交易的 gasPrice ,轉賬的話, gasLimit 一般設置為21000就可以了。
Web3j還提供另外一種簡單的方式來轉賬以太幣,這種方式的好處是不需要管理nonce,不需要設置gasPrice和gasLimit,會自動獲取最新一筆交易的gasPrice,gasLimit 為21000(轉賬一般設置成這個值就夠用了)。
這個問題,我想是很多朋友所關心的吧。但是到目前為止,我還沒有看到有講解這方面的博客。
之前問過一些朋友,他們說可以通過區塊號、區塊哈希來判斷,也可以通過Receipt日誌來判斷。但是經過我的一番嘗試,只有 BlockHash 是可行的,在web3j中根據 blocknumber 和 transactionReceipt 都會報空指針異常。
原因大致是這樣的:在發起一筆交易之後,會返回 txHash ,然後我們可以根據這個 txHash 去查詢這筆交易相關的信息。但是剛發起交易的時候,由於手續費問題或者乙太網絡擁堵問題,會導致你的這筆交易還沒有被礦工打包進區塊,因此一開始是查不到的,通常需要幾十秒甚至更長的時間才能獲取到結果。我目前的解決方案是輪詢的去刷 BlockHash ,一開始的時候 BlockHash 的值為0x00000000000,等到打包成功的時候就不再是0了。
這里我使用的是rxjava的方式去輪詢刷的,5s刷新一次。
正常情況下,幾十秒內就可以獲取到區塊信息了。
區塊確認數=當前區塊高度-交易被打包時的區塊高度。
B. 以太坊代幣經濟巨變:從「燃燒銷減」到「三倍減半」
以太坊的倫敦升級於8月4日完成,其中包括了著名的EIP-1559。在EIP-1559推出至今,不到4天,已經燒毀了16,230.38個ETH(截止到寫稿時),價值接近5,000萬美元。當真實的ETH被燒毀時,人們終於感受到EIP-1559的燃燒能量,看到每天都會有大量的ETH被燒掉。
當然,只有EIP-1559無法導致ETH的通縮。當前每天ETH的新增量大約為13,000個,EIP-1559啟動後第一天以太坊燒毀的ETH量為4791.5個。EIP-1559大約使ETH新增率降低30%左右。
藍狐筆記在之前的文章《EIP-1559與以太坊之路》中也提到,未來半年多,以太坊有三件重要的事情,其中影響最大的還是POS的融合,它對以太坊和ETH的影響會遠超EIP-1559,也就是說,EIP-1559隻是拉開大幕,大戲還在路上。PoS的融合會直接改變ETH的性質。
PoS融合才是大戲
減半效應的概念來自於比特幣每四年一次的減半,每次減半導致其新增發行的大幅下降。當新增量下降,而需求量保持不變或者上升時,就會推動價格的上升。關於BTC的減半,可以參考藍狐筆記之前文章《比特幣的減半效應與ETH2.0的質押效應》、《BTC的減半效應:如何計入價格?》
這在比特幣的 歷史 上曾經多次得到證明。如今,以太坊社區中的一部分人也將減半效應概念運用到以太坊上,而且相對於btc的減半來說,是三倍減半。那麼,如何理解以太坊的三倍減半概念?
三倍減半
目前ETH年增發率大約為4%,每年新增大約460萬多個ETH,平均每日新增大約13,000個左右,假設PoS新增發行0.4%(根據質押率會有變化),平均日新增大約13,00多個ETH。也就是說,按照當前每日新增為13,000個ETH,減半之後為6,500個ETH,第二次減半則3,250個ETH,第三次減半為1,625個ETH。從13,000到1,625,一共縮減87.5%,接近於90%的縮減,大約相當於3倍減半。(註:這里的具體數字不是精確數字,根據具體情況,會有一定的上下浮動,主要是為了說明量級)
當每天新增ETH僅為1,625個左右時,即便是如今的日燒毀量也超過這個日新增量,這會導致ETH進入通縮的狀態。
BTC的總量是恆定的,不會通縮。而ETH隨著PoS的到來,有很大概率進入通縮的狀態。這導致ETH會變得越來越稀缺。從這里也可以看出,BTC和ETH經濟機制的不同。
當然,需要著重強調的是,這里無法評判誰的經濟政策更好。如果從長遠生態發展看,不一定通縮就一定是好的,一個越來越稀缺的ETH是否是好事,目前還不能下定論,這個需要辯證來看問題。
不過,僅從供需的市場角度,這會導致對ETH的需求不斷增加,供應的減少會帶來壓力,會導致ETH價值上漲。一個通縮的ETH會面臨越來越大的需求競爭。這個競爭不僅來自於DeFi的鎖定,也來自於PoS的質押需求。
C. 【ETH錢包開發04】web3j轉賬ERC-20 Token
在上一篇文章中講解了ETH轉賬,這一篇講一下ERC-20 Token轉賬。
【ETH錢包開發03】web3j轉賬ETH
1、直接用web3j的API
2、java/Android調用合約的 transfer 方法
不管用哪種方式來轉賬,你都需要先寫一個solidity智能合約文件來創建ERC-20 Token,然後部署合約,最後才是通過客戶端來調用。
注意:erc-20 token轉賬和eth轉賬的區別如下:
1、erc-20 token創建交易對象用的是這個方法 createTransaction
2、erc-20 token需要構建 Function ,它其實對應的就是erc-20 token合約中的那些方法。它的第一個參數就是ERC20中那幾個方法的名稱,第二個參數的話就是對應合約方法中的參數,第三個參數是和第二個參數對應的,按照我那樣就行了。轉賬的話就是 transfer ,我們從合約的 transfer 可以看到第一個參數是收款地址,第二個參數是金額,所以 Function 這里對應起來就好。
這種方法不需要使用web3j封裝的方法,而是直接調用solidity合約的方法。
步驟
1、web3j載入一個已經部署的合約
2、驗證合約是否載入成功 isValid
3、如何載入合約成功,則調用合約的 transfer 方法
注意:
1、這里的 TokenERC20 是根據solidity智能合約生成的對應的Java類,用於java/Android和智能合約交互的,如果你對這里不太清楚,不妨看看我之前的一篇文章。
以太坊Web3j命令行生成Java版本的智能合約
2、如果載入合約失敗,可能的一個原因是合約對應的Java類中的 BINARY 的值不對,這個值是你部署合約成功之後的bytecode,你最好檢查對比一下。
我發送一筆交易,可以通過這個地址查詢
https://rinkeby.etherscan.io/tx/
D. 011:Ethash演算法|《ETH原理與智能合約開發》筆記
待字閨中開發了一門區塊鏈方面的課程:《深入淺出ETH原理與智能合約開發》,馬良老師講授。此文集記錄我的學習筆記。
課程共8節課。其中,前四課講ETH原理,後四課講智能合約。
第四課分為三部分:
這篇文章是第四課第一部分的學習筆記:Ethash演算法。
這節課介紹的是以太坊非常核心的挖礦演算法。
在介紹Ethash演算法之前,先講一些背景知識。其實區塊鏈技術主要是解決一個共識的問題,而共識是一個層次很豐富的概念,這里把范疇縮小,只討論區塊鏈中的共識。
什麼是共識?
在區塊鏈中,共識是指哪個節點有記賬權。網路中有多個節點,理論上都有記賬權,首先面臨的問題就是,到底誰來記帳。另一個問題,交易一定是有順序的,即誰在前,前在後。這樣可以解決雙花問題。區塊鏈中的共識機制就是解決這兩個問題,誰記帳和交易的順序。
什麼是工作量證明演算法
為了決定眾多節點中誰來記帳,可以有多種方案。其中,工作量證明就讓節點去算一個哈希值,滿足難度目標值的勝出。這個過程只能通過枚舉計算,誰算的快,誰獲勝的概率大。收益跟節點的工作量有關,這就是工作量證明演算法。
為什麼要引入工作量證明演算法?
Hash Cash 由Adam Back 在1997年發表,中本聰首次在比特幣中應用來解決共識問題。
它最初用來解決垃圾郵件問題。
其主要設計思想是通過暴力搜索,找到一種Block頭部組合(通過調整nonce)使得嵌套的SHA256單向散列值輸出小於一個特定的值(Target)。
這個演算法是計算密集型演算法,一開始從CPU挖礦,轉而為GPU,轉而為FPGA,轉而為ASIC,從而使得算力變得非常集中。
算力集中就會帶來一個問題,若有一個礦池的算力達到51%,則它就會有作惡的風險。這是比特幣等使用工作量證明演算法的系統的弊端。而以太坊則吸取了這個教訓,進行了一些改進,誕生了Ethash演算法。
Ethash演算法吸取了比特幣的教訓,專門設計了非常不利用計算的模型,它採用了I/O密集的模型,I/O慢,計算再快也沒用。這樣,對專用集成電路則不是那麼有效。
該演算法對GPU友好。一是考慮如果只支持CPU,擔心易被木馬攻擊;二是現在的顯存都很大。
輕型客戶端的演算法不適於挖礦,易於驗證;快速啟動
演算法中,主要依賴於Keccake256 。
數據源除了傳統的Block頭部,還引入了隨機數陣列DAG(有向非循環圖)(Vitalik提出)
種子值很小。根據種子值生成緩存值,緩存層的初始值為16M,每個世代增加128K。
在緩存層之下是礦工使用的數據值,數據層的初始值是1G,每個世代增加8M。整個數據層的大小是128Bytes的素數倍。
框架主要分為兩個部分,一是DAG的生成,二是用Hashimoto來計算最終的結果。
DAG分為三個層次,種子層,緩存層,數據層。三個層次是逐漸增大的。
種子層很小,依賴上個世代的種子層。
緩存層的第一個數據是根據種子層生成的,後面的根據前面的一個來生成,它是一個串列化的過程。其初始大小是16M,每個世代增加128K。每個元素64位元組。
數據層就是要用到的數據,其初始大小1G,現在約2個G,每個元素128位元組。數據層的元素依賴緩存層的256個元素。
整個流程是內存密集型。
首先是頭部信息和隨機數結合在一起,做一個Keccak運算,獲得初始的單向散列值Mix[0],128位元組。然後,通過另外一個函數,映射到DAG上,獲取一個值,再與Mix[0]混合得到Mix[1],如此循環64次,得到Mix[64],128位元組。
接下來經過後處理過程,得到 mix final 值,32位元組。(這個值在前面兩個小節《 009:GHOST協議 》、《 010:搭建測試網路 》都出現過)
再經過計算,得出結果。把它和目標值相比較,小於則挖礦成功。
難度值大,目標值小,就越難(前面需要的 0 越多)。
這個過程也是挖礦難,驗證容易。
為防止礦機,mix function函數也有更新過。
難度公式見課件截圖。
根據上一個區塊的難度,來推算下一個。
從公式看出,難度由三部分組成,首先是上一區塊的難度,然後是線性部分,最後是非線性部分。
非線性部分也叫難度炸彈,在過了一個特定的時間節點後,難度是指數上升。如此設計,其背後的目的是,在以太坊的項目周期中,在大都會版本後的下一個版本中,要轉換共識,由POW變為POW、POS混合型的協議。基金會的意思可能是使得挖礦變得沒意思。
難度曲線圖顯示,2017年10月,難度有一個大的下降,獎勵也由5個變為3個。
本節主要介紹了Ethash演算法,不足之處,請批評指正。
E. 一文了解以太坊礦機及挖礦原理
在以前的文章中,我們分別了解了比特幣挖礦和以太坊挖礦的區別。本文重點介紹以太坊挖礦及礦機部分。
以太坊是一個開源的有智能合約功能的公共區塊鏈平台,通過其專用加密貨幣ETH提供去中心化的以太虛擬機來處理點對點合約。目前ETH的挖礦主要是通過顯卡礦機,所謂顯卡礦機,其實就是類似家用台式機,只不過每台機器裡面有6-10張顯卡,並且沒有顯示器(如圖)。
圖:顯卡礦機
之所以以太坊沒有發展出類似於BTC一樣的ASIC礦機,主要是由於ETH的特殊挖礦機制決定的。
在ETH挖礦過程中,會產生一個DAG文件,該文件需要一直被調用,因此必須有專門的存儲空間放置。這個對於存儲空間的硬性需求會導致即使生產出來了ASIC晶元,也並不能大幅度降低單位算力的成本。簡單來說,就是性價比很差。
以太坊的DAG大小自2016年6月份引入Dagger-Hashimoto 演算法時的1GB開始,以每年約520MB的速度增大到了現在的 3.7G,預計2020年底以太坊的DAG大小將增加至4G。屆時,顯存小於4G的顯卡都將被陸續淘汰。
還需要介紹一點的是,由於顯卡礦機的體積通常是比特幣礦機的2-4倍,而消耗的電力卻只有比特幣礦機的1/2甚至更低,這就導致一般人不願意修建專門的顯卡礦機礦場(因為礦場主要賺取的是電費差價,同樣面積的場地,可以放置的顯卡數量少,消耗的電量更少)。即使有少量的顯卡礦場,收取的電費成本通常也比比特幣礦機礦場的高。
F. ETH測試網的那些事:新手被交智商稅 竟有人買測試幣
隨著一年多的加密的出現牛市,大量的新參與者被添加到塊,潮流鏈同時有很多的機會,但也使圓出現大量新的低水平計劃,這是奇怪,最近有人在網上銷售ethereum測試貨幣,而且真的有很多小白餌,買了很多。進入了解後,很多新手主要不知道區塊鏈,同時相關科普也很少,所以一些信息造成了錯誤的認識,所以我們開展了小白科普,主要介紹了以太坊測試網。
顧名思義,測試網路是正式產品或程序推出前的功能和性能測試過程。不同的公鏈都有自己的測試網路,如比特幣、萊特幣、以太坊等。測試網路一般分為專用測試網和公用測試網。專用測試網路是由我們的區域網或本地機器構建的測試環境。公開測試網路是指所有人都可以訪問的測試網路環境。一般來說,在以太坊Metamask錢包中我們可以看到以太坊公共測試網路主要分為以下幾種類型:
Ropsten:一個POW的區塊鏈,非常類似於目前以太坊主網
Kovan:一個POA的區塊鏈
Rinkeby:一個POA的區塊鏈
Goerli:一個POS的區塊鏈,對標ETH2.0
不同的測試網路除了在區塊模型和共識機制方面有所不同,在軟體客戶端支持的類型和垃圾處理交易機制也有所不同,其他的都是支持使用EVM的虛擬機入口,即如果不是以太通道和底層功能測試或DApp某些性能參數,對於生態項目方面,其他一切都是相同的。
在牛市之前,大多數以太坊DApp開發者實際上使用的是Ropsten測試網路。因為Ropsten測試網路使用POW挖掘,這與我們看到的主要網路挖掘是一樣的,需要特定的圖形卡和其他設備。這部分測試網路的最大特點是網路計算能力低,所以採集成本很低。此外,有了以太坊基金會的資助,公眾其實很容易通過公開渠道免費獲得相應的測試幣。開采方式和其他測試,所以測試的成本,更便宜,無論如何獲得成本,當然,在行業測試網路沒有多少商業價值,同時測試硬幣就沒有價值,是可以免費得到的,人們可以通過測試網路水龍頭免費網站。
進入以太坊2.0時代後,主網的主要流程是信標鏈正式上線,節點對ETH質押進行驗證,節點軟體運行,再將POW鏈轉化為POS鏈。智能合同部署在最初的戰俘網路仍然有效,但采礦方法發生了變化,這個過程使得有必要用不同的機制運行多個測試網路功能上線之前,為了確保正式啟動可以盡可能順利進行。
在主網上,目前進展是以太坊信標鏈上線,POW鏈繼續運行,其他分片鏈尚未運行。目前主流的2.0客戶端測試網路是由Prysmatic Labs發起的Goerli測試網路,該網路自2019年開始運行。用於以太坊2.0的測試網路tapoz自2021年以來一直在運行。其他開放測試碎片鏈仍然沒有公開運行。在以太坊2.0合並後,Goerli測試網現在被稱為以太坊2.0測試網。
由於它是以太坊2.0測試網路,作為區塊鏈技術未來幾年發展的重點,Goerli測試網路實際上相當受歡迎。首先,需要參與測試網路驗證節點的塊生成和運行,所以必須需要32個高爾里測試網路測試幣。Prysmatic Labs之前在其官網提供了32枚Goerli測試幣給有意參與驗證測試節點的運營商領取,完全符合測試節點的要求。
驗證人在獲得32枚測試幣後,需要像當前主網路一樣,將高爾里測試幣調用合同在高爾里測試網路上進行質押,以獲得測試節點運行的資格。然後在伺服器上運行測試網路客戶端軟體,完成後續的測試網路參與過程。測試網路驗證器在完成測試網路驗證節點的建立後,可以嘗試在測試網路驗證器上部署各種智能合約或進行其他測試。
主網路上相應的過程是POW主網路過渡到POS過程,我們稍後將看到。換句話說,如果一個項目想在未來幾年內部署在以太坊上,最接近的測試網路就是Goerli測試網路。當然,由於EVM虛擬機用於合同部署,很多項目仍然會選擇Rinkeby測試網路進行測試。Rinkeby測試網路採用POA共識機制(權威認證),使用驗證器統一賬本狀態。這有效地防止了雙重支出。正因為如此,Rinkeby測試網實際上為開發人員提供了良好的測試網路體驗,也吸引了很多開發人員。
高爾利測試網目前運行的是POS模式,每天也有大量的測試幣產生。然而,由於目前的短缺,一些測試幣水龍頭提供給公眾的測試幣相對較少。從上面可以看出,高爾利測試幣的主要目的是為32個測試幣部署相應的2.0驗證者測試節點。當然,測試節點不會產生實際收入。
此外,高爾里測試幣的主要用戶是DApp生態項目方。隨著以太坊計劃進入2.0階段,一些項目將在Goerli的網路上部署他們的測試dapp,所以實際上在Goerli的測試網路上部署的智能合約並不多。自牛市以來,高爾利測試網也迎來了較為活躍的時期,這部分是由於DApp項目的測試網活動吸引了大量羊毛派對。
簡而言之,在項目正式啟動主網路,DApp開發團隊通常部署在公共測試網路合同,然後讓它公開,以便用戶和一些DApp賞金獵人可以測試,以發現一些錯誤,沒有發現在內部測試,確保項目的安全。
生態項目測試活動一般都有相應的獎金,一些方面的項目在同一時間為了訪問流的應用程序進行壓力測試DApp,公開發表了一些測試活動,比如關注官方 社會 賬戶,然後體驗測試網路,當項目建立正式提供將得到項目刪除令牌。
幾乎零成本,因為這種測試活動,並獲得寶貴的令牌,它吸引了許多普通用戶,同時,使用大量的占「拔毛」,並將使用測試網路將有一個測試的前提eth氣體時,也正因為如此,許多試幣在牛市接受龍頭的情況下大多是乾的(試幣是帶出來的,拿不到試幣),所以存在交易試幣的情況。
對於大多數的貨幣圈很長一段時間對於投資者來說,自然知道測試硬幣都是沒有價值的,所以購買測試硬幣主要是一些黑心商人用小白和新手在以太和以太方方2.0 - 2.0測試這部分細節不了解,加上一些文章測試網路表達不清楚,給新手造成一些誤解。測試貨幣的目的始終是為了測試網路。主要網路啟動後,測試網路仍然存在和發揮測試的作用在隨後的關鍵功能,而不是虛假陳述」測試網路和主要網路合並,並測試貨幣成為主要網路貨幣」說,這些黑色的商人。
G. 12.2比特幣 ETH 馬蹄 行情分析
01島論大勢
比特幣已經成為SEC主席認為的競爭對手
他昨天在DACOM峰會時表示,比特幣是美國因行系統及全球共識的競爭對手,他認為真正的數字或幣不需要去中心化,後來還提到了Defi,說Defi是真正的創新,但如果沒有堅管,行業就無法生存,同時也提到Defi可能涉及法綠風險。總之整體的意思就是,我美國證堅會管不了的行業,就不能發展和生存,感覺對加密行業不受監管這個事情,仍然是敵意滿滿,但這個狀態確實不是短期能夠改善的。
美國支付巨頭Square改名為Block,傑西辭職推特CEO後,果然去大力搞他的支付公司去了,准備大力擁抱區塊鏈技術和加密貨幣,或許會成為這個行業未來最具潛力的巨頭之一。
02龍頭
BTC:長期持有者開始拋售,近一個月賣出了15萬枚BTC,現在階段仍然屬於長期向短期轉化的階段,只要短期投資者能夠接得住,市場未來依舊會出現新的主升浪,當下轉化速度並不高,還屬於早期階段,無礙。
比特幣相對其他市場比較抗跌,仍然處於震盪周期,其他幣賺錢效應不強,市場在GameFi的瘋狂後,需要一段時間的冷靜。
03風險與機遇
ETH:針對ETH一顆紅心兩手准備已經確認,4800成為行情多空分水嶺。我們在熟練掌握了K線的常見技術形態以及支撐阻力的作用後,便可以利用強支撐阻力來進行交易點位的判斷。今天日內ETH的H4級別K線回踩幅度較深,短線跌破了MA18,並且一度瀕臨維加斯通道附近,因此今日主基調不宜繼續看多。我們需要重點觀察H4級別維加斯通道的進一步下探情況。如行情跌破,則ETH底部目標在4000一線附近。多頭因盈虧比以及MA18與發起點維加斯通道疊合太近,交易價值相對偏弱。因此針對ETH今日思路主空頭,等待明確的突破信號。如沒有合適的機會,則靜待後續良機。
LUNA:自從銷毀提案後,挖了個坑就起來了,目前依然處於主升浪,市值超過了共識度極高的SHIB,核心競爭力最終會瓦解不靠譜的共識,長期的勝利者一定屬於那些有價值的東西。
MATIC: Polygon上的日活用戶已經達到以太坊的64%,這是個非常成熟且活躍的生態鏈,未來繼續走出新高的概率依舊不小,持有為主。
以上分析均為島原創,僅供參考,不構成投資建議。
幣市有風險,最好別入市
H. 以太坊2.0未來的發展如何
以太坊 2.0 升級,最核心的是以太坊 2.0 分片和 PoS 共識機制。採用 PoS 共識機制是為了提高以太坊協議的能源效率以及增加以太坊區塊鏈的安全性。以太坊 2.0 分片,使得以太鏈不再需要通過每個節點來處理鏈上的每筆交易。
在分片系統中每個節點只需處理約 1% 的交易或更少,從而極大地提高了區塊鏈的效率。實現ETH2.0以後不僅網路性能得到大幅提升,投資者也可以減少重資產的投入(+slf0037)。共識協議Casper及分片技術落地,對網路的底層協議作出巨大的改變,還進一步推動了區塊鏈擴容技術向前發展,不斷達到商用的標准。截至2021年1月7日16時已經有超過230萬個ETH被鎖定在該網路中,占以太坊總供應量的2%。然而,這仍然只是更新的第一階段。據官方消息,Uniswap v3已部署到以太坊主網。根據官方文章,Uniswap v3是該協議迄今為止功能最強大的版本,集中式流動性為流動性提供者提供了空前的資本效率,為交易者提供了更好的執行力,以及去中心化金融的核心基礎設施。就以太坊路線圖而言,V神表示,隨著合並日期的臨近,路線圖的許多方面越來越變得切實可行,樂觀估計今年年底可以完成升級,在合並後,執行鏈會在共識鏈內部運行,每個信標鏈區塊會包括一個來自執行鏈的區塊。他還表示,合並需要許多復雜技術,目的是讓整個過程盡可能簡單,對於用戶、客戶端、開發者、智能合約來說,合並會更加順暢,用戶無需過多擔心。目前許多中心化交易所、去中心化交易所、去中心化質押協議和基礎服務商都進入了以太坊2.0的Staking賽道。不難想像之後會有更多的服務商涌現,而以太坊2.0 Staking板塊也將會成為交易所和錢包的標配。那麼 ETH 1.0 的 PoW 鏈,究竟還能挖多久?目前並沒有一個明確的答案。但可以確定的是,在以太坊由 PoW 徹底轉變為 PoS 之前,以太坊基金會必須用足夠長的時間來向大家證明 PoS 鏈是安全的。這樣才能讓所有開發者和用戶放心的完成切換,從而使整個價值超過 1000 億美金的生態體系真正的、完全的運行在信標鏈上。
沒有人知道完成工程的推進,需要花多長時間,這是個很大的未知數,並且這些未知數可能是以太坊 2.0 轉換的很大阻力。因此,我們樂觀估計 PoW 鏈至少還可以持續挖兩到三年。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
I. 【Discover ETH】什麼是權益證明PoS
本篇作為Discover系列文章的開篇,結合ETH2.0的目標,來談談權益證明PoS是什麼。
在談PoS之前,我們先來了解一下共識。共識,即達成了普遍協議。區塊鏈實質上是一個全球性的狀態機,達成共識意味著網路上至少有超過一半(51%)的節點同意網路的下一個全球狀態。
共識機制 (也稱為共識協議或共識演算法)允許分布式系統(計算機網路)協同工作並保持安全。當前主流的共識機制有兩種,分別是 工作量證明 (Proof of Work,PoW)和 權益證明 (Proof of Stake,PoS)。以太坊在設計之初就希望最終以太坊的共識機制能轉變為PoS,而PoW只作為一個過渡階段。但無論是PoW還是PoS,最終的目的都是相同的,即實現分布式計算機的共識機制。下面先簡單了解工作量證明(PoW)的工作機制。
工作量證明通過礦工們完成,礦工們需要競爭創建最新區塊以處理和完成交易。 獲勝者將與網路中的其他節點分享最新區塊,並且獲得最新的特定代幣區塊獎勵(如以太坊的以太幣)。由於用戶需要擁有超過網路中 51% 的算力才能夠欺騙整條鏈,因此網路安全得以保證。 這將需要巨大的設備和能源投入,所需的開支甚至可能超過收益。
工作量證明是08年在中本聰所創造的比特幣中提出的,至今已經經過了充分的考驗和測試,但隨著越來越多的礦工和礦池的加入,挖掘新的區塊的難度指數爆發式上升,也面臨的如下的問題:
PoS作為ETH2.0關鍵的建設目標,其作用不僅僅只是因為PoW帶來的環境不友好的能源消耗,還有PoS的建設能更有力支持 分片鏈 (以太坊網路擴展的關鍵升級),更強的去中心化特性等等。下面從幾個方面來簡單談談權益證明PoS的工作過程。
在以太坊中,工作量證明的過程參與的角色是礦工/礦池。其目的是通過算力試錯來反復計算,以此生成一個低於目標隨機數的混合哈希。這個計算難度依賴於區塊所聲明的 難度 ,難度越小,有效的哈希值的集合就越小。而在權益證明中,則沒有礦工這一角色,與之對應的是稱之為 驗證者 的角色。
在ETH2.0中,用戶需要質押 32ETH 來獲得作為驗證者的資格。驗證者被 信標鏈 隨機選擇去創建區塊,並且負責檢查和確認那些不是由他們創造的區塊。他們不需要開采區塊,他們只需要在被選中的時候創建區塊並且在沒有被選中的時候驗證他人提交的區塊。此驗證被稱為證明。
驗證者因提出新區塊和證明他們已經看到的區塊而獲得獎勵,對於一些惡意驗證者節點,也會有相應的懲罰機制使之失去質押。驗證者質押的ETH越多,獲得的獎勵也越多。可以這樣說,權益證明是一種用於激勵驗證者接受更多質押的機制。
前面提到了 分片鏈 這個名詞, 分片 就是將區塊鏈分成多條鏈。驗證者將會在不同的分片上處理它們的分片數據,以此來提高區塊鏈的工作效率。ETH2.0預計會有64個分片鏈。
驗證者會被隨機洗牌到不同的分片中,以防止驗證者惡意操縱節點並提高鏈的安全性。處理不同分片之間的數據的關鍵角色就是 信標鏈 (Beacon Chain)。
信標鏈 是協調分片信息、管理驗證者的連接不同分片的橋梁。
當用戶在分片上提交交易時, 驗證者 將負責將用戶的交易添加到分片區塊中。 信標鏈 通過演算法選擇驗證器以提出新的塊。如果一個驗證者沒有被選中提出一個新的分塊,它們將會證明另一個驗證者的提議,並確認一切都正常。
至少需要 128 個被稱為 委員會 ( committee )的驗證者來證明每個分片塊。委員會有一個提出和驗證分片區塊的時限,這個時限被稱為 插槽 ( Slot ),大約為12秒。 每個插槽只能創建一個有效區塊,一個 周期 ( Epoch ,大約6.4分鍾)有 32 個插槽。
每個周期過後,委員會都由不同的、隨機的參與者解散與重組,重組過程由一個半隨機演算法 RANDAO 來選擇,以此避免惡意節點的操縱。
ETH2.0使用 Cassper 終局協議來確認一個新的區塊是否得到足夠的證明,即只要2/3的插槽同意(即當前參與計算的2/3的驗證者節點),該區塊就會被最終確定。而推薦此區塊的驗證者將獲得獎勵。因此,在權益證明的機制下,每過6.4分鍾就會創建一個新的區塊。關於Cassper協議的詳細說明後續再進行探索。
權益證明的建設以太坊在15年就已經提出,截止至今也才完成了Phase 0信標鏈的建設。而下一階段的與主網合並,再下一階段的分片鏈建設也一再推遲。雖然PoS的建設非常緩慢,但無論如何,權益證明作為主流的共識機制演算法之一,也是值得我們探討其設計原理。
後續將會針對信標鏈的詳細設計、分片等ETH2.0內容進行探索。