Tornado Cash、Privacy Pool 等混幣器(Mixer)簡單入門
CC · COSCUP 2026
掃描取得今天的投影片
看一看區塊鏈隱私支付的現況。
你會操作過一次混幣器。
看一下人們踩過什麼雷。
2021~2024 開發零知識證明密碼學的應用
Semaphore: 通用匿名架構
MACI: 抗賄賂投票架構
ZkEVM: 改善區塊鏈驗算效率的技術
現在做一些獨立研究:興趣包含區塊鏈相關的經濟研究、形式證明等。
可以問我:以太坊 Ethereum 底層與密碼學
%% fragment
flowchart LR
ME(("👩 你的帳戶<br/>0xabcd…"))
EX["🏦 交易所<br/>(KYC 看過你的護照)"]
DEFI("🦄 Defi")
NFT("🐵 NFT")
ENS["🌐 ENS<br/>alice.eth"]
DONATION("💝 捐款")
POOL("Privacy Pools")
NEW(("👩 新帳戶<br/>0x1234"))
EX --> ME
ME --> DEFI
ME --> NFT
ME --> ENS
ME --> DONATION
ME --> POOL
POOL e1@==> NEW
e1@{ animate: true }
%% fragment
flowchart LR
Pool["🌪️ 龍捲風現金"]
D1(("😀 1"))
D2(("😀 2"))
D3(("😀 3"))
W3(("🦸 3"))
W1(("🦸 1"))
W2(("🦸 2"))
EX(("🏦 交易所"))
D4(("👿 4"))
W4(("🦸 4"))
D1 -->|存款| Pool
D2 -->|存款| Pool
D3 -->|存款| Pool
Pool -.->|提款| W3
Pool -.->|提款| W1
Pool -.->|提款| W2
EX -->|遭竊| D4
D4 -->|存款| Pool
Pool -.->|提款| W4
2019 Tornado Cash 龍捲風現金
%% fragment
flowchart LR
Pool["🐟 隱私池 <br>🤨 ASP 管理白名單"]
D1(("😀 1"))
D2(("😀 2"))
D3(("😀 3"))
W3(("🦸 3"))
W1(("🦸 1"))
W2(("🦸 2"))
EX(("🏦 交易所"))
D4(("👿 4"))
W4(("👿 4"))
D1 -->|存款 ✅| Pool
D2 -->|存款 ✅| Pool
D3 -->|存款 ✅| Pool
Pool -.->|提款| W3
Pool -.->|提款| W1
Pool -.->|提款| W2
EX -->|遭竊| D4
D4 -->|存款 ❌| Pool
Pool ==>|怒退<br>(提款但暴露幣流)| W4
2025 Privacy Pools 隱私池 (ASP 審查,部分提款)
flowchart LR
A("💰 存款")
B("⏳ 等待")
C("🎯 提款")
A ==> B ==> C
style A font-size:28px
style B font-size:28px
style C font-size:28px
classDef pulse fill:#f3e3dc,stroke:#993a31,stroke-width:2px,font-size:28px
本日使用: 2025 Privacy Pools 隱私池 (ASP 審查,部分提款)
理想上,等待時間最好是 一個月 以上。
模擬版 連結
選擇連結錢包
取得測試鏈的測試幣
真實版(有錢包與以太幣者)
flowchart LR
AA("安裝錢包")
A("💰 存款")
B("⏳ 等待")
C("🎯 提款")
AA e1@==> A ==> B ==> C
style A font-size:28px
style B font-size:28px
style C font-size:28px
e1@{ animate: true }
classDef pulse fill:#f3e3dc,stroke:#993a31,stroke-width:2px,stroke-dasharray:5 5,animation:mermaid-pulse 1.6s ease-in-out infinite
class AA pulse
並不是管理你的錢
而是管理你的私鑰
到 ambire.com ,依照自己瀏覽器安裝擴展程式
建立新帳戶 Create new account
建立救援密語 Create Recovery Phrases
要救援帳戶及資產使用
設定解鎖密碼 Set Extension Password
錢包在閒置時會自動鎖定
私鑰是能產生巨大排列組合的資訊:可以是數字或文字、或助記詞。
密碼學利用「只有你知(Something you know)」的原理,保障資訊與資產安全。
flowchart LR
A("💰 存款")
B("⏳ 等待")
C("🎯 提款")
A e1@==> B ==> C
style B font-size:28px
style C font-size:28px
e1@{ animate: true }
classDef pulse fill:#f3e3dc,stroke:#993a31,stroke-width:2px,font-size:28px,animation:mermaid-pulse 1.6s ease-in-out infinite
class A pulse
連結網頁與帳戶:按 Connect Wallet
選 Ambire (接著解鎖錢包)
目的:能以該帳戶發送交易
產生 Seed Phrase
按 Continue with Wallet (需要錢包簽署兩次)
下載救援密語
按 Deposit
輸入欲存款的金額,按 Confirm (錢包簽署交易)
存款會在 Pending 狀態,等 ASP 審核通過
關聯集(Association Set) :允許日後提款的白名單。
關聯集提供者(Association Set Provider, ASP) :維護白名單的單位。
怒退(Rage quit):被 ASP 拒絕,使用者可以提款但暴露幣流
flowchart LR
A("💰 存款")
B("⏳ 等待")
C("🎯 提款")
A e1@==> B e2@==> C
style A font-size:28px
style C font-size:28px
e1@{ animate: true }
e2@{ animate: true }
classDef pulse fill:#f3e3dc,stroke:#993a31,stroke-width:2px,font-size:28px,animation:mermaid-pulse 1.6s ease-in-out infinite
class B pulse
%% fragment
flowchart LR
Pool["🐟 隱私池"]
D1(("😀 1"))
D2(("😀 2"))
D3(("😀 3"))
W1(("😀 1"))
W2(("😀 2"))
W3(("😀 3"))
YOU(("😊 你"))
YOUOUT(("😱 你"))
D1 -->|存款| Pool
D2 -->|存款| Pool
D3 -->|存款| Pool
Pool -.->|提款| W1
Pool -.->|提款| W2
Pool -.->|提款| W3
YOU ==>|存款| Pool
Pool ==>|提款| YOUOUT
classDef danger fill:#f3e3dc,stroke:#993a31,stroke-width:2px,color:#281a03
class YOUOUT danger
3 個人存款、3 個人提款——沒人猜得出哪筆對哪筆,這就是你的匿名集。接著你存款、馬上提款:這次池子裡只剩你一個人,存提款直接兜在一起,隱私瞬間歸零。
flowchart LR
A("💰 存款")
B("⏳ 等待")
C("🎯 提款")
A ==> B e2@==> C
style A font-size:28px
style B font-size:28px
e2@{ animate: true }
classDef pulse fill:#f3e3dc,stroke:#993a31,stroke-width:2px,font-size:28px,animation:mermaid-pulse 1.6s ease-in-out infinite
class C pulse
按 Withdraw
確認鏈、幣種
選擇要提款的存款紀錄(PA-1 之類)
提款地址:請用錢包產生全新地址
金額可以部分提款。
中繼者選項可以選預設的
按 Review Withdrawal (再次檢查後,按 Confirm)
等待零知識證明產出完成即可
%% fragment
sequenceDiagram
participant User as 使用者
participant Relayer as 中繼者
participant Pool as 隱私池(鏈上)
User->>Relayer: 產生證明
Relayer->>Pool: 送出交易(付 gas)
Pool-->>Relayer: 手續費
Pool-->>User: 提款金額(到全新地址)
發送交易需要以太幣,有暴露幣流風險。因此有中繼者(Relayer)的設計。
不然就失去使用隱私池的意義了!
提款地址一定要是全新的
非托管:沒有人能凍結你的資金
開源:任何人都可以審計程式碼
選擇性揭露:可以在不揭露身份的情況下證明合規
怒退保障:被 ASP 拒絕可以安全取回資金
部分提款:不用一次提取巨大的金額(龍捲風現金沒這功能)
ASP 是中心化信任點:ASP 決定誰是「乾淨」的。但作惡能力有限。
法律地位仍不確定:應該政府和我們一樣困惑
工具需要一定技術門檻:小閃失可能喪失隱私保證
費用: 0xbow 收存款 0.5% ,中繼者收提款 0.1% ,以太幣存款手續費大約台幣 10 元有找。
安裝了一個新錢包(Ambire),備份助記詞
連上 Privacy Pool,存入一筆 ETH
等待(示範用,實際上要更久)
用中繼者,把錢提到一個全新地址
從頭到尾走過一次「打斷幣流連結」的完整流程。
視需求用 Tor Browser 或 VPN 連線
忌諱:就你最特別
選擇常見的金額(0.1 ETH,不要奇怪的數字)
提款盡量小額,不要超越一般存款金額
存款:
有沒有找對網頁,檢查鏈與幣種都正確。
注意匿名集大小
等待:請耐心以星期或月為單位等待
提款:確認提款地址是全新的。提款之後避免再與舊的帳戶有任何互動。
請小心保管自己的私鑰與救援密語。遺失密語等於遺失資產。
privacypools.com — Privacy Pool 官方
混幣器可以
技術上,有所有隱私類應用的基本設計。研究混幣器,就能看懂其他應用了
看到所有區塊鏈上所有的矛盾
完全無法追蹤的金流是什麼樣的世界?好處與壞處是什麼?
隱私這個價值是否可以無限上綱?在北韓駭客面前如何取捨?
是否存在一個完全不需要治理的工具?
隱私池讓 ASP 主導審查。雖然有怒退功能,但我們把治理的真空全部推到 ASP 上。
Tornado Cash 不只是技術問題,也是法律問題。
2022 年:美國財政部制裁 Tornado Cash 合約
2023 年:開發者 Alexey Pertsev 在荷蘭被捕,判刑超過五年
Roman Storm 在美國被定罪
每條區塊鏈都是一本獨立的帳本——Ethereum、Bitcoin、Solana 互不相通。
可以當成不同的電腦
「EVM 相容」的鏈(Ethereum、Base、Arbitrum…)共用同一套合約執行環境,錢包、工具可以直接沿用
想像不同的電腦,但一樣的作業系統
非 EVM 鏈(Bitcoin、Solana…)有自己的一套規則,錢包、地址格式都不一樣
原生代幣(ETH/SOL)是協議內建、用來付 gas;合約代幣(ERC20/SPL)是別人在這條鏈上發行的代幣,兩者不是同一回事。今天工作坊存入 Privacy Pool 的,是 Ethereum 上的原生 ETH。