科普 | 以太坊概況

買賣虛擬貨幣

你可能已經聽過“區塊鏈”和“智慧合約”這兩個術語,但它們實際是什麼意思?我們將揭開其神秘面紗,向你解釋實用的區塊鏈解決方案,然後給你一些如何建立它們的指導。這是一個高層次概述,包括:

為什麼使用區塊鏈?

當有很多個位於世界各地的參與方,它們之間在無法互相信任、但需要共享資料和傳輸價值情況下,就需要使用區塊鏈了。金融界將這種信任描述為交易對手風險,即其他參與方最後不履約的風險。區塊鏈透過一種創新的數學系統、密碼學和點對點網路,完全解決了交易對手風險。在我們詳細瞭解它們的工作原理之前,我們需要回顧一些歷史,以及區塊鏈產生的必要性。

第一個資料庫

在20世紀60年代,第一臺計算機式資料庫出現。這些硬體佔據了很多房間,而網際網路還有幾十年才出現,資料通常儲存於中心的實體位置。這是一種中心化方式,意味著資料的位置和訪問都由中央機構控制。中心化系統可由惡意角色從內部或外部控制,所以我們相信這些系統擁有者有足夠意願和資源來保護資料的安全性和完整性。中心化資料庫在今天依然是最常見的,支援著大多數線上和離線應用。

自我託管部落格就是中心化資料庫的一種常見形式。所有者為了讓文章更好,可以進行事後編輯,或者無需追索就可以審查使用者。即使擁有一名正直的所有者,駭客也會滲透到伺服器並實施惡意行為。如果沒有資料庫備份,那就幾乎無法確認哪些資料被修改或損壞。

如下圖所示,每個伺服器邊上的箭頭都是需要信任的連線。


共享資料需求

共享大量資料是非常昂貴和麻煩的。我們可以透過在需要共享的各參與方分配資料來緩解這種負擔。讀 / 寫由這個群體中的一方或多方控制,因此受制於類似中心化資料庫的變化方式。


現代共享資料庫使用技術來減少這種損壞,其中部分技術與區塊鏈重疊。根據不同的共享資料庫系統,它可以有以下特點:


  • 永久性:建立一個新複製並將舊資料保留為歷史記錄,而不是直接覆蓋舊資料。該記錄可以被訪問,用於證明某一時刻存在的資料。

  • 共識性:對於要共享的資料庫,所有參與方必須就其內容達成一致(達成共識)。有很多種達成共識的方法,其中一種(工作量證明),我們將在下一節區塊鏈中討論。

區塊鏈具有以上特點並將其運用到更深層次,完全解決了信任問題。


什麼是區塊鏈?

區塊鏈是核心是一個共享資料庫,該資料庫稱作分類賬本。就像一個銀行,簡單的區塊鏈分類賬本會跟蹤貨幣(這裡指加密貨幣)所有權。與中心化銀行不同,每個人都有該賬本的複製,而且可以驗證彼此的賬戶。這就是區塊鏈的分散式(或去中心化)特點。每個包含賬本複製的連線裝置被稱作節點。


區塊鏈網路中賬戶之間的互動被稱作交易(Transactions),它們可以是貨幣交易,例如發給某個人以太坊中的加密貨幣以太幣;它們還可以是資料傳輸,例如評論或使用者名稱。區塊鏈上的每個賬戶都有唯一的簽名,讓每個人都知道是哪個賬戶啟用該交易。


比起之前的資料庫,區塊鏈除了解決信任問題,還有以下主要優點:


  • 完全去中心化:讀 / 寫資料庫是分散和安全的,單獨某個人或某個組無法控制區塊鏈。

  • 極致容錯:容錯是系統處理損壞資料的能力,雖然容錯能力不是區塊鏈特有的,它將此概念邏輯化,讓每個人共享資料庫來驗證其變化。

  • 獨立驗證:交易可以由任何人驗證,無須第三方,這有時也被稱作脫媒。

現在我們對區塊鏈價值有一定了解,下面讓我們來深入瞭解它們的工作原理。


區塊鏈如何工作?

在一個公鏈中,任何人都可以讀寫資料。讀取資料是免費的,但向公鏈中寫資料是需要花費的。這種花費有助於阻止垃圾內容,並透過支付保護其安全性。網路上的任何節點都可以參與稱作挖礦的方式來保護網路。由於挖礦需要計算能力和電費,礦工們的服務會得到一定報酬。

挖礦

網路中的每個節點可以選擇參與挖礦。通常,節點的礦工需要競爭解決保護區塊鏈內容的數學問題。每個區塊都是剛建立的待處理交易集合,需要新增進鏈條中最新的區塊後面。數學問題比賽的獲勝者創造了下一個區塊,並收到一些加密貨幣作為獎勵。這激勵了節點來保護網路,防止太多權力掌握在任何一個礦工手中。

雜湊

一旦新區塊被開採出來,其他礦工將被通知,它們開始驗證並將這個新區塊新增到其鏈條的副本中。我們之前提到的數學問題稱作加密雜湊(或簡稱雜湊)。雜湊函式是一個特殊單向的過程,它接收資料並返回一個表示該資料固定長度的字串。雖然原始資料不能從其雜湊值中再現,但相同資料始終產生相同的雜湊值。因此,未驗證的資料可以使用相同函式進行雜湊,並與原始資料比較。 如果它們相同,則資料驗證透過。

一旦一半以上的礦工驗證了新區塊,網路則就新區塊達成共識,併成為鏈條中永久的一部分。現在這個資料可以很容易被非採礦節點下載(同步),且其有效性得到保證。

這是整個視覺化過程:


