區(qū)塊鏈以太坊是怎么回事
一、前言
提起區(qū)塊鏈大家往往都會(huì)聯(lián)想到“比特幣”,因?yàn)楸忍貛乓恢眰涫艽蠹宜嗖A的話題,那么,區(qū)塊鏈等同于比特幣嗎?其實(shí)這個(gè)想法是錯(cuò)誤的,我們可以說(shuō)比特幣是區(qū)塊鏈,但區(qū)塊鏈并不是比特幣。接下來(lái)就為大家講解區(qū)塊鏈?zhǔn)鞘裁?區(qū)塊鏈到底是什么?
二、區(qū)塊鏈
比方說(shuō),一個(gè)圈子里有10個(gè)人,每個(gè)人都有一臺(tái)電腦和一個(gè)自己的簽名,每臺(tái)電腦里都有一個(gè)賬本,里面記錄了這10個(gè)人的余額和交易;每次圈子里的人做了一筆交易(轉(zhuǎn)賬)的時(shí)候,就要更新所有電腦上的賬本(10份賬本),10份賬本時(shí)時(shí)同步來(lái)確認(rèn)交易完成。這個(gè)賬本就是區(qū)塊鏈。賬本是一頁(yè)一頁(yè)的,每一頁(yè)寫滿了交易記錄,一頁(yè)頁(yè)堆在一起成了一本本子就是賬本;區(qū)塊鏈?zhǔn)且粔K一塊的,每一塊寫滿了交易記錄,連在一起成了一條鏈就是區(qū)塊鏈。
比方說(shuō),甲轉(zhuǎn)給乙100元,就在10臺(tái)電腦里的賬本上都寫上:XXXX年XX月XX日甲和乙做了這么一筆交易,甲轉(zhuǎn)給乙100元。這樣一來(lái),圈子里的人都知道了甲的錢少了100,乙的錢多了一百。
每個(gè)人想要知道甲還有多少錢,不需要去銀行查賬,只需要查自己那本帳就知道了;兩個(gè)人想要交易,不需要銀行,直接可以轉(zhuǎn)賬,等待圈子里的每個(gè)賬本同步就行了。不需要通過(guò)中心權(quán)威機(jī)構(gòu)確認(rèn)和查詢,這叫去中心化(區(qū)塊鏈?zhǔn)且粋€(gè)放在非安全環(huán)境中的分布式數(shù)據(jù)庫(kù)(系統(tǒng)));
每個(gè)人都能通過(guò)電腦看到所有人的交易記錄(轉(zhuǎn)賬記錄),這叫透明性;
圈子外的人可以看到賬本,只要你復(fù)制了他們的賬本并且有一個(gè)自己獨(dú)有的簽名就可以加入圈子了,這叫開放性(區(qū)塊鏈采用共識(shí)算法來(lái)對(duì)于新增數(shù)據(jù)達(dá)成共識(shí));
如果誰(shuí)想耍賴,比方說(shuō)甲硬說(shuō)自己沒(méi)給乙匯100元,還把自己的賬本給改了,這沒(méi)用,其他9本賬本都說(shuō)他匯了。除非甲篡改了9本賬本,不然他就無(wú)法抵賴,這就是信息的不可篡改(區(qū)塊鏈采用密碼學(xué)的方法來(lái)保證已有數(shù)據(jù)不可能被纂改)。
三、以太坊
虛擬貨幣似乎已經(jīng)順應(yīng)時(shí)代的潮流成為了眾多投資者的香餑餑,主要是因?yàn)樘摂M貨幣并不像實(shí)體投資那樣投資成本比較多,而且還容易出現(xiàn)不應(yīng)該出現(xiàn)的狀況,虛擬貨幣的市值是非常高的,以比特幣為例,現(xiàn)在一個(gè)比特幣的價(jià)值將近2萬(wàn)元人民幣。以太坊是后期興起的虛擬貨幣平臺(tái),那么,以太坊的真正含義是什么呢?
以太坊是一個(gè)全新開放的區(qū)塊鏈平臺(tái),它允許任何人在平臺(tái)中建立和使用通過(guò)區(qū)塊鏈技術(shù)運(yùn)行的去中心化應(yīng)用。就像比特幣一樣,以太坊不受任何人控制,也不歸任何人所有——它是一個(gè)開放源代碼項(xiàng)目,由全球范圍內(nèi)的很多人共同創(chuàng)建。和比特幣協(xié)議有所不同的是,以太坊的設(shè)計(jì)十分靈活,極具適應(yīng)性。在以太坊平臺(tái)上創(chuàng)立新的應(yīng)用十分簡(jiǎn)便,隨著Homestead的發(fā)布,任何人都可以安全地使用該平臺(tái)上的應(yīng)用。
其實(shí),比特幣和以太坊算是師出同門,以太坊的創(chuàng)始者是根據(jù)比特幣的現(xiàn)實(shí)情況來(lái)制造這樣的程序的,所以,以太坊很好的彌補(bǔ)了比特幣在各方面的劣勢(shì),以太坊的發(fā)展前景是非常廣闊的,而且,以太坊的市值也是在不斷的增長(zhǎng)的,升值的可能性是非常大的。
四、以太坊虛擬機(jī)
虛擬機(jī)指的是,通過(guò)軟件模擬的、具備完整硬件系統(tǒng)功能并運(yùn)行在隔離環(huán)境下的完整計(jì)算機(jī)系統(tǒng);比如虛擬化物理機(jī) VMware、Java 虛擬機(jī)等。而以太坊虛擬機(jī)(Ethereum
Virtual Machine,EVM)則是建立在以太坊區(qū)塊鏈上的代碼運(yùn)行環(huán)境,其主要作用是處理以太坊系統(tǒng)內(nèi)的智能合約。
簡(jiǎn)單來(lái)說(shuō),以太坊虛擬機(jī)是一個(gè)完全獨(dú)立的沙盒,合約代碼可對(duì)外完全隔離并在 EVM 內(nèi)部運(yùn)行。由于 EVM 分散儲(chǔ)存在每個(gè)節(jié)點(diǎn)的計(jì)算機(jī)上,所以希望創(chuàng)建智能合約的公司可使用類似 JavaScript 和 Python 等編程語(yǔ)言創(chuàng)建運(yùn)行于 EVM 的應(yīng)用程序;同時(shí)以太坊虛擬機(jī)又能與主網(wǎng)的其余部分隔離,運(yùn)行時(shí)不影響主區(qū)塊鏈的操作。出于這個(gè)原因,以太坊有時(shí)被形容為“世界電腦”。
當(dāng)以太坊區(qū)塊鏈上有轉(zhuǎn)賬的時(shí)候,以太坊虛擬機(jī)會(huì)按照下面的步驟來(lái)執(zhí)行:
確認(rèn)轉(zhuǎn)賬是否有正確的數(shù)值,確認(rèn)簽名的有效性以及是否轉(zhuǎn)賬nonce符合特定轉(zhuǎn)賬數(shù)量的nonce。如果有誤差,轉(zhuǎn)賬會(huì)被作為錯(cuò)誤返回。
計(jì)算轉(zhuǎn)賬需要的費(fèi)用,并且收取燃料費(fèi)用。
執(zhí)行數(shù)字資產(chǎn)轉(zhuǎn)賬到特定地址。
以太坊虛擬機(jī)會(huì)檢測(cè),發(fā)出者有足夠的手續(xù)費(fèi)用,不然轉(zhuǎn)賬就會(huì)退回。而且轉(zhuǎn)賬費(fèi)用不會(huì)退回,這會(huì)支付給礦工。
但是,如果轉(zhuǎn)賬失敗是因?yàn)榻邮苷叩刂酚袉?wèn)題,以太坊虛擬機(jī)會(huì)把發(fā)出的資金數(shù)量以及相關(guān)的手續(xù)費(fèi),退還給發(fā)出者(沒(méi)有礦工收到費(fèi)用)。
五、Gas
Gas 翻譯成中文就是“燃?xì)狻?,是以太坊世界的燃料,它決定了以太坊網(wǎng)絡(luò)生態(tài)系統(tǒng)的正常運(yùn)行。
Gas 用來(lái)衡量執(zhí)行某些動(dòng)作需要多少“工作量”,這些“工作量”就是為了執(zhí)行該動(dòng)作支付給網(wǎng)絡(luò)的費(fèi)用額。通俗理解,Gas 是給礦工的傭金,并以 ETH 支付,無(wú)論是交易、執(zhí)行智能合約并啟動(dòng) DApps,還是支付數(shù)據(jù)存儲(chǔ)費(fèi)用,都需要用到 Gas。
六、以太坊燃料Gas
比特幣的創(chuàng)建是因?yàn)槊總€(gè)人都在問(wèn)同樣的問(wèn)題:
是否有可能創(chuàng)造一種可以在沒(méi)有任何中間人的情況下在兩個(gè)人之間轉(zhuǎn)移的金錢形式?
是否有可能創(chuàng)建一個(gè)可以在區(qū)塊鏈等功能上運(yùn)行的分散化資金?
Satoshi Nakamoto在創(chuàng)造比特幣時(shí)回答了這些問(wèn)題。我們終于有了一個(gè)去中心化的貨幣體系,可以將資金從一個(gè)人轉(zhuǎn)移到另一個(gè)人身上。
然而,比特幣存在問(wèn)題,這是所有第一代區(qū)塊鏈都存在的問(wèn)題。他們只允許貨幣交易,沒(méi)有辦法為這些交易添加條件。
Alice可以發(fā)送Bob 5 BTC,但她不能對(duì)這些交易施加條件。例如。她不能告訴鮑勃,只有當(dāng)他執(zhí)行某些任務(wù)時(shí)他才能拿到錢。
這些條件將需要非常復(fù)雜的腳本,需要一種“東西”使流程更加無(wú)縫。。。.這個(gè)“東西”是就是以太坊的智能合約。
以太坊在區(qū)塊鏈上實(shí)現(xiàn)了一個(gè)運(yùn)行環(huán)境,被稱為以太坊虛擬機(jī)(EVM)。每個(gè)參與到網(wǎng)絡(luò)的節(jié)點(diǎn)都會(huì)運(yùn)行EVM作為區(qū)塊驗(yàn)證協(xié)議的一部分。他們會(huì)驗(yàn)證區(qū)塊中涵蓋的每個(gè)交易并在EVM中運(yùn)行交易所觸發(fā)的代碼。每個(gè)網(wǎng)絡(luò)中的全節(jié)點(diǎn)都會(huì)進(jìn)行相同的計(jì)算并儲(chǔ)存相同的值。合約執(zhí)行會(huì)在所有節(jié)點(diǎn)中被多次重復(fù),這個(gè)事實(shí)得使得合約執(zhí)行的消耗變得昂貴,所以這也促使大家將能在鏈下進(jìn)行的運(yùn)算都不放到區(qū)塊鏈上進(jìn)行。對(duì)于每個(gè)被執(zhí)行的命令都會(huì)有一個(gè)特定的消耗,用單位Gas計(jì)數(shù)。
Gas是以太坊世界的燃料,它決定了以太坊網(wǎng)絡(luò)生態(tài)系統(tǒng)的正常運(yùn)行,用于交易、執(zhí)行智能合約、支付數(shù)據(jù)存儲(chǔ)費(fèi)用等各個(gè)方面。
每個(gè)合約可以利用的命令都會(huì)有一個(gè)相應(yīng)的Gas值。Gas值的存在避免智能合約進(jìn)入死循環(huán),你不能編寫永不結(jié)束的程序,因?yàn)槟阌帽M了Gas,計(jì)算將被節(jié)點(diǎn)拒絕。
Gas同時(shí)也是礦工的傭金,并以ETH?付。在以太坊中,由交易發(fā)起者付出的Gas最終會(huì)以ETH貨幣的價(jià)值計(jì)算并付給礦工作為手續(xù)費(fèi),也就是:Gas cost= Gas Used*Gas Price。
七、Gas與手續(xù)費(fèi)
說(shuō)到手續(xù)費(fèi),大家可能很熟悉。天下沒(méi)有免費(fèi)的午餐,無(wú)論是以太坊,還是比特幣,都需要手續(xù)費(fèi),但是二者的手續(xù)費(fèi)模式是不一樣的。比特幣是直接支付比特幣作為轉(zhuǎn)賬手續(xù)費(fèi)的,以太坊卻不是這樣的。
以太坊本質(zhì)上是一個(gè)虛擬機(jī),這個(gè)虛擬機(jī)是去中心化的,全世界各國(guó)人民各自掌控的虛擬機(jī),聯(lián)合起來(lái)形成一個(gè)“世界級(jí)的外匯名詞解釋http://www.fx61.com/definitions”。當(dāng)你發(fā)送token,執(zhí)行合約、轉(zhuǎn)移以太坊,或者在區(qū)塊上做其他事情時(shí),計(jì)算機(jī)在處理這筆交易時(shí),需要進(jìn)行計(jì)算,這個(gè)計(jì)算過(guò)程需要消耗網(wǎng)絡(luò)資源。這樣一來(lái),你必須支付“燃料費(fèi)”(也就是Gas),才能讓計(jì)算機(jī)為你工作,讓礦工為你處理交易。
通常情況下,發(fā)送方愿意支付的Gas價(jià)格越高,礦工從交易中獲得的價(jià)值就越大,礦工們也就越有可能選擇這個(gè)交易。通過(guò)這種方式,礦工可以自由地選擇交易。為了給發(fā)送者設(shè)置Gas 價(jià)格做參考,礦工們可以直接提出他們執(zhí)行交易所需的最低Gas 價(jià)格。
以太坊上,你所支付的手續(xù)費(fèi)等于:GasPrice 乘以GasUsed。
你可以把 GasPrice 理解為是燃油單價(jià), GasUsed 理解為汽車所需多少升燃油。對(duì)于汽車,假如說(shuō)每升汽油是20塊錢,一萬(wàn)升汽油就是20萬(wàn)塊錢。對(duì)于以太坊,每Gas是20吉偉(吉偉是以太幣的數(shù)量單位),一萬(wàn)個(gè) Gas 就是:20乘以一萬(wàn),等于20萬(wàn)吉偉,2萬(wàn)吉偉等于0.0002以太坊,也就是說(shuō),本次交易手續(xù)為 0.0002以太坊。
(注釋:以太幣數(shù)量的基礎(chǔ)單位是“偉”,以太幣的數(shù)量單位有“偉、芬尼、以太”,其中,“以太”被用作普通交易;“芬尼”被用作微交易;“薩博”和“偉”被用作進(jìn)行關(guān)于費(fèi)用和合約實(shí)施。)
由此我們可以發(fā)現(xiàn),Gas并不是以太坊,它是一種單獨(dú)的體系,它的匯率與以太坊成一定的比例,經(jīng)過(guò)了比例兌換,最終形成交易費(fèi)。
Gas價(jià)格和以太幣價(jià)格都是由市場(chǎng)自由調(diào)節(jié)的,但是二者是不一樣的,他們的不同之處在于:以太幣的價(jià)格是根據(jù)市場(chǎng)情況波動(dòng),而Gas的價(jià)格由礦工決定的,如果燃料價(jià)格低于礦工們的最低要求,礦工就會(huì)拒絕處理交易。Gas和以太坊分離,可以保護(hù)系統(tǒng)免受隨著以太坊價(jià)格的快速變化而可能出現(xiàn)的波動(dòng)。
大部分礦工都會(huì)選擇利益優(yōu)先,處理交易時(shí)候,他們會(huì)按Gas價(jià)格從高到底排列,優(yōu)先處理Gas價(jià)格高的,如果你很著急交易 ,就需要提高Gas價(jià)格,讓礦工早點(diǎn)看到你;如果你不著急呢,你只需要設(shè)定一個(gè)Gas價(jià)格,這個(gè)價(jià)格在礦工設(shè)置的Gas價(jià)格底線之上就行了。
八、總結(jié)
正如我在文中展示的那樣,以太幣的功能遠(yuǎn)不止是以太坊網(wǎng)絡(luò)交易手續(xù)費(fèi)的支付手段。因此,以太幣已經(jīng)在其短暫的生命周期中積累了巨大的價(jià)值,并開始產(chǎn)生類貨幣屬性。
我預(yù)計(jì)以太幣將繼續(xù)被用作以太坊開放經(jīng)濟(jì)的原生數(shù)字貨幣,而且介于這一經(jīng)濟(jì)將會(huì)持續(xù)增長(zhǎng),對(duì)以太幣的需求也會(huì)持續(xù)增長(zhǎng)。
雖然有些人會(huì)滿足于比特幣的發(fā)展現(xiàn)狀,但事實(shí)通常并非如此。比特幣和其它所有的金融資產(chǎn)一樣,都需要外部競(jìng)爭(zhēng)來(lái)發(fā)揮其應(yīng)有的優(yōu)勢(shì)。
競(jìng)爭(zhēng)幣的存在就能達(dá)到這樣的效果,雖說(shuō)目前仍然沒(méi)有任何一種競(jìng)爭(zhēng)項(xiàng)目可以對(duì)比特幣構(gòu)成了實(shí)質(zhì)性的威脅。但競(jìng)爭(zhēng)幣的存在還是合理的,它們能夠幫助比特幣不斷地改進(jìn)。
雖然比特幣世界有大量積極的研發(fā)成果,不過(guò)對(duì)于創(chuàng)新的功能它總是會(huì)有所延遲。并且我們不能總是依靠同一群開發(fā)者為比特幣添加新功能。有時(shí)候,競(jìng)爭(zhēng)幣開發(fā)者的一些新想法也會(huì)寫入比特幣源碼里。不過(guò),并不是所有競(jìng)爭(zhēng)幣的功能都能用于強(qiáng)化比特幣源碼。
如果以太坊成功升級(jí)會(huì)使比特幣的護(hù)城河打開一個(gè)真正的缺口,會(huì)使普通人們認(rèn)識(shí)到區(qū)塊鏈行業(yè)還有更多機(jī)會(huì),也會(huì)促使資本尋找這個(gè)行業(yè)內(nèi)的新寵兒。
畢竟這個(gè)世界沒(méi)有絕對(duì)不變的事物,比特幣也不可能就一直代表著區(qū)塊鏈技術(shù),只有不斷創(chuàng)新改變才可能繼續(xù)保持整個(gè)行業(yè)的活力。