當前位置:
首頁 > 最新 > 區塊鏈系列:從比特幣到以太坊

區塊鏈系列:從比特幣到以太坊

時光飛逝!新一代的程序員們的目光正由比特幣轉向以太坊。這些程序員們可能從沒有對加密貨幣產生興趣,但是他們被以太坊的無需信用的交易以及圖靈完備性所吸引。然而我不能因為他們轉向以太坊而責怪他們,因為以太坊的大部分底層技術都源自比特幣。這篇文章將講述比特幣的相關技術,以讓以太坊開發員更好地理解它是如何工作的,從而使新的以太坊開發員可以開發一些面向合約的應用,就像過去他們開始著手面向對象的應用一樣。

本文共分為兩部分,這是第一部分。第一部分:從比特幣到以太坊(「Just Enough Bitcoin for Ethereum」),這部分重點講理解比特幣的機制。第二部分:「以太坊:比特幣加上一切」(Ethereum: Bitcoin Plus Everything),這部分重點講以太坊是怎樣延伸比特幣的區塊鏈技術。


區塊鏈

從根本上講,一個區塊鏈就是狀態遷移中的一個公共記錄。任何人都可以查詢區塊鏈上過去的狀態遷移,它們通過數學方法確保正確,這些交易是按照區塊鏈的規則形成的。在比特幣中,它的規則很簡單,是這樣的:比特幣不能被雙重支付,這些幣的出現必須能追溯到某一個有效塊的挖礦。在正式開始介紹區塊鏈之前,我先推薦閱讀比特幣白皮書,及時你一點都不了解密碼學。我們隨後將講解密碼學的一些基礎知識。

區塊鏈交易的密碼學基礎

正如有些人一點也不了解密碼學,我發現我自己在開始閱讀白皮書中關於交易的描述時也感到困惑。其實我們只要理解這是一種能追溯一個人過去到現在的資產的設計模式。但是什麼是公鑰?什麼是哈希?這些密碼學中的東西怎樣證明資產屬於某人?如果你從沒有上過密碼學的課,可以在網上觀看Khan Academy的視頻,他從高層來講解這些重要的函數是如何運行的。或者參考我們之前的文章,區塊鏈系列:散列演算法

現在我們來看看白皮書中的交易框圖。這裡我們對Owner2的公鑰和之前的交易(Owner1的財產在裡面)進行哈希散列,形成一個摘要(哈希函數的輸出)。接著用Owner1的私鑰對這個摘要進行加密。將來,任何人都可以通過數字簽名驗證演算法驗證這筆交易:通過Owner2的公鑰可以證明這筆交易的收款人是Owner2,通過Owner1的公鑰可以證明這筆交易的付款人是Owner1,這個摘要在區塊鏈上是公開的,裡面還記錄了這筆交易發生的時間。

通過Owner1的私鑰加密的這筆交易,只有Owner1的公鑰才能解密,故能證明其有效性。不斷地遞歸這個過程直至到比特幣的初始塊,就能證明整個區塊鏈的有效性。

你現在可能會想到很多問題,並且考慮可能發生的邊緣情況。比如:比特幣是如何開始產生的?一筆具體數目的比特幣是如何交易的?為了更好地講解,這裡不具體講解比特幣的這些過程。接下來我們將覆蓋比特幣白皮書六個章節中的三個,講解這幾種邊緣情況是如何解決的。


挖礦:在區塊鏈上創造網路共識

所有的比特幣交易都會通過全網廣播,並且這些交易都會由礦工來驗證它的有效性,最後把一段時間內所有有效的交易放進一個區塊中。接著這個區塊中的內容被散列成一個不斷增長的隨機數(nonce),直到產生的結果包含一定數目的leading zeroes(困難度)。整個網路會動態地調整難度,以控制區塊每十分鐘一個產生一個。由於哈希演算法的結果是不可預測的,所以找到一個有效的哈希值需要一定的計算能力和運氣。一個人擁有越多的計算資源,他就有更大機會在其他人之前找到這個有效的哈希值。當一個區塊被挖出,就會廣播全網,在接受這個區塊成為整個網路的下一個區塊之前,其他節點會驗證這個區塊中的所有交易是否有效,提供的隨機哈希值是否有效。最後這個通過驗證的區塊會添加進區塊鏈中,並同步進每個節點的本地資料庫。

比特幣的所有權鏈條是如何開始的呢?比特幣協議規定了每個區塊可以包括一筆發送給礦工,數額為25個比特幣的交易,這25個比特幣是憑空生成的。這樣的設計將激勵礦工支持比特幣網路。如果一個比特幣的所有權可以被追溯到這樣的一筆特殊交易,那麼這個比特幣就可以被認證為是非偽造的。這是創造增加新的比特幣的唯一方式。

只要超過51%的計算資源掌握在誠實節點手中,比特幣就是安全的。但是如果一個惡意的用戶控制了51%的網路計算資源,他就可以偽造交易記錄,即使一開始誠實節點領先他一些區塊,他最終也會不可避免地追上。因為在比特幣協議中規定最長的區塊鏈是有效的。

額外練習:比特幣中的UTXO。在比特幣中, 比特幣用戶持有的不是一個可無限可分的貨幣單位集合。與此相反,比特幣用戶使用 「未花費交易輸出」(unspent transaction outputs,UTXO)。如果一個礦工想用剛剛挖礦的25個比特幣購買標價為1個比特幣的咖啡,他必須指定這25個比特幣(UTXO)為這筆交易的輸入,並為這筆交易指定兩個輸出:第一個輸出發送1個比特幣到咖啡賣家,第二個輸出發送24個比特幣到自己的地址,作為找零。如果再次購買咖啡,這24個比特幣將構成一個單一UTXO。購買更加昂貴的商品時,一筆交易輸入中的多個UTXOs,它將被作為一個新的、單一的UTXO被商家接收。以太坊沒有使用UTXO機制,它的賬戶餘額是可分的。

現在,你了解了比特幣區塊鏈的基本原理。如果你沒有完全了解它,先別覺得它不好。試著深入了解它,你會開始產生一個夢想。一旦如此,你會開始設想如比特幣區塊鏈一樣的許多東西,當它們的輸入和程序代碼也一樣被公開,是否也可以通過複雜計算來驗證公共輸出。事實上,這就是本文第二部分講介紹的。再見!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 點點網路信息科技 的精彩文章:

不跟隨,杭州4天3夜自助游
美到沒朋友,25個張家界絕景

TAG:點點網路信息科技 |