很多人喜歡電影《讓子彈飛》,裡頭大量隱喻本身也是「讓子彈先飛一會」,多年來逐點被翻開來討論。我對該電影沒有深入研究,卻對當中一幕印象極為深刻,歷歷在目。話說張麻子的養子老六被胡萬設計,誣陷他吃了兩碗涼粉卻只給一碗的錢,老六不甘受屈,憤而劏開肚子,證實裡頭的確只有一碗涼粉。當然,人也因此死掉。
觀眾嘲笑老六愚笨也好,替它不值也好,相信沒有人會認同他切腹證明自己清白。偏偏在現實生活,自問光明磊落,事無不可對人言,不在意私隱被看光光的,卻大有人在。
付費訂閱《區塊鏈社會學》週報,除可參與每月讀書會,解鎖專區領取紀念品,更可獲得每週文章的 NFT,每個價值 usd2。
「加密貨幣」沒有加密
圍繞區塊鏈的誤解眾多,其中最流行的莫過如誤以為在區塊鏈上的交易匿名、私密。
必須弄清楚的是,除了如 Zcash、Monera 等極少數幣種,「加密貨幣」的交易全都沒有加密。換言之,當錢包 A 把一筆資產發給錢包 B,任何人不但能查看這筆交易的發款方、收款方、金額、時間等所有細節,更可以進一步追溯錢包 A 和錢包 B 的所有歷史交易。區塊鏈這種透明公開的特性,跟私密完全沾不上邊,我經常說「密碼貨幣」而不用「加密貨幣」,就是為了避免讓更多人在不知不覺中產生美麗的誤會,否則後果可能是災難性的。
我猜測這種誤會,首先是源自 cryptocurrency 的翻譯。crypto 是指 cryptography,即密碼學,是區塊鏈的基礎,但在比特幣、以太幣等絕大多數幣種,密碼學的角色類似圖章,只應用於以私鑰和公鑰核實交易者身分,而交易內容本身以明文存儲,並無加密。
另一個產生誤會的根源是混淆加密與半匿名(pseudonymous)的概念。區塊鏈的錢包地址又長又雜亂無章,例如 0xCBD6832Ebc203e49E2B771897067fce3c58575ac,像一串密碼,即 password 而不是密碼學語境中的密碼,這又是另一重誤會了。單憑錢包地址,外人沒法關聯到背後的使用者,情況跟在論壇、網遊甚至 Instagram 使用暱稱類似,取一個跟法定身分毫不相干的用戶名,其他用戶就沒法看得出是你,但誰都能看到這個帳號的一舉一動,跟誰互動。至於加密,交易者的身分一般公開,但內容或互動細節保密,比如 Carol 在 WhatsApp 發一段文字給 Dave,Facebook 會知道兩人之間有對話,但看不到內容。
事實上,區塊鏈上所有交易都是公開透明的,只要獲得個別人士的錢包地址,比如跟他交易一次,就能順藤摸瓜地找出一連串曾經跟他交易的錢包。雖然看到的交易對象是一串串的碼,但當線索越多,就越有可能一個一個找出背後的持有人。
說起誤解,關於密碼貨幣的另一個誤解是「專門用來洗黑錢」。當弄清以上邏輯,就知道這種誤解大大偏離事實。
找換店實用而且在地
即使電子貨幣全面普及的今天,很多小店尤其是老店,都只接受現金,除了因為各種平台的手續費之外,不言而喻的是傳統智慧告訴老百姓,現金才是最能保障私隱的交易工具。
順藤摸瓜,瓜是人,藤是交易,要使用密碼貨幣交易但又需要保障私隱,關鍵是要切斷「藤」;區塊鏈扯太遠了,任何人都知道,切斷藤就該用現金。
前文提到,靈活的香港人在全港各區開設了不少密碼貨幣找換店,雖然看起來規模很小,但因為銀貨兩訖,一手交錢一手交幣,風險很低。這種現金交易不但方便,還能有效保障私隱,正好用來切斷順藤摸瓜的藤。
回到入金 JPEX 的例子,即使以「法外分身」術開了帳號,JPEX 關聯不到我們的法定身分,但一旦轉入密碼貨幣,錢包的所有交易不但會暴露予 JPEX,甚至連公眾都能查閱。要避免這個問題,我們不但需要開立新的錢包,而且新錢包的資金不能來自原有的錢包,不然對於閱讀我們私隱的人來說,新錢包不過是順藤摸的下一個瓜而已。當然,JPEX 的舉例純粹學術討論而非真正的使用場景,畢竟入金以後,不認證身分很可能沒法出金,應該說,即使認證了也不見得就能順利出金。
開立新錢包時,別忘了打開 VPN,但最好的方法是乾脆離線,本地生成。得到新錢包地址後,攜同現金到密碼貨幣找換店,切記一手交錢一手收幣,給對方現金,同時提供新錢包地址讓找換店即時轉帳密碼貨幣,確認收妥方可離開。
需要留意的是,因為轉帳穩定幣和其他任何交易,都需要使用到以太幣或對應的原生幣,使用這個方法不能只「買 U」(即兌換 USDT 等穩定幣),否則裡面的 U 也只會動彈不得。因此,要不就在買 U 的同時買入小量 ETH 用作 gas fee,要不就全部買入 ETH,然後才使用 Uniswap 等分散式交易所把 ETH 兌換成其他幣種;除非打算清空錢包棄用,否則無論如何都得留著小量的 ETH 處理往後的交易。
為符合法規,防止不法之徒洗黑錢,無論是出金還是入金,在不提供(法定)身分證明文件的前提下,找換店的兌換金額均設有合理上限,但一般來說足夠普通人如我的日常需要。
隱身交易利器 Umbra
如果說找換店是保護密碼貨幣交易私隱的 low tech 方案,那麼 Tornado Cash 便是處於另一個極端的 high tech 方案了。
Tornado Cash 是在以太坊運行的「混幣器」,使用方式是從常用錢包打入特定金額,比如 0.1 ETH,然後從新建的錢包提取;由於提幣的回條使用了「零知識證明」,能避免倒推出原有錢包,假如使用者眾,而大家出入的金額都相同,便難以對應進出 Tornado Cash 的資金,達到切斷「藤」的效果。
可惜,Tornado Cash 太過強大,觸動到體制的神經,去年被美國財政部制裁,並拘捕其中一位程序員 Roman Storm。砍人事件發生後逮不到兇手,美帝乾脆拘捕刀匠。
事實上,分散式應用(Dapp)不是說關就能關,美國政府制裁後,還是有方法使用 Tornado Cash,只是使用的門檻提升不少,牽涉的風險也大為提高,我擔當不起,不敢貿然建議讀者使用。相對而言,這裡介紹另一個簡單合法的私隱保護工具 Umbra,幫助收發只有參與雙方知道,其他人難以追蹤的隱身交易。
假設 Alice 是 Bob 的僱主,每月支付 2 ETH 工資予 Bob,基於區塊鏈的特性,每月的工資轉帳都會暴露於人前,任何人都能輕易翻出歷史明細。理論上,Bob 可以不斷生成新錢包去收取工資以提高私隱度,但顯然,無論是對 Alice 還是 Bob 而言,管理起來都是個沉重負擔。Umbra 不但讓整個過程變得簡便很多,追蹤起來也倍加困難。
首先,Bob 需要到 Umbra 設定介面,生成一組專門用於隱身交易的公鑰私鑰,另外,也可以申請 ENS 如 bob.eth 方便付款方,但並非必須。這之後,Alice 就能透過 Umbra 支付 2 ETH 予 bob.eth,而資產會自動發到一個全新,只有 Bob 才能透過 Umbra 提領的錢包。至於收款方 Bob 則可以決定把 2 ETH 扣除 gas fee 提領到任何地方,比如一個全新的錢包,或直接提領到交易所的錢包出金;如配合以上介紹的方法透過找換店出金,則再額外增加一重保障。
留意,一旦 Bob 把這 2 ETH 提取到第三方,對方就有辦法追溯到資金來自 Alice;而如果 Bob 把資產提領到跟自己身分相關的錢包,則必然會暴露身分,隱身交易用了等於沒用。另一點需要注意的是,假如 Alice 轉帳的不是 ETH 而是穩定幣等 ERC-20 通證,而 Bob 接受時使用了新錢包而不是交易所或找換店,則還需要轉入小量 ETH 用作 gas fee,才能進一步處理資產,變相又產生私隱問題。
Umbra 另一個典型的使用場景是收取捐款。假設某基金以 ENS 地址 carol.eth 接受捐款,只要以 etherscan 查閱 carol.eth,所有捐款數字就會一覽無遺,即使受款機構刻意做到公開透明,對捐款人來說都並不理想。使用 Umbra 收款,即能大大改善捐款人的私隱保護。
保護私隱首要的是良好使用習慣,然後才是輔助的工具,再厲害的工具,都保障不了缺乏資安意識的用戶,Umbra 雖是隱身交易利器,但必須使用得當才能產生應有效果。尤其是,隱身交易牽涉到的邏輯比較多,提領到哪裡會讓誰得悉多少線索追查來源,有很多不同的組合,要弄清箇中邏輯,還是那句,讀萬卷書不如直接上路,動手做,多試幾次,再加上文檔,就能深刻理解。
一九八四並不恐怖
即使光明磊落,私隱同樣重要。
正如小店只收現金不代表逃稅,重視私隱也不代表「身有屎」,反而是為了避免賊人有機可乘。私隱是個人資料,私隱權是自主決定是否公開包括金錢交易等個人資料,在任何先進國家甚至落後國家,都是基本人權,只要額度合理,公民保持日常交易私密,合情合理也合法。
我悲觀地認為,所有交易被中央看光光,全無私隱的 CBDC(central bank digital currency,央行數位貨幣)將會在集權國家出現,那是一九八四都不曾預視到的將來。
一九八四其實沒有那麼恐怖,真正恐怖的是,我們不但不介意生活在一九八四,還過得嗨嗨。隨著 CBDC 的到來,只要提供一點交通津貼之類的小甜頭,缺乏資安意識的人民很快就會習慣它帶來的便利,接受紙幣硬幣被全面取消。為了避免這樣的未來,我盡最大努力從事「web3 公民教育」,至於是否把握,則全看個人造化了。
延伸閱讀
我的文章不為圖利設限,全部開放閱讀。如你喜歡本文,請收藏它的 Writing NFT,支持寫作,保育新聞。