以太坊(Ethereum)創世揭秘

封面中的這個年輕人名叫維塔里克·布特林(Vitalik Buterin),以太坊創始人。我謹以這種方式向他表達我的崇敬之意。

什麼是以太坊(Ethereum)

以太坊(Ethereum)是一個基於區塊鏈技術,允許任何人構建和使用去中心化應用的區塊鏈平台。像比特幣一樣,以太坊是開源的,並由來自全世界的支持者們共同維護。與比特幣僅提供了有限功能的腳本不同,以太坊提供了一個「圖靈完備」的虛擬機,稱為以太坊虛擬機(Ethereum Virtual Machine),簡稱EVM,用戶可以在EVM上創建智能合約(Smart Contract)。以太坊平台中的通用貨幣為以太幣(Ether),簡稱ETH,以太幣可用於賬號間的轉賬交易或者為EVM上運行的合約消耗的資源付費。

以太坊的創始人

維塔里克·布特林(Vitalik Buterin),1994年1月31日生於俄羅斯,後移居加拿大,擁有俄羅斯和加拿大雙國籍。2011年,通過比特幣,他了解到了區塊鏈和加密貨幣技術,並被區塊鏈技術深深的吸引。2011年9月,作為聯合創史人之一,創辦了旨在向讀者提供及時準確的區塊鏈相關資訊的網站:Bitcoin Magazine。

此後的兩年半里,布特林一直在思考區塊鏈技術的更多創新應用,並最終在2013年9月,發布了以太坊白皮書(Ethereum White Paper),當時他只有19歲。

現在,作為以太坊的靈魂人物,他正領導著以太坊團隊,致力於以太坊的開發和推廣。

眾籌計劃

為了籌措開發以太坊需要的資金,布特林發起了一次眾籌。與一般的眾籌不同,這次眾籌只接受比特幣支付,並會在以太坊正式發布後,使用以太坊中的通用貨幣以太幣作為回報。這次眾籌的簡要情況如下:

  • 時間:2014年7月22日-2014年9月2日,共42天。
  • 兌換比例:前14天每1BTC兌換2000ETH,之後每天1BTC兌換的ETH數額減少30,直到1337ETH後不再減少。

  • 分配:眾籌發行的ETH數額的19.8%將由以太坊基金會擁有,也就是說,初始發行的以太坊中,有1 / ( 1 + 19.8% ) = 83.47%屬於參與眾籌的人,剩下的16.53%由以太坊基金會所有。
  • 用於接收眾籌比特幣的地址為:36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2

這種形式的眾籌,在今天我們一般稱為首次公開電子幣眾籌(Initial Coin Offering),也就是大家常說的ICO。

技術細節

要想成功的完成這次眾籌,要解決幾個問題:

  • 證明眾籌的地址是以太坊團隊能夠控制的
  • 眾籌過程公開透明,籌到了多少BTC要對大家公開
  • 要能夠及時準確的發放以太幣給相應的參與眾籌的人

以太坊團隊在眾籌開始的前一天,花費了這個地址的一個UTXO,從而證明了他們持有這個地址的私鑰,證明了是他們在控制這個地址。可以在這裡看到這個交易:592eaf32d83a7db47321642c4b3837d38edfbe57910f4f6abd548e578f51f80a

公開透明,這不難做到,籌到了多少BTC,只要看一看比特幣區塊鏈中地址36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2在眾籌期間收到了多少BTC就可以了。

最後一點比較麻煩,新生的以太坊和比特幣根本就是兩個區塊鏈,完全沒有任何交集,怎麼能夠建立起關係呢?以太坊的開發者們想到了一個辦法,甚至為了方便小白,還提供了一個腳本ethereum/pyethsaletool。

