- 區塊鏈原理、架構與應用(第2版)
- 魏翼飛編著
- 1383字
- 2023-08-31 20:08:51
1.2.2 以太幣
2013年末,Vitalik Buterin受比特幣啟發后開發了以太坊,以太坊和比特幣有著相似的運行交易機制,但是以太坊最大的優勢是加入了部署智能合約功能,每個人可以根據需求發布自己的智能合約。以太坊(Ethereum)的上層貨幣就叫作以太幣,2014年7月24日起,以太坊進行了為期42天的以太幣預售,2016年初,以太坊的技術得到市場認可,價格開始暴漲,吸引了大量開發者以外的人進入以太坊的世界。中國三大比特幣交易所之二的火幣網及OKCoin幣行都于2017年5月31日正式上線以太坊交易。以太幣目前的市值僅次于比特幣,是市值第二高的數字貨幣。
以太坊是下一代的加密貨幣與去中心化應用平臺,是針對比特幣應用的局限性而設計的更高級的區塊鏈應用。以太坊的核心是以太坊虛擬機(EVM),通過以太坊虛擬機可以執行用戶創建的復雜操作。在計算機科學術語中,以太坊是“圖靈完備的”,用戶可以通過現有的編程語言模型進行開發。在以太坊上部署的去中心化應用(DApp)是由一個或者多個智能合約創建的,一般使用Solidity、LLL和Serpent編程語言編寫智能合約,其中Solidity最受歡迎。和比特幣最大的不同是在以太坊中除了一般的用戶外還存在合約用戶,無論一般用戶還是合約用戶實際上都是一串40個字符的字節串,交易的過程與比特幣類似,是由一個賬戶向另一個賬戶或者一個合約轉以太幣、調用合約方法或部署一個新合約。
要創建以太坊賬戶,只需要一個非對稱加密密鑰對——由不同的算法生成。以太坊使用橢圓曲線加密算法(ECC),ECC有多個參數用來調節速度和安全性,以太坊使用secp256k1參數。深入學習ECC需要一定的數學知識,而使用以太坊創建DApp不需要深入理解ECC及其參數。以太坊私鑰/公鑰是一個256位數。因為處理器不能表達這么大的數,所以它被編譯成長度為64的十六進制字符串。每個賬戶用一個地址表示。有了密鑰之后,就需要生成地址。從公鑰生成地址的過程如下:
(1)生成公鑰的keccak-256哈希,它將給出一個256位(bits)的數字。
(2)丟棄前面的96位(12字節),得到160位(20字節)二進制數據。
(3)把160位二進制數據編譯成十六進制的字符串,得到一個40字符的字符串,這就是賬戶地址。
有了賬戶地址,任何人都可以發送以太幣到這個地址。以太坊網絡中的每筆交易都需要支付一定的手續費(gas)給礦工節點才能被打包進區塊中。無論轉賬交易還是部署智能合約,所支付的手續費越高,該交易或合約就越快地被礦工打包進區塊中,這也是以太幣最主要的價值。以太坊網絡的礦工節點當前也是通過PoW競爭在區塊鏈添加新區塊的權利,礦工節點及時地在以太坊網絡中收集、傳播、確認和執行交易,使區塊鏈的長度不斷增加。
以太坊從創建之初就是開源的,也在不斷地優化交易速度和添補安全漏洞。以太坊已經擁有了一批忠實的用戶群,無論社區、基金會還是技術都可以說是目前數字貨幣中最完善的。想要運行以太坊,可以安裝geth(go-ethereum),針對iOS、Linux和Windows操作系統,geth都有相應的版本。不同的版本都支持二進制安裝和腳本安裝,二進制安裝相對簡單。具體安裝方法在第4章會有詳細說明。
以太坊對區塊的大小沒有限制,但是每個區塊可以設置gas值。目前,以太坊每個區塊gas值的限制約為470萬,每筆交易的標準gas價格約為21 000,因此每個區塊大約容納220筆交易。以太坊的平均出塊時間在10~20s,如果以15s計算,以太坊每秒最多記錄15筆交易。這個速度雖然比比特幣快,但是依然不能達到實際應用需求。目前,以太坊創始人Vitalik Buterin正在積極研究以太坊分片技術,通過分片技術能極大地提高以太坊交易速度。
- 程序員修煉之道:程序設計入門30講
- Reactive Android Programming
- SQL Server 2016數據庫應用與開發
- C/C++程序員面試指南
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- iOS自動化測試實戰:基于Appium、Python與Pytest
- Node學習指南(第2版)
- Learning AWS
- Kotlin極簡教程
- Java 從入門到項目實踐(超值版)
- jQuery Mobile Web Development Essentials(Second Edition)
- TypeScript全棧開發
- Mastering OpenStack
- 關系數據庫與SQL Server 2012(第3版)
- 每個人的Python:數學、算法和游戲編程訓練營