歡迎光臨
每天分享高質量文章

以太坊完全指南

以太坊是最近熱門的話題。 它被一些人譽為“下一代網際網路”或者“世界計算機”,也有人認為以太坊是龐氏騙局的溫床。 在深入研究了有關以太坊,智慧合約,DApps,DAO,ICO和 token 等文章之後,我深刻認識到以太坊可能成為“價值網際網路”的主要協議。


現在是時候仔細研究一下以太坊是什麼,它有什麼作用以及將來可以發揮什麼作用。 首先,我們需要回顧一下區塊鏈的價值。

去中心化和“無需信任”


簡而言之,區塊鏈是由全球大量節點維護的資料庫。資料儲存在區塊中,區塊被加上時間戳並相互連結以形成一個鏈。區塊鏈確儲儲存在鏈中的所有資料都是安全且永久不變的,這就是區塊鏈如此有趣的原因。透過其共識機制,區塊鏈是“無需信任的”,這意味著人們不必依賴對方的可信賴性。

這是人類歷史第一次在不需要信任第三方的情況下,人們就可以安全放心地在網際網路上進行轉賬,這催生了比特幣和其他加密貨幣。

實質上,比特幣交易就是執行一段程式碼,說明’A’向X發送了X筆比特幣。此交易是自執行的。為了執行相關程式碼,它首先檢查A的地址是否有足夠的比特幣,然後將錢傳送到B的地址。這段程式碼符合一個合約的所有特徵:約定結果,條件執行。但是與傳統不同的是它自動強制執行,不可修改,無法違約,這是第一個可以完全信任的『智慧合約 』 。

計算機程式碼其實可以更加強大。

Vitalik Buterin 早就意識到,如果加密貨幣能透過消除可信第三方的需求來破壞傳統金融,那麼智慧合約可能會擾亂更多需要中介機構提供信任的行業。他最初打算使用比特幣的編碼(指令碼)語言,然而發現該語言不夠靈活。於是他創造了以太坊。


以太坊


以太坊是一個可程式設計的區塊鏈。與任何區塊鏈一樣,以太坊基於由全球眾多計算機組成的P2P網路。 以太坊沒有為使用者提供能夠直接使用一些預定義的操作(例如比特幣交易),而是允許使用者執行他們想要的任何程式碼。該程式碼儲存在區塊鏈中供其他人進行互動,並且通常被稱為智慧合約。

比特幣網路中的計算機(節點)維護和更新區塊鏈。在以太坊中,這些節點執行以太坊虛擬機器(EVM)。以太坊虛擬機器是一臺超級計算機,它結合了網路中所有節點的計算能力。這種計算能力用於在區塊鏈上執行使用者提交的程式碼(智慧合約)。為了執行智慧合約,EVM收取非常小的交易費以換取智慧合約需要的計算能力。這個費用被稱為“gas”,它在Ether中支付,這就是為什麼Ether不應該被視為一種加密貨幣,而是應該被認為是執行網路的所需要的燃料(像石油一樣)。

以太坊是一臺超級計算機,它可以讓使用者執行任何他們想要的程式碼。


智慧合約


如前所述,以太坊允許人們在區塊鏈上部署智慧合約。智慧合約是自執行的一段程式碼,它定義並執行多方之間的協議。 ‘智慧合約’的想法最初是由尼克·薩博於1994年提出的。他認為程式碼完全能夠控制一系列的邏輯關係、引數以及關聯的行動。

在以太坊中,智慧合約可以用Solinity(一種以太坊特定的程式語言)編寫,然後上傳到區塊並永久存在。由於區塊鏈是安全且不可更改的,因此可以完全相信以太坊的智慧合約將按預期執行。程式碼的強制執行性使得賴賬和毀約不可能發生。

Vitalik Buterin在Ethereum的白皮書中解釋了智慧合約:

“智慧合約不應被視為應履行或遵守的義務,它們更像是居住在 EVM 中的機器人,當收到外部條件(訊息或交易)時就自動執行特定的程式碼並修改相關地址的餘額或其它資訊。”


智慧合約可以用於各種不同的交易,尤其適合容易量化的簡單交易。比如金融產品(例如衍生品,期貨,期權等),支付,物聯網資料交換或內容付費。

作為另一個例子,我可以寫一份智慧合約,作為農民抗旱保險。基本引數如下:

  • 如果來自 KNMI(荷蘭皇家氣象研究所)的感測器顯示過去3個月雨水少於6毫米;並且

  • 如果使用者一直如期繳納保險

  • 然後,向用戶傳送保險費X。


在我的例子中,KNMI感測器作為一個’oracle’來獲取可靠的最新資訊以供合約執行。oracle是一個值得信賴的第三方,可以提供合約所需的資訊。

插圖1:農民保險視覺化


去中心化應用


現在我們希望在區塊鏈上啟動一家保險公司。我們將其稱為 BlockSurance。首先,我想要多個產品,並且會編寫多個智慧合約。不同的產品和功能有不同的智慧合約。

