- 區(qū)塊鏈安全入門與實(shí)戰(zhàn)
- 劉林炫 鄧永凱 萬(wàn)鈞 張繼龍
- 1888字
- 2021-01-25 14:37:47
1.3.2 以太坊
隨著比特幣被越來越廣泛地應(yīng)用在國(guó)際匯款中,其他為金融、云計(jì)算、信息傳遞和分布式管理所專門設(shè)計(jì)的去中心化應(yīng)用(DApp)也在研發(fā)中,以太坊提供了一個(gè)平臺(tái)來創(chuàng)建這些去中心化應(yīng)用。
以太坊(Ethereum)是一個(gè)開源的有智能合約的公共區(qū)塊鏈平臺(tái),通過其專用加密貨幣以太幣(Ether,簡(jiǎn)稱ETH,代碼中常用寫法為ether)來提供去中心化的以太虛擬機(jī)(Ethereum Virtual Machine)來處理點(diǎn)對(duì)點(diǎn)合約。
以太坊用戶端也稱為etherbrowser,可以用來構(gòu)建傳遞信息的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),在普遍用編程語(yǔ)言構(gòu)建的區(qū)塊鏈中,允許人們把區(qū)塊鏈技術(shù)應(yīng)用到任何他們想開發(fā)的應(yīng)用中。因?yàn)橐蕴皇腔趨^(qū)塊鏈技術(shù)的,所以在這個(gè)平臺(tái)上可以開發(fā)出完全可信賴的透明的金融應(yīng)用。線上密碼安全系統(tǒng)可以用來管理資產(chǎn)和合約。社交網(wǎng)絡(luò)和信息傳遞應(yīng)用允許用戶掌控自己的數(shù)據(jù),用于交易未充分利用的資源,比如CPU(Central Processing Unit,中央處理器)時(shí)間和硬盤空間,還可以應(yīng)用到線上投票和分布式治理。而最讓人期待的以太坊應(yīng)用可能還在開發(fā)中。
預(yù)測(cè)一種創(chuàng)新型的平臺(tái)將能用于做什么并不容易,通過提供一種全球通用的可編程的區(qū)塊鏈,可以把它打包成任何人都可以使用的用戶端,人們希望以太坊項(xiàng)目對(duì)金融、點(diǎn)對(duì)點(diǎn)貿(mào)易、分布式處理等發(fā)揮積極作用。
以上為以太坊創(chuàng)始人V神對(duì)以太坊區(qū)塊鏈系統(tǒng)的闡述。下面我們將從以太坊的產(chǎn)生、特點(diǎn)、賬戶、交易與消息以及比特幣和以太坊的區(qū)別等方面來詳細(xì)介紹以太坊。
1.以太坊的產(chǎn)生
2013~2014年,程序員Vitalik Buterin受比特幣啟發(fā)后,首次提出了“以太坊”的概念,大意為“下一代加密貨幣與去中心化應(yīng)用平臺(tái)”;2014年,通過ICO眾籌開始得以發(fā)展;2015年,以太坊區(qū)塊鏈正式上線,最終發(fā)展為世界第二大數(shù)字貨幣平臺(tái)。
2.以太坊的特點(diǎn)
以太坊區(qū)塊鏈第一大的特點(diǎn)是支持高級(jí)語(yǔ)言編程,也就是智能合約,可以編程實(shí)現(xiàn)豐富的應(yīng)用場(chǎng)景。第二大特點(diǎn)是以太坊每15秒出一個(gè)塊,有更短的區(qū)塊確認(rèn)時(shí)間。第三大特點(diǎn)是以太幣沒有總量限制,初始發(fā)行量為7200萬(wàn)枚,每年增產(chǎn)1800萬(wàn)枚。
以太坊區(qū)塊鏈系統(tǒng)是區(qū)塊鏈和智能合約的完美結(jié)合,它不僅擁有區(qū)塊鏈的特性(數(shù)據(jù)公開透明、不可更改、可溯源、去中心化等),而且是一個(gè)可編程的區(qū)塊鏈。以太坊程序智能合約允許任何人創(chuàng)建和調(diào)用,其運(yùn)行環(huán)境是以太坊虛擬機(jī)(EVM)。
以太坊虛擬機(jī)是以太坊智能合約的運(yùn)行環(huán)境,它是一個(gè)被沙箱封裝起來,可以說是完全隔離的運(yùn)行環(huán)境,智能合約之間的相互調(diào)用也是非常有限的。每個(gè)參與到以太坊協(xié)議中的節(jié)點(diǎn)都會(huì)在各自的計(jì)算機(jī)上運(yùn)行軟件,這些都被稱為以太坊虛擬機(jī),由于區(qū)塊鏈的數(shù)據(jù)是公開透明的,并且每個(gè)節(jié)點(diǎn)的信息都同步,所以只要智能合約部署成功,就可以在任何節(jié)點(diǎn)上的以太坊虛擬機(jī)上運(yùn)行。
3.以太坊賬戶、交易與消息
以太坊賬戶分為兩種類型:
·外部賬戶(EOA):由私鑰控制,不關(guān)聯(lián)任何代碼。
·合約賬戶:由存儲(chǔ)在賬戶中的代碼控制,并且一個(gè)合約賬戶只能被一個(gè)外部賬戶操作。
對(duì)于這兩種賬戶類型的交易,如果是外部賬戶A給外部賬戶B發(fā)送消息,就只是價(jià)值轉(zhuǎn)移,或者說是轉(zhuǎn)賬操作;如果是外部賬戶A發(fā)送消息給合約賬戶,就可以進(jìn)行創(chuàng)建或者調(diào)用合約等其他操作。
交易是從一個(gè)賬戶發(fā)送給另一個(gè)賬戶的消息。這里有兩種情況:如果交易的目標(biāo)賬戶存在代碼,那么就會(huì)執(zhí)行目標(biāo)賬戶的代碼;如果目標(biāo)賬戶為0,則會(huì)創(chuàng)建一個(gè)新的合約。
以太坊中的交易是指從外部賬戶發(fā)出含有消息的簽名數(shù)據(jù)包。交易包含以下幾個(gè)部分:
·交易序列號(hào)(nonce):是賬號(hào)的一個(gè)交易計(jì)數(shù)器,這個(gè)字段能夠防止重放攻擊。
·接收方地址(receipt):可以是一個(gè)用戶賬戶,也可以是合約。
·價(jià)值(value):交易發(fā)送的以太幣數(shù)量(以太坊中的最小單位用wei表示,單位換算為1 Ether=1018wei)。
·數(shù)據(jù)(data):如果你的交易接收方是一個(gè)合約,那么該合約就可以讀取數(shù)據(jù)。
·gasPrice:每個(gè)Gas的價(jià)格用Gwei來表示,單位換算為1 Gwei=109 wei。
·gasLimit:交易可使用的最大Gas數(shù)量限制。
以太坊交易的狀態(tài)轉(zhuǎn)換圖如圖1.1所示。

