天天看點

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

了解為什麼以太币不僅僅隻是另一種加密貨币的終極指南。

“比特币”和“以太坊”是常常結對出現的術語,實際上他們之間有着天壤之别。 兩者唯一的共同點就是他們均為基于區塊鍊運作的加密資産。

相比于僅僅是單純的加密貨币,比如比特币,以太坊還有着一些其他的功能性,使得它某種意義上成為一個巨大的去中心化式計算機。

要了解以太坊,就必須明白區塊鍊是怎麼回事。 如果你已經對它非常熟悉,或已看過我的《區塊鍊終極指南》,請直接跳轉下一小節。

什麼是區塊鍊?

一個區塊鍊,簡單地說,就是一個資料庫。 它是一個不斷增長地含有特定種類資料的資料庫,具有非常顯著的特性:

一旦資料存儲在資料庫中,它就永遠不會被修改或删除。 區塊鍊上的每一個記錄都是永久儲存的。

不是一個人或一個組織機構在維護這個資料庫,而是成千上萬的人在做這事,每一個人都有自己的資料庫副本。

要想了解人們是如何能夠将其擁有的資料庫副本與其他人保持同步的,我們先來想象一下十個人在網絡中的情形。 每個人面前都有一個空白檔案夾和一個空白頁面。 每當網絡中有人做了重要的事情,比如轉賬彙款,網絡中的每個人都會收到公告。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

每個人都在他們的頁面上記錄這些公告,直到頁面填滿。當頁面被填滿後,每個人都必須通過解決一個數學難題來加密頁面。 解決這個數學難題是為了確定每個人的頁面都具有相同的内容,而且永遠不會被修改。 誰先完成這個過程,誰就會獲得一些加密貨币作為獎勵。

一旦頁面被密封加密,該頁面将會被添加到檔案夾中,一個新的頁面會随之産生,該過程将循環往複永遠持續。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

随着時間的流逝,包含重要記錄(交易資訊)的這些頁面(區塊)将不斷地被添加到檔案夾中(鍊),進而形成資料庫(區塊鍊)。

區塊鍊存儲的究竟是什麼?

任何種類的資料都是可以用區塊鍊來存儲的,而區塊鍊的價值也正是由其所存儲的資料的類型來賦予的。 比特币的區塊鍊就是用于存儲金融交易記錄的,是以其成為了類似于像美元或英鎊這樣的貨币。 比特币擁有和美元完全一樣的功能和特性,而以太坊則不同。

以太坊不僅僅是一種像類似美元、英鎊或者比特币這樣的貨币。相較于成為一種貨币,以太坊有着更高的目标使命。 以太坊如同下圖:

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

以太坊基本上本質上就是一台巨大的計算機! 然而,這是一個非常慢的計算機——比當今的普通電腦慢五到一百倍——而且非常昂貴。 “以太坊計算機”與90年代罕見的智能手機的能力相同, 大緻隻能做一些非常微不足道的事情。

這聽起來并不是會有大作為的樣子,為什麼以太坊的熱度會這麼高? 這是一個很好的問題。 以太坊正在如暴風般席卷世界的原因是,它是一種可分布式部署在全球的完全去中心化的計算機。 了解以太坊區塊鍊的運作原理将會揭示它如何作為一個世界級計算機來運作。

以太坊是如何運作的?

像任何其他的區塊鍊一樣,以太坊需要幾千人在他們的計算機上運作一個軟體來為網絡供以動力。網絡中的每個節點(計算機)都運作着一個被稱為ethereum virtual machine(evm)的腳本語言。 evm可以被看做是一個作業系統,它可以了解并執行用以太坊特定程式設計語言編寫的軟體。而 這些用ethereum virtual machine執行的軟體或應用程式則被稱為“智能合同”(smart contracts)。

不管你要在這台世界級計算機上做什麼,你都需要付出一定的報酬。 不過,你并不需要用像美元或英鎊這樣的正常貨币來支付,一切都必須以一種網絡的本地加密貨币來支付,稱為ether(以太币)。 ether(以太币)和比特币幾乎是完全一樣的性能,除了它也可以用來支付執行以太坊的智能合同(smart contracts)。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

無論是一個人還是一個智能合同 (smart contracts),在以太坊上都被看作是使用者。 人類使用者可以做什麼,智能合同(smart contracts)也可以做同樣的事情,兩者都可以像流通其他貨币一樣支付和接收以太币(ether)。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

但與人類使用者不同的是,智能合同還可以執行預定義的計算機程式,在被觸發時執行各種操作。 為了了解智能合同的威力,我們來舉一個例子。

智能合同的威力

想象一下,我們來打賭明天的天氣。 我押明天是晴天而你押明天下雨,輸家必須給赢家100美金。 我們如何來完成這個賭約,并確定輸家将履行自己的承諾呢? 我可以想到三種方法:

1.互相信任

最簡單的做法就是選擇互相信任。 如果我們長期以來一直是朋友,互相信任是相當容易的。 我知道你住在哪裡,而你知道有關我的任何糗事。 但如果我們之間完全是陌生人,那麼事情就會變得比較困難。 你沒有理由相信我,而我也沒有理由去相信你。

