สร้าง Ethereum Wallet แบบ Offline: คู่มือสมบูรณ์
สารบัญ
การสร้าง Ethereum wallet ขณะเชื่อมต่อ internet สะดวก แต่เป็นความเสี่ยงที่ไม่จำเป็น ทุกวินาทีที่ seed phrase หรือ private key ของคุณมีอยู่บนอุปกรณ์ที่เชื่อมต่อ network มันเปิดเผยต่อ keyloggers, clipboard malware, browser extensions ที่มีสิทธิ์มากเกินไป และ remote access trojans วิธีแก้ตรงไปตรงมา: สร้าง wallet offline เขียน backup และนำเฉพาะ public address ออนไลน์เท่านั้น
คู่มือนี้อธิบายกระบวนการทางเทคนิคทั้งหมด --- จาก entropy generation ถึง Ethereum address ที่ใช้ได้ --- และอธิบายว่าทำไม keys ที่สร้าง offline ทำงานได้อย่างราบรื่นบน Layer 2 networks เช่น Polygon, Arbitrum, Optimism และ Base
ทำไมต้องสร้าง Offline?¶
Ethereum wallet โดยพื้นฐานคือแค่ private key ใครก็ตามที่ถือ key นั้นควบคุมเงิน การสร้าง offline กำจัด network vector ทั้งหมด
Setup ที่เหมาะสม:
- เครื่องที่สะอาด (OS ติดตั้งใหม่ หรือ live USB distribution)
- ไม่มี network connection ใดๆ
- เครื่องมือที่ทำงานในเบราว์เซอร์ด้วย Web Crypto API สำหรับ randomness
- กระดาษหรือ metal สำหรับบันทึก seed phrase
Ethereum Seed Phrase Generator ของ SafeSeed ออกแบบมาสำหรับสถานการณ์นี้โดยเฉพาะ ทำงาน client-side ทั้งหมด โหลดหน้า ตัดการเชื่อมต่อ internet และสร้าง wallet ในความโดดเดี่ยวอย่างสมบูรณ์ สำหรับภาพรวม offline security practices ดู Cold Storage Guide 2026
secp256k1 และ Keccak-256¶
cryptographic primitives สองตัวกำหนดระบบ key ของ Ethereum: secp256k1 elliptic curve สำหรับ key generation และ Keccak-256 สำหรับ address derivation
secp256k1: Elliptic Curve¶
Ethereum สืบทอด secp256k1 curve มาจาก Bitcoin สมการของ curve คือ:
y^2 = x^3 + 7 (mod p)
โดย p คือ 256-bit prime number ความปลอดภัยของระบบอยู่บน elliptic curve discrete logarithm problem (ECDLP) สำหรับการเปรียบเทียบ secp256k1 กับ ed25519 curve ที่ Solana ใช้ ดู secp256k1 vs ed25519
Keccak-256: จาก Public Key สู่ Address¶
Ethereum ไม่ใช้ public key โดยตรงเป็น address แต่ใช้ Keccak-256 (variant ของ SHA-3) กับ uncompressed public key สร้าง 32-byte hash 20 bytes สุดท้ายของ hash นั้นกลายเป็น Ethereum address พร้อม prefix 0x
Private Key (32 bytes)
→ secp256k1 multiplication → Public Key (64 bytes)
→ Keccak-256 hash → 32 bytes
→ เอา 20 bytes สุดท้าย → Ethereum Address (0x...)
จาก Seed Phrase สู่ ETH Address¶
wallet สมัยใหม่ส่วนใหญ่ไม่ให้คุณจัดการ raw private keys แต่ใช้ BIP39 seed phrases และ HD wallet derivation
Step 1: สร้าง Entropy¶
กระบวนการเริ่มด้วย 128 หรือ 256 bits ของ cryptographically secure randomness (entropy) บน SafeSeed randomness มาจาก crypto.getRandomValues() ของเบราว์เซอร์ ดู BIP39 Explained สำหรับ breakdown เต็ม
Step 2: Entropy สู่ Mnemonic Words¶
Entropy ถูก hash ด้วย SHA-256 เพื่อสร้าง checksum checksum bits ถูกเพิ่มต่อ entropy และ bit string รวมถูกแบ่งเป็น 11-bit segments แต่ละ segment map ไปยังคำหนึ่งใน BIP39 word list 2,048 คำ
Step 3: Mnemonic สู่ Master Seed¶
mnemonic words (บวก passphrase ที่เลือกได้) ถูกป้อนเข้า PBKDF2-HMAC-SHA512 ด้วย 2,048 iterations สร้าง 512-bit master seed
Step 4: Master Seed สู่ Master Key¶
512-bit seed ถูกป้อนเข้า HMAC-SHA512 ด้วย key "Bitcoin seed" output ถูกแบ่ง: 256 bits ซ้ายเป็น master private key, 256 bits ขวาเป็น master chain code
Step 5: Derive Ethereum Key¶
Ethereum ใช้ derivation path m/44'/60'/0'/0/0 ตามที่กำหนดโดย BIP44 แต่ละระดับ parent key และ chain code ถูกรวมผ่าน HMAC-SHA512 เพื่อสร้าง child key
Step 6: Private Key สู่ Address¶
private key ที่ derive แล้วถูก multiply กับ secp256k1 generator point เพื่อสร้าง public key public key ถูก hash ด้วย Keccak-256 และ 20 bytes สุดท้ายเป็น Ethereum address ของคุณ
Ethereum Private Key Generator ของ SafeSeed ให้คุณเห็นแต่ละ step ของ derivation นี้
Keys เดียวกันบน Layer 2 Networks¶
คุณสมบัติที่ใช้ได้จริงที่สุดอย่างหนึ่งของ Ethereum คือ keys ของคุณทำงานเหมือนกันบน EVM-compatible networks ทั้งหมด private key เดียวกันที่ควบคุม address 0xABC... บน Ethereum mainnet ก็ควบคุม 0xABC... บน Polygon, Arbitrum, Optimism และ Base
สิ่งที่ต่างระหว่าง chains คือ chain ID --- network identifier ที่ฝังใน transaction signatures (EIP-155) เพื่อป้องกัน replay attacks
สำหรับ workflow การสร้าง offline นี่หมายความว่า seed phrase backup เดียวปกป้อง assets ข้ามทุก EVM chains สร้างครั้งเดียว backup ครั้งเดียว และใช้ address เดียวกันทุกที่
สำหรับ security implications ของ shared addresses ข้าม EVM chains ดู EVM Address Security
Verify ด้วย Address Validator¶
หลังสร้าง wallet offline คุณควร verify ว่า address ถูก format อย่างถูกต้องก่อนส่งเงิน ใช้ Ethereum Address Validator เพื่อยืนยัน:
- Format check: address เริ่มด้วย
0xและมี 40 hexadecimal characters - EIP-55 checksum: mixed-case encoding ถูกต้อง
คุณรัน validator บนเครื่อง air-gapped เดียวกันได้ เปิดเครื่องมือ ตัดการเชื่อมต่อ วาง address และ verify
สำหรับคำอธิบายโดยละเอียดว่า address validation ทำงานอย่างไรข้าม chains ดู How to Validate a Crypto Address
Export ไปยัง MetaMask หรือ Wallets อื่น¶
Import เข้า MetaMask¶
MetaMask รับ BIP39 seed phrases โดยตรง:
- ติดตั้ง MetaMask บน browser profile ที่สะอาด
- เลือก "Import an existing wallet"
- กรอก 12 หรือ 24 คำ
- ตั้ง local password
MetaMask จะ derive key ที่ m/44'/60'/0'/0/0 และแสดง address ที่สอดคล้อง ตรวจสอบว่า match กับ address ที่สร้าง offline
Import เข้า Hardware Wallet¶
Ledger และ Trezor รับ BIP39 seed phrases ระหว่าง initialization กรอกวลีบนหน้าจอ hardware device โดยตรง --- ไม่เคยบนคอมพิวเตอร์
หลาย Accounts¶
derivation path m/44'/60'/0'/0/0 สร้าง account แรก เพิ่ม index สุดท้ายจะได้ addresses เพิ่ม: m/44'/60'/0'/0/1, m/44'/60'/0'/0/2 และต่อไป ทั้งหมด derive จาก seed phrase เดียวกัน
การสร้าง Ethereum wallet offline ไม่ใช่ความหวาดระแวง --- เป็น operational security ขั้นพื้นฐาน เวลาไม่กี่นาทีที่ใช้ตัดการเชื่อมต่อ สร้าง และบันทึก คือการลงทุนที่ปกป้องทุก ETH, token และ NFT ที่คุณจะถือที่ address นั้น บนทุก EVM chain ตลอดเวลาที่คุณถือ keys cryptography แข็งแกร่ง ตัวแปรเดียวคือคุณจัดการมันอย่างระมัดระวังแค่ไหน