日拱一卒:以太坊學(xué)習(xí)筆記一
以太坊是一個(gè)面向去中心化應(yīng)用的全球性開源平臺(tái)。你可以把它想象成一臺(tái)永不停機(jī)的世界計(jì)算機(jī),在以太坊上,軟件開發(fā)者可以編寫智能合約,智能合約通過一套標(biāo)準(zhǔn)對(duì)數(shù)字價(jià)值進(jìn)行控制,在世界任何一個(gè)角落都能訪問。
以太坊特點(diǎn)
以太坊是“世界計(jì)算機(jī)”,這代表它是一個(gè)開源的、全球分步的計(jì)算基礎(chǔ)設(shè)施。執(zhí)行稱為智能合約(smart contract)的程序。它使用區(qū)塊鏈來同步和存儲(chǔ)系統(tǒng)狀態(tài)以及名為以太幣(ETH)的加密貨幣,以計(jì)量和約束執(zhí)行資源成本。本質(zhì)是一個(gè)基于交易的狀態(tài)機(jī)(transaction-based state machine)。
單獨(dú)為智能合約指定編程語言 Solidity 使用了內(nèi)存需求較高的哈希函數(shù):避免出現(xiàn)算力礦機(jī) uncle 塊激勵(lì)機(jī)制:降低礦池的優(yōu)勢(shì),減少區(qū)塊產(chǎn)生間隔為 15 秒 難度調(diào)整算法:一定的自動(dòng)反饋機(jī)制 gas 限制調(diào)整算法:限制代碼執(zhí)行指令數(shù),避免循環(huán)攻擊 記錄當(dāng)前狀態(tài)的哈希樹的根哈希值到區(qū)塊:某些情形下實(shí)現(xiàn)輕量級(jí)客戶端 為執(zhí)行智能合約而設(shè)計(jì)的簡(jiǎn)化的虛擬機(jī) EVM
以太坊的組成部分
P2P網(wǎng)絡(luò):以太坊在以太坊主網(wǎng)絡(luò)上運(yùn)行,該網(wǎng)絡(luò)可在TCP端口30303上尋址 交易(Transaction):以太坊交易是由網(wǎng)絡(luò)消息,其中包括發(fā)送者(sender)、接收者(receiver)、值(value)和數(shù)據(jù)的有效負(fù)荷(payload) 以太坊虛擬機(jī)(EVM):以太坊狀態(tài)轉(zhuǎn)換由以太坊虛擬機(jī)(EVM)處理,這是一個(gè)執(zhí)行字節(jié)碼(機(jī)器語言指令)的基于堆棧的虛擬機(jī)。 數(shù)據(jù)庫(BlockChain):以太坊的區(qū)塊鏈作為數(shù)據(jù)庫(通常是Google的LevelDB)本地存儲(chǔ)在每個(gè)節(jié)點(diǎn)上,包含序列化后的交易和系統(tǒng)狀態(tài)。
智能合約
智能合約是一種可編程合約,允許對(duì)手間設(shè)定交易條件,交易的執(zhí)行無需信任第三方。
為了完成更復(fù)雜的流程和計(jì)算,多個(gè)智能合約可以被組合在一起來互相操作,這被稱為去中心化應(yīng)用(DApp)。
以太幣是什么?
以太幣是以太坊區(qū)塊鏈的原生數(shù)字貨幣。以太幣還被用來支付智能合約和DApp在以太坊中運(yùn)行的費(fèi)用。
Gas是什么?
在以太坊上,所有的交易和合約執(zhí)行都需要支付少量費(fèi)用。這筆費(fèi)用被稱為Gas。從技術(shù)上講,Gas指的是執(zhí)行某項(xiàng)操作或某個(gè)智能合約所需計(jì)算資源的度量單位。執(zhí)行的操作越復(fù)雜,完成該操作所需的Gas就越多。Gas費(fèi)用完全以ETH支付。
Gas費(fèi)用可以手動(dòng)設(shè)置。在網(wǎng)絡(luò)因高利用率而發(fā)生擁堵的情況下,Gas費(fèi)用最高的交易將優(yōu)先被驗(yàn)證。通過驗(yàn)證的交易會(huì)被敲定并添加到區(qū)塊鏈中。若Gas費(fèi)用設(shè)得太低,則交易將會(huì)進(jìn)入等待隊(duì)列,并需要一段時(shí)間才能被打包。
去中心化應(yīng)用(DApp)是什么?
在以太坊網(wǎng)路下,DApp是通過使用智能合約來與區(qū)塊鏈進(jìn)行交互的接口。
