時間:2017-08-15 來源:互聯網 瀏覽量:
日前,外媒介紹了以太坊(Ethereum)相關的信息。文章指出,雖然比特幣(Bitcoin)和以太坊(Ethereum)經常被放在一起,但實際上它們的差別非常大,它們唯一一個共同點應該就是都是在區塊鏈上運轉加密資產。
跟比特幣不同的是,除了是一種虛擬貨幣之外,以太坊還能以一個巨大的去中心化計算機存在。
要搞明白以太坊就得先明白區塊鏈是怎麼運行的。
什麼是區塊鏈?
簡單點說,區塊鏈就是一個數據庫,它是一個會不斷擴大的某種特定數據類型的數據庫,另外它具有以下兩個比較顯著的特征:
一旦數據存入到數據庫中,它將永遠無法修改或刪除。區塊鏈上的額每一次紀錄都是永久性的;
該類型數據庫並非由某個人或某個機構維護,它則是由上千人一同展開並且每個人都有數據庫副本。
數據庫的每個動作都是共享的
可以看到,當某個頁麵密封之後,它會被加入到文件夾中,然後又會生產一個新的頁麵繼續以上這個動作。隨著時間的推移,這些包含有重要紀錄的頁麵(區塊)加入到文件夾(鏈)最終形成數據庫(區塊鏈)。
區塊鏈裏存著什麼?
區塊鏈可以儲存任何類型的數據,區塊鏈儲存的每一種數據都將被賦予其各自的價值。我們知道,比特幣的區塊鏈儲存的是金融交易記錄,所以使得它有點類似於美元或英鎊等貨幣交易。比特幣的用途除了為美元服務並無其他用途,但以太坊不同。
它不僅僅以貨幣的形式存在,它還可以是一台巨大的計算機!不過它的速度非常慢--比普通電腦慢上5到100倍--而且非常昂貴。以太坊計算機的功能跟90年代的智能手機差不多。
這聽起來好像並不那麼得吸引人,那麼為什麼又要給以太坊做那麼多的宣傳呢?--因為它的廣泛性,其是一種在全球範圍內完全分散化的計算機。了解以太坊區塊鏈的運行方式能夠知道它是如何像一台世界級計算機運行的。
以太坊如何運行?
就像其他區塊鏈一樣,以太坊也需要上千人在他們的電腦上運行一套軟件來為網絡供能。網絡中的每台節點(電腦)使用一種叫做Ethereum Virtual Machine(以下簡稱EVM)的腳本語言。由EVM執行的軟件或應用叫做“智能合約(smart contracts)”。
如果想要執行“智能合約”則需以以太幣ether的形式支付才行。
在以太坊上,無論是人還是智能合約都被視為用戶,人類用戶能做什麼,智能合約也能做什麼。
智能合約就像網絡上的其他任何人類用戶一樣,它們也都能發送和接受以太幣ether。
不過不同於人類用戶的是,智能合約還能夠執行一個預定義程序,它能在觸發的時候展開各種操作。為了了解智能合約的威力,就讓我們來看一個例子。
智能合約的威力
想象一下兩個人打賭明天的天氣,其中一個打賭明天晴天,另外一個下雨,賭注100美元。那麼要怎樣做才能確保雙方的誠信呢?
1. 相信彼此
2. 簽署法律協議
3. 找一位共同的朋友作為見證人
不論是上麵哪一種方法,要麼是可操行性不強要麼成本太高,但以太坊的智能合約卻能很好地解決這個問題,它就像是打賭者信任的共同朋友,隻不過它存在於代碼裏。在以太坊上,打賭者可以在一款軟件中寫入“賭約”並各自存入價值為100美元的以太幣ether,等到次日結果出來後,輸的那方的將獲得該軟件下的所有錢,即價值200美元的以太幣ether。
一旦智能合約編寫好後,它就不能以任何方式進行編輯或修改。
那麼智能合約跟區塊鏈又有什麼關係呢?
智能合約如何跟區塊鏈聯係在一起?
當某個智能合約被執行的時候,它會在區塊上以交易的形式紀錄下關於該執行的信息。以太坊區塊鏈上的交易在高級水平下的運行方式如下:
除了最後一個其餘都可自我說明。正是這個“數據(data)”給了以太坊獨特的威力,其用於紀錄以交易形式展開的智能合約的創建與執行。以太坊區塊鏈任何一個塊的交易可分為三種:
1. 一名用戶轉賬給一名人類用戶
這就像是常規的比特幣交易,即一名賬戶將以太幣轉到另一名用戶的名下,當中的數據字段則會被清空;
2. 沒有接收方的轉賬
當創建一筆沒有接收方的交易時,這意味著該動作的目的是為了在網絡中使用“數據”中的內容創建智能合約。
3. 一名用戶轉賬給智能合約
當一名用戶(包括人類用戶和智能合約)想要執行一項智能合約時,他/她/它需要在“數據”中為這筆交易執行智能合約。
跟其他區塊鏈一樣,無論是展開了以上哪種交易,它都將會被共享到整個以太坊網絡。另外,每個節點都會執行得到指令的智能合約,而這能讓它們的EVM跟網絡其他部分保持同步。
每一個節點都執行一部分軟件,因此,整個網絡就像是一台巨大但緩慢的分布式計算機。每一次細小的執行都將被儲存在區塊鏈上進而成為永久性的數據。
還有一個叫做Gas的東西,那麼是什麼呢?
上麵已經提到,執行智能合約需要付出一些代價,而這個代價的大小取決於執行過程中的內存、存儲、計算和電力。據悉,每個報表都有一個指定的成本,打個比方需要執行一個使用節點內存的報告,那麼它會有一個與之匹配的特定成本。這裏的成本單位就被叫做Gas,它最終通過彙率轉換成以太幣ether。
無論用戶何時執行某一智能合約,ta都需要定義好最大的Gas量,當達到設定的最高量之後該動作就會停止。這樣做的好處是能避免智能合約發生無限循環的情況。這種情況通常都由程序員的疏忽造成。
總結
以太坊不僅僅是一種虛擬貨幣,它的真正價值在於它的用途--能夠允許所有者使用全球分布式計算機。雖然它的成本高昂、速度緩慢,但當與更快、中心化控製的 服務器 麵前,這些都不是問題。因為當成本更低、速度更快的中心化控製計算機(服務器)遭遇網絡攻擊時,上麵所有的客戶都將受到波及,而去中心化的計算機卻不會麵臨有這樣的問題。此外,隻要有網絡的地方就會有以太坊。