1. Bob 嘗試向 Alice 傳送 1 ETH。


2. Bob 和 Alice 的交易與其它自上個區塊之後發生的交易繫結在一起。


3. 礦工們競爭驗證新交易集合產生的區塊。


4. 成功建立新區塊的礦工將會得到報酬。


5. 交易透過驗證,Alice 收到 1 ETH。

什麼是以太坊?

以太坊不僅是一個資料庫,它還允許你在區塊鏈的可信環境中執行程式。以太坊在區塊鏈上搭建了一個名為 EVM(Ethereum Virtual Machine,以太坊虛擬機器)的虛擬機器。EVM 允許在區塊鏈上驗證和執行程式碼,為程式碼在每個人的機器上以相同方式執行提供保障。這些程式碼包含在智慧合約中(更多如下)。


除了追蹤賬戶餘額,以太坊使用相同方法將 EVM 的狀態儲存在區塊鏈上。所有節點處理智慧合約,來驗證合約本身及其輸出的完整性。

什麼是智慧合約?

智慧合約是指在 EVM 上執行的程式,它們與其他程式語言十分相似。智慧合約可以接受和儲存以太幣、資料、或兩者組合。然後,使用編入合約的邏輯,它可以將以太幣分發到其他帳戶、甚至其他智慧合約。你可以看到複雜系統是如何從這種靈活性中發展起來的。


智慧合約是用 Solidity 語言編寫的。Solidity 是靜態型別,支援繼承、庫和複雜的使用者定義型別等功能。它的副檔名是“.sol”。 Solidity 的語法類似於 JavaScript。 我們將在以後教程中介紹 Solidity 基礎知識,但你也可以透過檢視文件來深入瞭解。


這裡繼續 Bob 和 Alice 的智慧合約案例。這一次,他們正在使用託管合約(一個貨幣儲存空間,儲存一定貨幣直到滿足某條件),以便在最終交易之前儲存其以太幣。


Alice 想僱傭 Bob 來建立一個露臺。為了讓雙方保持誠實,Alice 同意在託管合約中存放露臺款項,Bob 同意在合約中存入同等金額。


2. Bob 完成了露臺,Alice 很激動!她許可智慧合約釋放資金。


3. Bob 收回了 1 ETH 的抵押,和 Alice 支付的 1 ETH


在更復雜的託管合約中,如果 Bob 沒有完成露臺,或他完成的非常糟糕,可以將規定寫入合約程式碼中,以釋放 Bob 給 Alice 的抵押。

以太坊網路

到目前為止,我們已經描述了主要網路(或主網),以太坊的公鏈。任何人都可以建立一個節點並開始驗證交易;因此,它是高度安全的。鏈上的資料,包括賬戶餘額和交易,都是公開的。網路上的以太幣具有市場價值,並可以交換其他數字貨幣、或例如美元的法定貨幣。


除了主網,還有測試網路(本地和公有),以及私有網路。

本地測試網路

以太坊區塊鏈可以在本地進行模擬開發。本地測試網路可以即時處理交易,並且以太幣可以根據需求進行分配。存在一系列的以太坊模擬器;我們推薦我們自己的:Ganache。


公有測試網路


這些測試網路是存在和公開的。這些網路上的以太幣僅用於測試目的,沒有貨幣價值。由於這些網路是公有的,所以貨幣是免費的,開發人員在最終部署以太坊應用程式到主網之前,需要使用它們測試。


* Ropsten:由以太坊基金會建立的官方測試網路。

  • Kovan:一種使用“權威證明(Proof of Authority)”共識方法的公有測試網路。這意味著其交易由選定人員進行驗證,從而只需要4秒的出塊時間。此測試環境上的以太幣供應也受到控制,以減輕垃圾內容的攻擊。這個鏈條的資訊是公開的。 Kovan 是由 Parity 科技建立的,需要他們的 Parity 以太坊客戶端。

  • Rinkeby:一個同樣使用權威證明的官方測試網路。 任何以太坊客戶端都可以訪問,由以太坊基金會建立。

私有 / 企業網路

私有以太坊網路允許各參與方共享資料,而不使其公開訪問。私有區塊鏈是一個很好的選擇,當:

  • 分享敏感資料,如醫療保健記錄,這是不允許或不希望公開的。

  • 小團體需要更大的容量。隨著網路規模的縮小,私有區塊鏈可以擴充套件到更大的規模,並處理比公鏈更重的讀 / 寫量。

基於以太坊的私鏈同樣執行EVM,因此也相容 Truffle 和其他開發工具。摩根大通最初開發的Quorum就是一個非常好的例子,也與Truffle相容。更多關於在Quorum上使用Truffle的內容請訪問我們的部落格。

Dapps(分散式應用程式)

使用智慧合約的應用程式大多數(雖然不是全部)的後端處理稱為 dapps,分散式應用程式的縮寫。這些 dapps 的使用者介面使用包括你可能已經知道的語言:HTML,CSS和JavaScript。這些檔案可以託管在傳統可信的 Web 伺服器上,或無需信用的分散式檔案服務上,如 Swarm 或 IPFS。


鑑於以太坊區塊鏈的好處,dapp 可能是許多行業的解決方案,包括但不限於:

  • 檔案儲存

  • 貨幣(金融)

  • 供應鏈

  • 房地產

  • 交易市場

…這種例子不勝列舉。我們將在不久後提供如何建立自己的 dapps 的詳細教程,所以將本教程加入書籤,並繼續關注吧。


原文連結: http://truffleframework.com/tutorials/ethereum-overview
作者: Truffle Team
翻譯&校對: Nina & Elisa

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;