2.簽一個法律協定

另一個貌似可行的方法是将我們的賭注制定為一個法律協定,雙方都要簽署這個協定。協定詳細規定了關于我們賭注的各項條款,包括如果輸家違反協定将會發生什麼。

這個協定使我們有法律義務去向赢家支付賭金,但它其實不具有任何實際意義,因為使用法律手段去制定這個協定的成本,将比這個賭注本身貴得多。

3.尋求我們共同朋友的幫助

我們可以尋求一位我們都十分信任的朋友,分别給她/他100美金來保管。第二天,她/他根據天氣結果給勝者200美金。很簡單吧,除非出現意外,比如這位被信任的朋友卷款逃跑。

目前我們有三種不同的方法來完成賭約,每一種選項都有它的缺點。因為我們互為陌生人,我們無法相信彼此;強制達成一個法律協定太過昂貴以至于難以實行;尋求共同朋友的幫助再次引發信任問題。

以太坊的智能合約能夠解決這類問題。智能合約就像共同信任的朋友,隻不過寫在代碼中。以太坊允許我們開發一款向雙方收取價值100美金的以太币的軟體,第二天通過開源天氣api來查詢天氣結果,将價值200美金的以太币都轉交給勝者。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

簽署,它無論如何都不可能被修改。是以,你可以確定它在任何情況下被執行,無論合約發出了什麼指令。

但是智能合約如何被執行呢?它如何關聯區塊鍊呢?

智能合約如何與區塊鍊關聯?

當智能合約被執行時,它會将執行資訊作為一次交易記錄在區塊上。從一個很高的層面來看,在以太坊的區塊鍊上的一次交易執行如下:

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

這些字段除了一個地方外,都較好了解。“data”字段賦予了以太坊特殊性,它用來記錄一次交易中智能合約的建立與執行。任何以太坊的區塊鍊上的區塊能夠包含三種交易:

1.在一個使用者和另一個使用者之間常見的轉移交易

這些都是網絡中常見的類似比特币的交易。如果你直接将以太币發給你的朋友,那麼“data”字段将置空。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

2.将以太币從一個賬戶發送出來,但目标賬戶為空

當沒有目标賬戶的交易進行時,意味着交易的目的是使用“data”字段中的内容在網絡中建立一個新的智能合約。“data”字段包含的軟體代碼使它看起來就像網絡中的另一個使用者 。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

3.将以太币從一個賬戶發送到一份智能合約

每當一個賬戶使用者(或一個智能合約)想要執行一份智能合約時,他/她/它就需要與智能合約進行交易,并在“資料”字段中存儲執行指令。

以太坊是什麼鬼?!媲美比特币的加密币大揭秘

就像其他的區塊鍊,無論上文提及的三種交易在任何時間發生,都會向全網發出通知,每個賬戶使用者都會記下。除了注意到記錄,每個節點都會執行指定的智能合約,使得evm狀态與網絡其他節點保持同步。

每個節點執行軟體中的一部分,進而使整個網絡充當一個巨大的(但速度較慢)的去中心化計算機。為了永久化,每一次執行都會存儲到區塊鍊中。

等會兒,我聽說聽到有個詞叫gas,這是什麼?

我剛告訴你執行智能合約的賬戶必須付一定的費用。它付給那些消耗了記憶體、存儲空間、計算能力和電力來執行智能合約的節點。

為了計算智能合約的費用,每一條語句都有一個指定的費用。舉例來說,如果你執行的這條語句使用了節點的記憶體,這種語句就有一個特定的費用。如果你執行的語句使用那個節點的磁盤空間,這種語句就有附加的具體的費用。這種費用就叫做gas。最終,gas通過一定的匯率轉變成以太币。

當你執行智能合約,你必須預定義要消耗的gas的最大值。當gas達到這個值時,執行将被終止。這是為了避免智能合約中出現無限循環,使得程式重複一個語句集合時而不再往下執行。

這種情況往往是因為程式設計者粗心大意。每一次重複消耗一些指定的gas,這使得無限循環成為有限。因為一個程式設計者的失誤而使得節點執行停滞沒有任何意義。gas的概念解決了這個問題。

同學們,這就是以太坊

以太坊不僅僅用于交易加密貨币,它真正的價值存在于它的使命。以太坊的使命是讓使用者能夠使用包含數千個動力節點的世界級去中心化計算機。

當然,由于每一個簡單的語句都被網絡中的每一個節點執行,去中心化、分布式電腦計算機會變得緩慢而昂貴。但是慢的反面是什麼?是更快的,但是中央化控制的伺服器。

為了享受使用中央計算機帶來的較低消耗,我們給予它們控制我們的權利。如果中央計算機(伺服器)當機或者被攻擊,它将連累所有連接配接的使用者。而一台去中心化的計算機隻有在所有節點都被攻克後才會當機,是以它總是能工作的。隻要有網絡,就有以太坊。

原文釋出時間為:2017-09-12

作者 | mohit mamoria

編譯 | 吳雙,happen,卞峥

elaine,yawei xia

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“大資料文摘”微信公衆号