以太坊的智慧合約可以相互通訊,這對 BlockSurance 非常有幫助。在一個非常乾旱的年份之後,我不希望“農民 – 抗旱保險”合同耗盡所有資金來補償農民。因此,我可以讓我的不同保險產品(智慧合約)將保險保費傳送到一個中央智慧合約作為一般儲備。如果農民 – 旱災保險合同認定農民有權獲得X數額,則將向總儲備合同傳送訊息以支付農民X數額,然後合約將自動執行。

BlockSurance 的智慧合約在 Ethereum 的區塊鏈中儲存和執行,這意味著它們是“無需信任的”:我的客戶不需要相信我,因為合同可以自行執行,所以當他們有權獲得支付時,他們將獲得賠付。我的客戶也確保這些合約不會被駭客攻擊或更改,因為區塊鏈是不可變的。只要合約中的規則由ETH網路節點共同保證它們按預期的方式執行,則不存在違約風險。

當然,BlockSurance 需要客戶 – 我希望他們的使用者體驗盡可能地簡單。所以,我會建立一個網站並建立一個很棒的使用者介面。這個網站將成為我的應用程式的前端,而以太坊的區塊鏈和智慧合約是應用程式後端。

如果我已經完成了上述所有內容,我就已經建立了一個去中心化的應用程式或 DApp。然而,現在 DApp 越來越多的被理解為不僅是一個在區塊鏈上執行的應用程式,而且還需要有自己的 Token。


Tokens


那麼什麼是 Token?

Token 是一種新型的數字財產,其價值取決於供求關係。Token 為其所有者授予一組與其建立的去中心化應用程式相關的權利。例如,token 可以用於治理專案,分配權益或訪問建立的去中心化應用程式。Token 廣泛變化的特徵使其法律性質成為一個非常有趣的話題。

對於 BlockSurance,我也建立了 Token。這個 Token 可以用於訪問 DApp:為了使用我的保險,人們必須用 Token 支付保險費。

此外,如果保險的利潤超過預期,我可以讓 token 持有者對額外利潤的用途進行表決。這可以透過在總儲備金合約中設定門檻,以允許 Token 持有大戶每年對以下四個選項表決:


  • token 持有者之間的利潤分配

  • 降低保險費

  • 提高賠付金額

  • 開發資金


每個選項都部署了一個智慧合約,允許使用者在投票期間向其傳送代幣作為選票,結束後會退還。截止時間到了後合約間相互通訊並統計,擁有最多代幣的合約將會自動執行。

在過去,創造一個加密貨幣是一個耗時的過程,需要設計加密協議和共識機制並建立節點。如果沒有足夠的節點,那麼它很容易受到女巫攻擊或 51% 攻擊。作為一個應用開發者,我不關心安全性或整體設計,只想用最小的代價實現業務邏輯。以太坊不僅解決了這個問題,還允許部署智慧合約,而且還在區塊鏈上建立了 Token。但是這些 Token 如何分配?


ICO


Token 通常透過 ICO 首次發行。 在 ICO 中,該平臺的投資者和潛在使用者可以透過交換比特幣或以太坊來購買Token。 這是眾籌的一種形式,讓開發商籌集資金,而早期使用者和投資者就專案的未來價值進行投資。 ICO 也被稱為 Token 分發。 今年迄今為止,ICO 已籌集超過 22 億美元。

透過為 BlockSurance 提供 ICO,我可以籌集資金聘請開發人員構建去中心化應用程式的前端和後端。 ICO 還為我的保險公司避免了大量的風險,並幫助快速啟動我的業務。 或者,我也可以將部分資金收入’總儲備金合約’中,部分回報給我的種子投資者。 我也會為自己留一部分Token,最終Token的分佈如下。


插圖2:Token的分配


大多數ICO發行都是這樣的。確切的百分比可能會有所不同,但開發人員幾乎總是給自己留一定份額的Token。ICO投資者募集的資金用於專案的實際開發。

去中心化的自治組織


去中心化自治組織(DAO)是由其部署的智慧合約所設定的規則自主管理的組織。 DAO本質上是一個DApp,開發者在啟動後不再扮演特殊角色。 DApp和DAO之間的區別是管理權和自主權。 DApp的原始碼和未來路線圖由一組開發人員或組織管理,而DAO則是真正自治的。該組織所做的事情以及該做的事情都是以前在其程式碼中確定的。實際上,程式碼就是組織本身。

換句話說,一個DAO的未來發展完全由內部機制決定,代幣持有者共同投票決定組織基金的使用方式。既可以決定投資其它專案,也可以作為升級程式碼的開發費用,但這種升級方式同樣需要在最初的合約功能中包括才能被實施。

在撰寫本文時,有266個DApps和DAO。其中大部分都部署在以太坊上。一些值得註意的例子是:

Dapps:


  • Augur – 去中心化期貨

  • Golem – 空閑算力交易

  • BAT – 線上廣告交易和基於網頁瀏覽時長的內容付費

  • Status:連線所有DApp的去中心化應用平臺


