智能合約開發學習—專有名詞

這裡整理之前上課的筆記,都是入門級別一共 4 章,分別如下:

開發相關名詞

概覽

原文解釋
Ethereum可縮寫為 eth, Eth,一個 Layer 1 的區塊鏈實作項目,可以類比為一個全球通用的公開資料庫
Eth node參與 Ethereum chain 的儲存節點
EVMEthereum Virtual Machine 的縮寫,執行 Smart Contract 的 runtime environment, it runs application of bytecode on consensus
smart contract智能合約,程式本人,是一套獨立且完整的應用程式,對鏈只有兩種操作:狀態修改(transaction)或是取得資料(call
solidity撰寫智能合約的程式語言

帳戶(account)

原文解釋
Externally Owned Account又稱 EOA,可以想像成個人的戶頭
Contract Account又稱 CA,執行智能合約的帳戶細節參考
nonce由指定帳戶送出的 tx counter(確保同個 tx 不會發生 double spending)
blance帳戶餘額,單位是 wei
address帳戶位置,為一串 hash,每條鏈有不同的算法,ETH 使用的是 keccak-256
Key pair非對稱加密的 key,EOA 才有,private key 用來 sign tx。在鏈上持有的金額實際上不是「持有」而是透過而是透過 private key 去解密出放在以太鏈上的 fund
codethe immutable EVM bytecode, CA 才有
storageempty by default, CA 才有
wallet集中管理帳戶的工具,有些 CeFi 會出自己的錢包,最常聽到的是 MetaMask (跨練且為個人持有)

手續費(gas)

執行「狀態修改」的操作時需要 gas

原文解釋
transaction又可簡寫為 tx,每個 block 包含多筆 tx,同時也有 tx 數量上限,其依據 gasPrice 與 gasLimit 動態調整
ETHEther 的縮寫,以太幣本人,用來繳納交易手續費,1 ETH === 10^18 wei
gas交易手續費的通稱,單位是 gwei,1 gwei === 10^-9 wei,一個 block 的所有 gas 會被成功算出該 block 的 miner 取得
Wei以太幣的最小單位,1 wei === 10^-18
gasPrice交易發起者想要支付的 gas 數量以確保他發起的 tx 能被 mint,越高代表發起的 tx 越快被 mint
gasLimit每個 tx 能消耗的最大 gas 數,目的是避免對運算的 DoS 攻擊,預設為 21,000
OPCODE被 EVM 執行的運算操作, 每次操作都需要 gas,eth 官方有每個 OPCODE 對應的 gas

eth explorer(帳本查詢工具)

原文解釋
block height該 chain 的長度
gas usedtotal gas consumed in block(percentage of gas limit)
noncepuzzles found by the miner

transaction fields

原文解釋
datadeploy contract 行為會顯示 bytecode,call function 行為會顯示 function args
value如果是 tx 則顯示 eth in wei,如果為 0 表示此次呼叫為 deploy contract 或是 call
noncepuzzles found by the miner
gasLimit如果該交易消耗的 gas 小於此值,剩餘會返回給 sender
hash又稱作 id, unique id to trace

其他名詞

原文解釋
Consensus共識機制,決定鏈當下狀態的規則,有 PoW, PoS, PoA 三種機制
DeFi去中心化交易所,透過個人錢包進行交易
CeFi中心化交易所,就是虛擬貨幣銀行,同常會代管你的錢包
HD wallet具有 seed phrase 的 wallet
seed phrase助記詞,由隨機的單詞組成的密碼,用來加密錢包使用
miner礦工,算 block 的節點,PoW 時代的稱呼
minter礦工,PoS 時代的稱呼
sealer礦工,又稱 block signer,PoA 時代的稱呼

補充說明

  • EOA 產生 tx,CA 產生 message
  • 交易失敗表示消耗完所有的 gas 後交易失敗

Address

  • EOA address 透過 keccak-256 雜湊 public key 的最橫 20 bytes,使用 hex format 表示,最前面再加上 “0x”
  • CA address 由 contract creator 去計算,包含 nonce

transaction

  • 交易生命週期
    1. client node(usually geth) 初始化 tx 物件
    2. client node 使用 private key 簽署 tx
    3. tx 被廣播給的所有的 client 並回傳 tx hash
    4. tx 被加入到 tx pool 裡面等待被礦工驗證(挖礦)。礦工節點接收 tx,pool 是許多礦工與非礦工節點聚合的地方
    5. 礦工透過共識機制進行解謎,最先解出謎題的礦工會建立一個 block,每個 block 裡面有多少個 tx 取決於該 block 定義的 gasLimit
    6. 解出謎題的礦工把 block 廣播給鍊上的所有節點,所有節點會執行該 tx 表示有收到,但只有解出謎題的礦工能取得該 block 的 獎勵(block reward + txfee - gas)
  • 執行智能合約定義的 function 有兩種方式
    • call: 純粹的 read,no broadcast or publish to the blockchain,不需要 gas
    • transaction: 執行 write 行為,修改 state,需要 gas,will broadcast to the blockchain
  • transaction vs call
    transactioncall
    writeread
    修改 blockchain 的狀態不會修改
    會有 hash不會
    會廣播不會
    需要 gas不需要
    時間較久(要被 mint)時間很快
    return tx hashreturn value

references

cmd + /