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