現(xiàn)在,我們已經(jīng)討論了ethereum的內(nèi)容,讓我們深入了解一下這個(gè)平臺(tái)在底層的功能。
考慮一下在線筆記本應(yīng)用程序在“什么是Ethereum?”
使用ethereum,這個(gè)應(yīng)用程序不需要一個(gè)實(shí)體來(lái)存儲(chǔ)和控制它的數(shù)據(jù)。為了做到這一點(diǎn),ethereum大量借鑒了比特幣的協(xié)議和區(qū)塊鏈的設(shè)計(jì),但它調(diào)整了它來(lái)支持超出金錢的應(yīng)用。
然而,Ethereum的目標(biāo)是抽象出比特幣的設(shè)計(jì),這樣開發(fā)者就可以創(chuàng)建應(yīng)用程序或協(xié)議,這些應(yīng)用程序或協(xié)議具有額外的步驟、新的所有權(quán)規(guī)則、可供選擇的交易格式或不同的傳輸方式。
ethereum的“Turing-complete”編程語(yǔ)言的目標(biāo)是允許開發(fā)人員編寫更多的程序,其中區(qū)塊鏈?zhǔn)聞?wù)可以管理和自動(dòng)化特定的結(jié)果。
這種靈活性可能是ethereum的主要?jiǎng)?chuàng)新,正如指南中所解釋的“以太的智能合同是如何工作的”。
Ethereum區(qū)塊鏈
ethereum區(qū)塊鏈的結(jié)構(gòu)與比特幣非常相似,因?yàn)樗钦麄€(gè)交易歷史的共享記錄。網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)都存儲(chǔ)了這段歷史的副本。
與ethereum的最大區(qū)別在于,它的節(jié)點(diǎn)存儲(chǔ)了每個(gè)智能契約的最新狀態(tài),除了所有的以太交易。(這比描述的要復(fù)雜得多,但是下面的文字可以幫助你把腳弄濕。)
對(duì)于每個(gè)ethereum應(yīng)用程序,網(wǎng)絡(luò)需要跟蹤“狀態(tài)”,或所有這些應(yīng)用程序的當(dāng)前信息,包括每個(gè)用戶的余額、所有智能合同代碼以及它們都存儲(chǔ)在哪里。
比特幣使用未經(jīng)處理的交易輸出來(lái)追蹤誰(shuí)擁有多少比特幣。
雖然聽起來(lái)更復(fù)雜,但這個(gè)想法相當(dāng)簡(jiǎn)單。每次比特幣交易完成時(shí),網(wǎng)絡(luò)就會(huì)“打破”總金額,就好像它是紙幣一樣,以某種方式發(fā)行比特幣,使數(shù)據(jù)的行為與實(shí)物硬幣或變化類似。
為了進(jìn)行未來(lái)的交易,比特幣網(wǎng)絡(luò)必須把你所有的改變都加起來(lái),這些改變被歸類為“花費(fèi)”或“未使用”。
另一方面,Ethereum使用帳戶。
就像銀行賬戶基金一樣,以太令牌出現(xiàn)在錢包里,可以被移植到另一個(gè)賬戶上。資金總是在某個(gè)地方,但卻沒(méi)有你所說(shuō)的持續(xù)的關(guān)系。
什么是ethereum虛擬機(jī)?
使用ethereum,每當(dāng)一個(gè)程序被使用時(shí),一個(gè)由數(shù)千臺(tái)計(jì)算機(jī)組成的網(wǎng)絡(luò)就會(huì)處理它。
用智能契約特定編程語(yǔ)言編寫的契約被編譯成“字節(jié)碼”,該特性被稱為“ethereum virtual machine”(EVM)可以讀取和執(zhí)行。
所有節(jié)點(diǎn)使用它們的EVMs執(zhí)行此契約。
請(qǐng)記住,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都保存著該網(wǎng)絡(luò)的事務(wù)和智能合同歷史的副本,并跟蹤當(dāng)前的“狀態(tài)”。每當(dāng)用戶執(zhí)行某個(gè)操作時(shí),網(wǎng)絡(luò)上的所有節(jié)點(diǎn)都需要達(dá)成協(xié)議,該更改發(fā)生了。
這里的目標(biāo)是讓礦商和節(jié)點(diǎn)網(wǎng)絡(luò)負(fù)起責(zé)任,將轉(zhuǎn)移從國(guó)家轉(zhuǎn)移到國(guó)家,而不是像貝寶或銀行這樣的權(quán)威機(jī)構(gòu)。比特幣礦商證實(shí),比特幣的所有權(quán)從一個(gè)人轉(zhuǎn)移到了另一個(gè)人。EVM執(zhí)行與開發(fā)人員最初編程的任何規(guī)則的契約。
在EVM上的實(shí)際計(jì)算是通過(guò)基于堆棧的字節(jié)碼語(yǔ)言(機(jī)器可以讀取的1和0)來(lái)實(shí)現(xiàn)的,但是開發(fā)人員可以用高級(jí)語(yǔ)言編寫智能合同,例如Solidity和蟒蛇,這樣便于人們閱讀和編寫。
就像我們的指南“Ethereum Mining Works”中所解釋的那樣,礦工是防止不良行為的人——比如確保沒(méi)有人會(huì)不止一次地花費(fèi)他們的錢,并且拒絕那些沒(méi)有得到報(bào)酬的智能合同。
在那里有幾千個(gè)ethereum節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都在編譯和執(zhí)行相同的代碼。
但是,你可能會(huì)想,這難道不比一個(gè)普通的計(jì)算昂貴得多嗎?是的,它是。這就是為什么網(wǎng)絡(luò)只能用于特定的用例。
評(píng)論