圖 1.1
以太坊的狀態(tài)轉(zhuǎn)換函數(shù)為APPLY(S,TX)->S',作用如下:
·檢查交易的格式是否正確,簽名是否有效,nonce是否與發(fā)送者賬戶的nonce匹配,如果不匹配,則返回錯(cuò)誤。
·計(jì)算交易費(fèi)用,公式為fee=GAS×GASPRICE,并從簽名中確定發(fā)送者的地址。從發(fā)送者的賬戶中減去交易費(fèi)用,增加發(fā)送者的nonce。如果賬戶余額不足,則返回錯(cuò)誤。
·設(shè)定初值GAS,并根據(jù)交易中的字節(jié)數(shù)減去一定量的“燃料”(Gas)。
·從發(fā)送者的賬戶轉(zhuǎn)移貨幣價(jià)值到接收者賬戶。如果接收者賬戶不存在,就會(huì)創(chuàng)建一個(gè)新賬戶。如果接收者賬戶是一個(gè)合約,就會(huì)運(yùn)行合約的代碼,直到代碼運(yùn)行結(jié)束或者燃料用完。
·如果因?yàn)榘l(fā)送者賬戶沒有足夠的錢或者代碼執(zhí)行耗盡燃料而導(dǎo)致價(jià)值轉(zhuǎn)移失敗,則恢復(fù)原來的狀態(tài),但是還是需要支付交易費(fèi)用,交易費(fèi)用歸入礦工賬戶。
4.比特幣和以太坊的區(qū)別
比特幣和以太坊的區(qū)別大致如表1.2所示。
表 1.2

- 運(yùn)營(yíng)之光:我的互聯(lián)網(wǎng)運(yùn)營(yíng)方法論與自白2.0(珍藏版)
- 淘寶網(wǎng)店運(yùn)營(yíng)與管理(微課版)
- 出口跨境電商:速賣通SEO精準(zhǔn)引流與數(shù)據(jù)化運(yùn)營(yíng)
- 網(wǎng)購(gòu)服務(wù)共生體的創(chuàng)新研究
- 直播帶貨2.0:營(yíng)銷新紅利
- 微商團(tuán)隊(duì)長(zhǎng)操盤運(yùn)營(yíng)手冊(cè)
- 從零開始學(xué)小紅書:精準(zhǔn)定位+創(chuàng)作引流+種草運(yùn)營(yíng)+直播帶貨
- 中國(guó)消費(fèi)者網(wǎng)絡(luò)粘性及干預(yù)機(jī)制研究
- 農(nóng)產(chǎn)品電子商務(wù)與網(wǎng)絡(luò)營(yíng)銷
- 區(qū)塊鏈的核心功能及全參與方
- 直播營(yíng)銷:流量變現(xiàn)就這么簡(jiǎn)單
- 零基礎(chǔ)玩轉(zhuǎn)抖音電商
- 社會(huì)資本對(duì)在線品牌社區(qū)消費(fèi)者知識(shí)分享的影響研究
- 首都文化服務(wù)供應(yīng)商運(yùn)營(yíng)模式研究報(bào)告
- 從0到1學(xué)做直播帶貨