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

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

開發相關名詞

概覽

原文 解釋
Ethereum 可縮寫為 eth, Eth,一個 Layer 1 的區塊鏈實作項目,可以類比為一個全球通用的公開資料庫
Eth node 參與 Ethereum chain 的儲存節點
EVM Ethereum 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
code the immutable EVM bytecode, CA 才有
storage empty by default, CA 才有
wallet 集中管理帳戶的工具,有些 CeFi 會出自己的錢包,最常聽到的是 MetaMask (跨練且為個人持有)

手續費(gas)

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

原文 解釋
transaction 又可簡寫為 tx,每個 block 包含多筆 tx,同時也有 tx 數量上限,其依據 gasPrice 與 gasLimit 動態調整
ETH Ether 的縮寫,以太幣本人,用來繳納交易手續費,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 used total gas consumed in block(percentage of gas limit)
nonce puzzles found by the miner

transaction fields

原文 解釋
data deploy contract 行為會顯示 bytecode,call function 行為會顯示 function args
value 如果是 tx 則顯示 eth in wei,如果為 0 表示此次呼叫為 deploy contract 或是 call
nonce puzzles 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
    transaction call
    write read
    修改 blockchain 的狀態 不會修改
    會有 hash 不會
    會廣播 不會
    需要 gas 不需要
    時間較久(要被 mint) 時間很快
    return tx hash return value

references

cmd + /