步驟如下:

  1. 用戶自己生成一個隨機數seed
  2. 使用seed生成一個以太坊的公私鑰對(pub , priv)
  3. 將公鑰pub使用SHA-3摘要演算法轉換成Hash值,也就是以太坊中的錢包地址eth_address
  4. 將eth_address使用SHA256摘要演算法生成Hash值,並轉換成一個比特幣地址btc_address
  5. 最後,參與者將想要支付給眾籌項目的金額分為三部分,0.0002BTC的交易費,0.0001BTC支付到btc_address,剩下的金額支付到眾籌地址36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2。
  6. 把eth_address發送給以太坊項目組,eth_address將被寫入創世區塊,從而使參與者獲得以太幣。
  7. 保管好eth_address對應的公私鑰對(pub , priv),以太坊正式發布後,就可以擁有和消費以太幣了。

支付給步驟4中生成的btc_address的0.0001BTC將被銷毀,為什麼這麼說呢?比特幣的地址其實是一個公鑰的Hash值,當你想花費輸出到某個地址的比特幣時,你要提供兩個東西,你的公鑰和你使用對應私鑰對交易的簽名。當接收者驗證一個交易時,先檢查你提供的公鑰的Hash值是不是和你要花費的地址相符,如果相符,再檢查簽名是不是這個公鑰對應的私鑰生成的。這個btc_address不是使用公鑰生成的,如果想花費它,要從Hash反推出公鑰,再從公鑰反推出對應的私鑰,這都是不可能的。因而這些比特幣永遠的被銷毀了,好在0.0001BTC並不多。

那麼為什麼要這麼做呢?為了解決眾籌的比特幣和未來產生的以太幣的關聯問題,以太坊項目組只要掃描以自己的地址36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2為輸出的所有交易,再使用同樣的方法用你提供的eth_address生成一個btc_address,就可以證明,某筆包含btc_address為輸出的交易是你支付的,也就可以把eth_address和眾籌金額關聯起來了。

舉個例子

區塊鏈最大的好處就是永恆和公開,我們可以任意挖掘歷史。讓我們看看當年的參與者留下了什麼吧。

我們隨意從以太坊創世區塊中找一位眾籌參與者出來,看看他是怎麼參與眾籌的。

  1. 生成eth_address:9c9de44724a4054da0eaa605abcc802668778bea
  2. 生成btc_address:1FH7ZSAiBqeJExWZ7ZWZyqDrK2ehF1g9xz
  3. 創建一個比特幣交易,支付0.0002BTC的交易費,支付0.0001BTC到btc_address,剩下的金額支付到眾籌地址36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2。
  4. 把自己的eth_address告知以太坊項目組

完成這些後,他在比特幣區塊鏈中留下了一個交易:37324fd32620179fd1b2746d13981680067deeb0fbb5055f06cec507208f1260

因為上面講過的原因,1FH7ZSAiBqeJExWZ7ZWZyqDrK2ehF1g9xz上的0.0001BTC永遠不可能被花費,可以在圖中看到,三年過去了,它仍然是未使用狀態,如果有一天這0.0001BTC被花費了,那麼就將是比特幣毀滅的一天。

下面以太坊項目組上場:

以太坊項目組收到參與者用郵件或者其他方式發來的eth_address(9c9de44724a4054da0eaa605abcc802668778bea),使用相同的演算法轉換成btc_address(1FH7ZSAiBqeJExWZ7ZWZyqDrK2ehF1g9xz),然後到比特幣區塊鏈中去找這個地址,發現了這個地址和交易37324fd32620179fd1b2746d13981680067deeb0fbb5055f06cec507208f1260相關聯,這個交易中有支付給眾籌地址的比特幣,從而證明了eth_address的主人確實支付了眾籌款項0.146BTC。

這位眾籌參與者於2014年8月26日支付了0.146BTC,按當時的比率,1BTC=1370ETH,最終他獲得了0.146 * 1370 = 200.02ETH。

如果你對這個eth_address轉換成btc_address的過程感興趣,我準備了個python腳本,有興趣的朋友可以去github查看:eth_address_to_btc_address.py

眾籌結果

