第2章 以太坊核心入門指南:單位、錢包與首個智能合約

Posted by PDQ881 加密视角 on September 5, 2025

keywords:「以太坊、以太幣單位、MetaMask、測試以太幣、智能合約、EOA、EVM、Faucet、wei、gwei、Ropsten」


认识以太幣單位:從 wei 到 ether

在進入任何操作前,先學會「數錢」。以太坊的原生貨幣叫「以太幣」(通称 ETH 或 Ξ)。其最小可分單位為 wei,1 ETH = 10¹⁸ wei。開發者日常還會接觸:

  • gwei(gigawei)= 10⁹ wei,常用來表示 gas 價格
  • finney = 10¹⁵ wei,約 0.001 ETH
  • szabo = 10¹² wei,約 0.000001 ETH

👉 快速對照表帶你三分鐘記住所有以太幣單位

無論交易介面顯示環顯示什麼,鏈上儲存一定是 wei 的無號整數。別把「Ethereum(系統)」與「ether(貨幣)」搞混,這是新手最易踩的坑。


挑選你的第一個以太坊錢包

錢包不是「存幣」,而是「保管私鑰」。挑錢包就是挑 私鑰管理方式。以下三大類型適合不同場景:

  1. 瀏覽器擴充錢包(MetaMask)
    開發者最愛;一鍵切換主網、測試網;支援硬體錢包。
  2. 多平台輕錢包(Jaxx)
    手機與桌面同步;介面友善,適合新手。
  3. 網頁錢包(MyEtherWallet)
    免安裝,功能齊全,但請務必離線生成私鑰。

👉 一文讀懂不同錢包優劣,不再選擇恐懼

提醒:任何時候都能換錢包,只要妥善保存私鑰或助記詞,資產永久跟著你。


新手上路:MetaMask 全流程

正確安裝

  1. 打開 Chrome/Firefox/Brave。
  2. 擴充商店搜尋 MetaMask,核對:
    • 發行者 metamask.io
    • ID:nkbihfbeogaeaoehlefnkodbefgpgknn
  3. 點擊「加到 Chrome」即可。

創建錢包

  • 設置 8 位以上高強度密碼(只管控本地訪問)。
  • 記下 12 個助記詞,用紙抄寫兩份,離線保存。
  • 初次確認後,你便擁有主網地址(例 0x9E7…)。

切換網路

MetaMask 預設連接 Ethereum Mainnet;初學者請先轉至 Ropsten Test Network

測試網路同步主網邏輯,但 ETH 無價值,可盡情試驗。


FAQ:初學者最關心的 5 個問題

Q1:私鑰洩露怎麼辦?
A1:立即將資產轉到新錢包,原錢包棄用。

Q2:測試網真的免費嗎?
A2:是的,但需要「水龍頭」(Faucet)領測試以太幣。

Q3:可以同時使用多個錢包嗎?
A3:可以,只要各備份各自的私鑰,不會衝突。

Q4:手機與電腦如何同步?
A4:透過助記詞復原即可,不同設備即時看到同餘額。

Q5:地址大小寫有差別嗎?
A5:EIP-55 校驗碼區分大小寫,複製貼上最安全,手動輸入容易出錯。


領取 Ropsten 測試以太幣

  1. MetaMask 切至 Ropsten Test Network
  2. 點擊「Buy → Ropsten Test Faucet」。
  3. 網頁已自動帶入你的地址,點擊綠色按鈕「request 1 ether」。
  4. 等 10–30 秒區塊確認,MetaMask 顯示 1 ETH

獲得測試幣後,先把 1 ETH 轉回水龍頭練手:

  • 點擊「Donate 1 ether」
  • MetaMask 提示餘額不足(需要 1 + gas 費)。
  • 再領 1 ETH,餘額變 2 ETH 後即可成功發送。體驗 gas 與 nonce 的真實流程。

「世界計算機」:以太坊全景概念圖

以太坊並非僅是加密貨幣,而是一台 去中心化世界計算機

  • EVM(以太坊虛擬機) 決定計算邏輯
  • 智能合约 就是在 EVM 上運行的「程序」
  • ether 就是運行程序的「燃料」

👉 深入淺出 EVM:為什麼它不只是虛擬機


外部擁有帳戶(EOA) vs. 合約帳戶

比較點 EOA(你現在的錢包) 合約(稍後部署的智能合約)
控制权 私鑰持有人 代码逻辑
创建方式 钱包軟體生成 发送创建交易至零地址
能否持有ETH
能否执行逻辑

寫下人生第一份智能合約:Faucet.sol

需求:任何地址都能來領 0.1 測試 ETH。
語言:Solidity 0.8.x
練習目的:理解語法 + 安全漏洞範例。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Faucet {
    // 提領額度上限:0.1 ether
    uint256 public constant MAX_WITHDRAW = 0.1 ether;

    function withdraw(uint256 amount) public {
        require(amount <= MAX_WITHDRAW, "Too greedy");
        payable(msg.sender).transfer(amount);
    }

    // 接收任意 ETH
    receive() external payable {}
}

本例刻意保留安全漏洞,正式開發需再做存取控制與重入保護。


使用 Remix IDE 編譯與部署

  1. 瀏覽器開啟 Remix IDE
  2. 新建 Faucet.sol,貼上程式碼 → 自動編譯顯示綠色打勾。
  3. 左側選單切至「Run & Deploy」→ Environment 選 Injected Web3,連結 MetaMask。
  4. 點擊「Deploy」→ MetaMask 彈出交易確認 → 等候 15–30 秒,合約成功上鏈。

與智能合約互動實戰

步驟 1:為合約充值

  • 複製合約地址(如 0x72e...c7829)。
  • 在 MetaMask 向該地址發送 1 ETH
  • 打開 ropsten.etherscan.io 查看,你會看到餘額 +1 ETH

步驟 2:嘗試提款

  • 回到 Remix → 合約面板 → withdraw 函數
  • 輸入提款數額 100000000000000000(=0.1 ether in wei)
  • 點「Transact」→ MetaMask 確認 → 等待上鏈

區塊鏈瀏覽器中你將看到兩筆交易:

  • 常規交易:0 ether,攜帶 data → withdraw 函數
  • 內部交易:0.1 ether 從合約地址轉出到你錢包

進一步探索

  • 點擊 Etherscan 的「Internal Txns」頁籤,觀察 合約調用 → ether 轉移 的內部流程。
  • 每筆交易皆攜帶 input data,即是智能合約的「指令」;你可以將任意地址貼上 Etherscan,一路追蹤整個資金流向。
  • 這種「可公開審計」的特性,正是區塊鏈透明信任的核心來源。

小結與下一步

你已學會:

  1. 以太幣單位與換算
  2. 選錢包、安裝 MetaMask、領測試幣
  3. 撰寫、編譯並部署首個 Solidity 合約
  4. 讀懂區塊鏈瀏覽器中的合約互動

下一章將進一步探討 Solidity 安全與進階語法,並帶你構建真正可以上主網的 DApp。別忘了把本次的助記詞抄在安全處,你的 以太坊入門 正式畢業!