在之前比特幣本質(zhì)其實(shí)是UTXO的文章中介紹了比特幣的不是一個(gè)基于賬戶的概念启涯,而且UTXO贬堵。但是在以太坊中恃轩,就是基于賬戶的概念了。
什么是以太坊
- 以太坊是一個(gè)開源的有智能合約功能的公共區(qū)塊鏈平臺(tái)扁瓢。
- 通過其專用加密貨幣以太幣提供去中心化的虛擬機(jī)(EVM)來處理點(diǎn)對(duì)點(diǎn)合約详恼。
- 擁有圖靈完備的計(jì)算機(jī)語言。
和比特幣最大的區(qū)別是什么引几?
以太坊是基于賬戶昧互,一種是外部賬戶(私鑰控制),另外一種是合約賬戶(合約代碼控制)伟桅,即智能合約被看成一個(gè)特殊賬戶敞掘,用戶可以對(duì)該賬戶進(jìn)行交易,實(shí)現(xiàn)對(duì)該賬戶中的屬性和方法的調(diào)用楣铁,而比特幣是基于UTXO玖雁,無賬戶概念。
如下為以太坊框架圖:
智能合約
智能合約并不是什么新的東西盖腕,早在1995年律學(xué)者尼克·薩博提出:一個(gè)智能合約是一套以數(shù)字形式定義的承諾(promises) 赫冬,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。
例如信用卡自動(dòng)還款功能溃列,其實(shí)也是一個(gè)智能合約劲厌,得到用戶的授權(quán)后在指定時(shí)間自動(dòng)執(zhí)行,但是這是中心化的听隐。而區(qū)塊鏈上智能合約一旦寫在鏈上就不能被更改补鼻,而且代碼是開源的,實(shí)現(xiàn)去中心化雅任。
區(qū)塊鏈中智能合約指是合約賬戶中的代碼风范,任何人都可以編寫一份合約代碼,并且部署到以太坊沪么。而部署和執(zhí)行智能合約的方法硼婿,需要向網(wǎng)絡(luò)支付gas費(fèi)用。
gas
gas可以理解為交易的手續(xù)費(fèi)禽车,礦工可以根據(jù)gas的大小選擇打包的交易加酵,而每筆交易都會(huì)包含一個(gè)gas limit(startGas),表示這筆交易最多接受的gas費(fèi)哭当。因?yàn)間as消耗只是一個(gè)大致估算,許多用戶會(huì)支付超額的gas來保證交易被快速打包冗澈,超過gas limit的部分會(huì)被退回钦勘。
- gas的作用:
它確保一個(gè)交易支付了適當(dāng)?shù)馁M(fèi)用給以太網(wǎng)絡(luò)。 執(zhí)行的每個(gè)操作(或合同執(zhí)行)交易都要求支付其相應(yīng)的費(fèi)用亚亲,這樣才能確保網(wǎng)絡(luò)不會(huì)因?yàn)檫M(jìn)行大量密集的工作而陷入僵局彻采。 - 為什么比特幣沒有g(shù)as:
這是一個(gè)不同于比特幣交易費(fèi)用的策略腐缤,比特幣交易費(fèi)用僅基于交易的千字節(jié)大小。 由于Ethereum允許運(yùn)行任意復(fù)雜的計(jì)算機(jī)代碼肛响,所以很短的代碼實(shí)際上可以導(dǎo)致大量的計(jì)算工作正在完成岭粤。
gas費(fèi)用 = gasUsed(該交易消耗的gas總數(shù)量) + gasPrice(該交易中單位gas的價(jià)格,一般gwei為單位)
區(qū)塊的gas limit則是單個(gè)區(qū)塊允許最多的總量特笋,用這個(gè)來決定單個(gè)區(qū)塊能打包多少筆交易剃浇。比如有5筆交易的gas limit分別是10、20猎物、30虎囚、40、50蔫磨,而區(qū)塊的gas limit 是100淘讥,則礦工可以選擇10、20堤如、30蒲列、40打包,也可以選擇10搀罢、40蝗岖、50打包。如果嘗試超過區(qū)塊的gas limit打包魄揉,則會(huì)被網(wǎng)絡(luò)拒絕剪侮,提示“交易超過區(qū)塊gas limit”。
一個(gè)區(qū)塊的gas limit為4712357 gas洛退,則表示一個(gè)區(qū)塊大約打包224筆交易(gas limit 為 21000)瓣俯。