为什么以太坊不仅仅是一个加密货币
為什么以太坊不僅僅是一個加密貨幣
盡管比特幣(Bitcoin)和以太坊(Ethereum)是經(jīng)常被一起提及的兩個詞,但實際上,比特幣與以太坊有著很大的區(qū)別。它們唯一的共同點是,以太坊也是一個在區(qū)塊鏈之上運行的加密資產(chǎn)。
與比特幣僅僅是一個加密貨幣不同,以太坊還有很多其他特性。正是這些特性,才使得以太坊成為了一個去中心化的超級電腦。
在理解?以太坊?之前,我們必須要理解區(qū)塊鏈是如何工作的。如果你已經(jīng)了解了區(qū)塊鏈,或者讀過?理解區(qū)塊鏈終極指南,可以直接進入下一節(jié)。
什么是區(qū)塊鏈?
簡單點說,區(qū)塊鏈就是一個數(shù)據(jù)庫。它是一個不斷增長的數(shù)據(jù)庫,里面存儲著特定類型的數(shù)據(jù),并且有著一些獨特的屬性:
為了理解為什么幾個人能夠持有一份拷貝,并且能夠與其他人進行同步,讓我們來假設(shè)現(xiàn)在網(wǎng)絡(luò)里面有 10 個人,每個人的面前都有一個空的文件夾,并且有著一頁空的紙。無論何時,網(wǎng)絡(luò)中任何一個人做了一些事情,比如轉(zhuǎn)賬,他們必須要將這件事告訴網(wǎng)絡(luò)里面的其他人。
每個人都會在紙上記錄這件事,直到填滿這張紙。這個時候,每個人都必須通過解決一個數(shù)學(xué)難題來封裝這頁紙。通過解決數(shù)學(xué)難題,保證了每個人手中的紙都有著同樣的內(nèi)容,并且無法被修改。誰第一個解出了題,誰就會得到一定數(shù)量的加密貨幣的獎勵。更多內(nèi)容可見:the ultimate guide to understand blockchain.
一旦封裝完畢,這一頁就會被加到文件夾里面,然后拿出新的一頁,繼續(xù)重復(fù)上述過程。
隨著時間不斷增長,這些包含了重要記錄(也就是交易,transaction)的頁(也就是區(qū)塊,block)不斷地被加入到文件夾(鏈)里面,最終形成了數(shù)據(jù)庫(區(qū)塊鏈)。
區(qū)塊鏈存儲了什么?
區(qū)塊鏈可以用于存儲各種類型的數(shù)據(jù),它所存儲的數(shù)據(jù),賦予了區(qū)塊鏈價值。比特幣區(qū)塊鏈存儲的是金融交易,因此,看起來像是美元或者英鎊這樣的貨幣。除了跟美元所承載的功能以外,比特幣沒有任何額外的功能。但是,以太坊則不同。
以太坊不僅僅是一個像美元,英鎊或者比特幣一樣的貨幣。以太坊的目標不僅是成為一個貨幣,更是成為下圖中的事物:
以太坊實際是一個巨型電腦!但是,它是一個非常慢的電腦 – 大概比今天的普通電腦慢上 100 倍,并且非常昂貴。“以太坊電腦” 有著跟?90 年代智能手機?類似的境遇。除了一些非常簡單的事情以外,它幾乎做不了任何事情。
這聽起來好像并不怎么吸引人,那么,為什么以太坊還有這么多人趨之若鶩呢?這是一個非常好的問題。不夸張的說,以太坊正在席卷整個世界,因為它是一個完全去中心化的電腦,分布在世界各地。理解以太坊區(qū)塊鏈是如何工作的,就會看出它是如何承擔了一個世界電腦的角色。
以太坊是如何工作的?
與其他所有的區(qū)塊鏈一樣,以太坊需要數(shù)以千計的人在他們的個人電腦上運行一個軟件來支撐整個網(wǎng)絡(luò)。網(wǎng)絡(luò)中的每個節(jié)點(電腦),運行一個叫做以太坊虛擬機(Ethereum Virtual Machine, EVM)的東西。可以把 EVM 想象成是一個操作系統(tǒng),它能夠理解并且執(zhí)行用以太坊上特定的編程語言編寫的軟件。由 EVM 所執(zhí)行的軟件或者應(yīng)用叫做 “智能合約(Smart Contract)”。
為了在這臺世界電腦上做一些事情,你需要進行付出一定的費用。但是,你并不是付美元或者英鎊這樣普通的貨幣。而是通過叫做以太(ether,ETH)的以太坊網(wǎng)絡(luò)原生的加密貨幣,來支付相關(guān)費用。以太跟比特幣幾乎一模一樣,唯一不同的是它被用于支付在以太坊上執(zhí)行智能合約的費用。
無論是一個人,還是一個智能合約,都被視作為以太坊上的用戶(user)。一個人可以以太坊上做什么,一個智能合約就可以做什么。
智能合約看起來就跟網(wǎng)絡(luò)的其他任何人一樣。它們都可以發(fā)送或者是接收以太,就跟其他的貨幣一樣。
但是智能合約又不是完全跟人類相同。跟人類用戶不同的是,智能合約也可以執(zhí)行一個預(yù)先定義好的計算機程序來執(zhí)行各種操作,執(zhí)行的操作可以根據(jù)事件進行觸發(fā)。為了感受一下智能合約的威力,讓我們來考慮一個例子:
智能合約的威力
假設(shè)你和我對明天的天氣進行打賭,我打賭明天是晴天,但是你打賭是雨天。雙方同意輸?shù)囊环奖仨毥o贏的一方 100 美元。那么,我們?nèi)绾尾拍軌蜃龅竭@一點,并且確保輸?shù)囊环讲粫Y嚹?#xff1f;我可以想到三種不同的方式:
1. 信任對方
最簡單的方式是信任對方。如果我們是老朋友了,那么信任對方是非常容易的。我知道你住哪兒,你也知道關(guān)于我的各種糗事。但是如果我們是完全不認識的陌生人,事情就會變得復(fù)雜的多。我沒有理由去信任你,你也沒有理由去信任我。
2. 簽一個法律協(xié)議
另一個貌似可行的方案是,將我們的賭約正式形成一個有法律效力協(xié)議。我們雙方簽署一個定義了賭約所有細節(jié)的協(xié)議 – 包括如果輸?shù)囊环竭`反協(xié)議會怎樣。
這個協(xié)議將會使得我們有義務(wù)付給贏的一方,但是它沒有任何實用性,因為通過合法途徑強制協(xié)議執(zhí)行的成本,要比這個賭約的價值高得多。
3. 請一個共同的朋友幫忙
我們可以找一個雙方都信得過的朋友,然后各給這個朋友 100 美元進行保管。第二天,他會檢查天氣,然后把全部的 200 美元給打賭贏的一方。非常簡單和方便,除了有一點:如果這個雙方都信任的朋友把錢卷走了怎么辦?
現(xiàn)在,我們有了三種不同的方案來實施賭約,但是每種方案都有缺點:
- 因為是陌生人,所以我們無法信任彼此。
- 強制執(zhí)行一個協(xié)議是如此的昂貴,以至于不具有任何實用性。
- 求助一個共同的朋友同樣又會遇到信任的問題。
以太坊的智能合約就是為了解救這個問題。一個智能合約就像是可信賴的共同的朋友,只不過是用代碼寫的而已。我們可以在以太坊上寫一個合約,這個合約從我們雙方獲得 100 美元的輸入,然后在第二天,通過開放的天氣 API 來檢查天氣,并將所有的以太轉(zhuǎn)給贏的一方。
一個合約寫好以后,就無法再被編輯或者修改。因此,你可以保證無論合約的內(nèi)容是什么,它都會無條件執(zhí)行。
但是,智能合約是如何執(zhí)行?跟區(qū)塊鏈又有什么關(guān)系呢?
智能合約是如何與區(qū)塊鏈關(guān)聯(lián)的?
無論智能合約何時被執(zhí)行,它都會在一個區(qū)塊上被記錄為一個交易。概括來講,一筆以太坊上的交易看起來就像是這樣:
除了最后的?Data,其他字段相信大家一眼就能看出來是干什么的。也正是這個?data?字段,才使得以太坊與眾不同。data?用于記錄智能合約的創(chuàng)建和執(zhí)行,就像記錄交易一樣。在以太坊區(qū)塊鏈上,任何一個塊都可能包含以下三種交易:
1. 從一個人轉(zhuǎn)移到另一個人的普通交易
這些普通交易,就像是比特幣交易。如果你直接發(fā)送以太給你的朋友,那么 data 字段就是空的,這樣的交易就是普通交易。
2. 只有發(fā)送方卻沒有接收方
如果一筆交易中沒有接收方,這意味著此次交易是用?data?字段的內(nèi)容在網(wǎng)絡(luò)中創(chuàng)建一個智能合約。data?字段包含了代碼,這些代碼就像是網(wǎng)絡(luò)中的其他用戶一樣。
3. 將以太轉(zhuǎn)到一個智能合約
無論何時,只要一個用戶(或是一個智能合約)想要執(zhí)行一個智能合約,他/她/它 都會創(chuàng)建一個智能合約的交易,并在?data?字段放置執(zhí)行指令。
與其他區(qū)塊鏈一樣,無論上面提到的三種事件何時發(fā)生,都會被公布到網(wǎng)絡(luò)中,并且網(wǎng)絡(luò)中的每個人都會對它進行記錄。除了記錄,每個節(jié)點還會執(zhí)行智能合約,來使得他們的 EVM 狀態(tài)與網(wǎng)絡(luò)的其他部分同步。
每個節(jié)點都執(zhí)行軟件的一部分,因此,使得整個網(wǎng)絡(luò)像一個巨大(但是緩慢)的分布式電腦。每次無論多么小的執(zhí)行,都會被記錄到區(qū)塊鏈上,永久存在。
等一下,Gas 是什么東西?
如果用戶想要使用和執(zhí)行智能合約,就必須要為執(zhí)行該智能合約付出一定費用。這筆費用是給了實際花費了內(nèi)存,存儲,計算和電力等資源來執(zhí)行合約的節(jié)點。
為了計算智能合約的費用,合約中的每條語句都有收費標準。比如,如果執(zhí)行的語句用到了節(jié)點的內(nèi)存,這個語句會有一個價格。如果執(zhí)行一個語句用到了節(jié)點的硬盤存儲,這些語句又是另一個價格。在這里,定義成本的單位就叫做 Gas。最終,Gas 會通過匯率轉(zhuǎn)換成以太(ETH)。
無論何時執(zhí)行一個智能合約,你都必須要定義一個可以花費的 Gas 的最大值。當智能合約執(zhí)行完成,或是達到了 Gas 的限額,就會停止執(zhí)行。這是為了避免在智能合約中出現(xiàn)無限循環(huán),防止出現(xiàn)一些反復(fù)執(zhí)行的語句導(dǎo)致程序停滯。
因為程序員的一些錯誤,很可能會導(dǎo)致這樣的事情發(fā)生。所以每次重復(fù)執(zhí)行時,都會消耗掉一些分配的 Gas,因此使得不會出現(xiàn)無限循環(huán)這樣的事情。沒有必要因為程序員的錯誤,導(dǎo)致一個節(jié)點在執(zhí)行時崩潰。使用 Gas 就解決了這個問題。
這就是以太坊
以太坊不僅僅是一個用于交易的加密貨幣,它的實際價值在于其目的 – 以太坊的目的,是為了讓人們使用由幾千個節(jié)點支撐的分布式世界電腦。
當然,由于每條語句必須被網(wǎng)絡(luò)的中每個節(jié)點所執(zhí)行,去中心化的分布式電腦會變得很慢,而且很貴。不過,這里所說的慢是跟誰相比較呢?是跟更快,但是由中心化控制的服務(wù)器。
為了能夠享受中心化電腦帶來的低成本,我們交出了我們的控制權(quán)。但是如果中心化服務(wù)器宕機或是被黑客攻擊,那么所有與它連接的客戶端都會掛掉。而一個去中心化的分布式電腦,只有在每個節(jié)點都停止工作的情況下,才會掛掉。換句話說,這使得它永遠不會宕機。無論在哪里,只要有網(wǎng)絡(luò),就有以太坊。
總結(jié)
以上是生活随笔為你收集整理的为什么以太坊不仅仅是一个加密货币的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这位中国小伙 6个月用比特币攒了125个
- 下一篇: 小心!智能合约再爆高危漏洞,两大加密货币