眾籌地址共收到8,947個交易,來自8,892個不重複的地址,有兩個地址是在眾籌時間段之外支付的,所以這兩個地址不能獲得以太幣。通過此次眾籌,以太坊項目組籌得31,529.356,395,51BTC,當時價值約1800w美元,0.8945BTC被銷毀,1.7898BTC用於支付比特幣交易的礦工手續費。

同時,以太坊發布後,需要支付給眾籌參與者共計60,108,506.26以太幣。

毫無疑問,這次眾籌是極為成功的,正是這次成功的眾籌,為以太坊項目組籌集了足夠的啟動經費。

創世區塊

在眾籌成功一年後的2015年7月30日,以太坊正式發布。項目組兌現了承諾,創世區塊中包含了8893個交易。

為什麼是8893個交易呢?這其中包含8890個眾籌參與者,他們獲得了用BTC兌換的以太幣,共計60,108,506.26以太幣,2個沒能在規定時間參與的地址,雖然沒有得到以太幣,但是也被記錄在區塊鏈中。

另有11,901,484.239480以太幣被支付給了以太坊基金會0x5abfec25f74cd88437631a7731906932776356f9。

所以,從創世那一刻起,以太坊中就有了72,009,990.49948以太幣。

通常創世區塊都是預先生成好的,以太坊的創世區塊就是使用這個腳本genesis_block_generator.py生成的。這個生成好的創世區塊的Hash(0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3)會被寫進錢包軟體中,從那一刻起,以太坊便正式宣告誕生。如果你想看看它在哪兒,這個Hash在params/config.go中。

以太幣的來源

與比特幣不同,以太坊中的以太幣並不全是礦工挖掘出來的,有大約7200w以太幣是在創世時就已經創造出來了。到本文寫作時,已經存在94,418,166.44以太幣,其中76.3%是創世區塊中包含的,挖礦產生的2100w以太幣僅佔到不足四分之一。

數據來源:Ethereum Market Capitalization and Supply Statistics

嚴謹的說,以太幣的來源有兩個,創世區塊中包含的7200w和大約每年挖礦產生的1872W,並且目前為止,總量無上限。

關於ICO的看法

眾籌時均價0.3美元的以太幣,而今已經超過300美元,升值1000倍。然而,以太坊的成功不是偶然,也不是暴利,更不是圈錢。以太坊實現了圖靈完備的EVM,這是區塊鏈技術領域劃時代的創新,為智能合約提供了基礎。短短兩年時間,以太幣市值不斷上升,成為僅次於比特幣的第二大電子幣,並被新的ICO項目用來籌集資金。

ICO僅僅是一種融資手段,不應該被妖魔化。

IPO是用美元、人民幣等法幣換股權證書,ICO是用有一定價值的數字資產換代幣,二者如果都在合理的監管下,確保資金不被挪用,都是利國利民的好事兒。

然而,現在ICO已經被曲解和利用,成為了投機者手中圈錢的工具。看過《華爾街之狼》的人可能知道,主角貝爾福特利用了未公開上市的低價股,也被稱為仙股,或者垃圾股,電影中稱之為「粉紅單」來騙取投資人的資金。如果缺乏監管,股票和ICO都可以用來圈錢,都可以擾亂市場。違法、欺騙、圈錢,這不應該是ICO的原罪。

ICO本無罪,有罪的是貪婪的人性和小白的愚蠢,只要監管得當,技術原理為更多人所了解,我相信它終會有所作為。

如果你喜歡這篇文章,就請收藏或點贊吧。

如果有任何問題或指正,包括不同的看法和觀點,歡迎留言討論。


推薦閱讀:

比特幣,萊特幣,以太坊,以太經典,BCH,Dash, XRP價格分析(67)--12/20/2017
比特幣,萊特幣,以太坊,以太經典,BCC,Dash價格分析(44)

TAG:以太坊 | 区块链Blockchain | 比特币Bitcoin |