DAO的:


  • DAO:第一個公開募資的DAO(智慧合約史上的最大失敗)

  • MakerDAO:旨在發行價格長期穩定的代幣

  • DigixDAO:金本位的數字代幣交易所


“價值網際網路”


比特幣所做的是允許個人交換現金,而不涉及任何中間商,如銀行,支付處理商或政府。對於比特幣的用例,這些機構提供的信任並非必要。

以太坊的影響可能更為深遠。由於幾乎任何事物都可以在區塊鏈上進行編碼和保護,其他提供信任的中間人可能會被替換。這取決於你認為這些中間人有多少價值,這些參與者可以包括公證人,銀行家,保險部門,房地產機構,Uber和Ebay等商品和服務的網上交易平臺。這個論點認為,任何需要第三方擔保的事情都能在區塊鏈上更高效地完成。

雖然這種說法有其缺陷,但很顯然,區塊鏈技術使來自世界各地的個人能夠透過消除對手風險來相互交易。這意味著,在某種程度上,可信中介在我們的經濟體系中失去了重要性。我們將看到更多點對點服務和共享經濟。

在網際網路技術崛起之前,大家無法想象分發資訊的方式可以如此高效。區塊鏈允許透過網際網路進行可靠的價值交換,促使我們思考如何建構社會,定義價值等。這就是區塊鏈技術被稱為“價值網際網路”或網際網路3.0背後的驅動力的原因。以太坊已經是最大的協議,允許建立智慧合約,DAO和DApps,許多人相信它可能會成為這個新網際網路的中堅力量。

企業以太坊聯盟和許可鏈


企業級以太坊聯盟(EEA)是一個由學術界,巨頭和創業公司建立的區塊鏈網路,用於分享知識和協同解決複雜高效能的應用問題。參與者十分廣泛,包括摩根大通,微軟,萬事達卡,英特爾,德勤和BP等。 考慮到區塊鏈技術的可能性,各種各樣的公司想要靠區塊鏈提高各自行業的效率是合乎邏輯的。

插圖3:企業以太坊聯盟成員


人們常常認為,EEA是以太坊估值的一個驅動因素,但這其實並非如此。這些公司正在試驗部署私有鏈(在一家公司內部使用)和聯盟鏈(與其它合作伙伴共同使用)。這些“經許可的”區塊鏈是以太坊的私有版本。以太坊的私有分支允許公司限制使用者訪問。所有網路節點都由公司搭建維護,不存在利益博弈。因此有極大靈活性,更改區塊程式碼、回滾交易和修改賬戶餘額這些在公有鏈上很難推動的事情都可以輕鬆實現。其交易成本較低(因節點較少)也可以避免公共區塊鏈中的常見風險(如51 %攻擊不可能出現)。

補充一點,我相信大多數人都關註公有鏈(無權鏈)的潛力,並對許可鏈(私有鏈)不屑一顧。我並不質疑設計良好的區塊鏈網路的效率。然而,如前所述,私有鏈比公有鏈更容易達成共識。這並不是說透明、匿名和安全不重要,而是許多區塊鏈專案其實更需要良好的使用者體驗和成本優勢。

結論


區塊鏈可以提供高效、安全、可靠的獨特優勢,它將帶來 Web 3.0 革命,並深刻長遠影響社會,正如之前計算機普及和網際網路浪潮一樣。幾乎任何現實事物都可以部署在以太坊上。然而,每次的技術革命都難以避開泡沫,上次網際網路的泡沫還在眼前,這次又將何去何從呢?

編輯:這篇文章專註於以太坊積極的一面。 然而,這個專案有很多批評。 以太坊不好的一面將會在一篇新文章中陳述。


英文原文:

https://hackernoon.com/understanding-ethereum-a-complete-guide-6f32ea8f5888


相關閱讀:


只用200行Go程式碼寫一個自己的區塊鏈!

200行Go程式碼實現自己的區塊鏈——區塊生成與網路通訊

200行Go程式碼實現區塊鏈 —— 挖礦演演算法

區塊鏈及比特幣入門指南

新一代開源分散式賬本專案R3 Corda 技術揭秘:基於JVM開發

超越比特幣以太坊的區塊鏈技術:石墨烯專案簡介


特別推薦:


比特幣、以太坊、ERC20、PoW、PoS、智慧合約、閃電網路……

想深入瞭解及討論這些話題?高可用架構在知識星球(小密圈)建立了區塊鏈學習小組,共同學習區塊鏈包括數字貨幣前沿技術,歡迎點選連結加入。


區塊鏈學習小組


本文作者 Thijs Maas,由方圓翻譯,轉載本文請註明出處,技術原創及架構實踐文章,歡迎透過公眾號選單「聯絡我們」進行投稿。


高可用架構

改變網際網路的構建方式

長按二維碼 關註「高可用架構」公眾號

贊(0)

分享創造快樂