Why - 為什麼?

今天為大家介紹一個連 Vitalik 也用來作交易的隱私協議及錢包。如果你擁有巨額的加密幣或代幣。而想把它們隱藏起來,讓人在區塊鏈瀏覽器查找不了,這是一個理想的工具。如果你在 defi 平台作代幣兌換 (swapping),在作大額兌換時,可能都會特別小心。因為有不少 validators 也都在窺視着這方面的訊息,在組成區塊交易順序時,在你的大額交易前插入自己的買入交易,然後當你的大額交易完成後,再作一條賣出交易。這樣就可以進行套利。或者,當你的錢包地址具有一定名氣後 (vitalik.eth 便是一例),會有人在監視着這錢包地址的一舉一動,那這帳戶在 defi 平台上作上一定額度的交易時,都會被視為市場訊號給仔細分析。

這時 Railgun 協議及其前端 Railway 錢包,可以幫助用戶提高隱私性。

What - 是什麼?

不知大家有没有玩過 StarCraft II,人類種族有一支 ghost 的部隊,他們有 cloaking 的技能可把自身隱藏起來作潛入或突破。Railgun 協議有些類似 cloaking 功能,可把用戶的代幣隱藏起來,在 railgun 協議內這叫作 shielding, 直到那錢包主人把代幣 unshield 公開回來。

以下這圖可很好描述 Railgun 協議是如何運作的。

railgun-hi-desc.png

  1. 代幣在你最原本的公開地址之下 (上圖的 "Your Public 0x Address")

  2. Shield Tokens 的操作可把代幣隱藏起來。隱藏後的代幣在區塊鏈瀏覽器上是查詢不了,被轉發到一個以 0zk 開首的加密地址。

    它背後的運作原理是以 UTXO 方式儲存未用的代幣餘額,然後以零知証明來證明戶口內擁有相當數量的可用代幣額 (這裡有詳細說明)。

  3. 用戶可對被隱藏的代幣作以下操作:

  4. 當你發現需要把代幣重新公開時,可對其作 Unshield Tokens 的操作。Unshield 同時也可指定一個 0x 地址。即是說 Unshield 同時也能轉賬給另一個錢包。這時區塊鏈看到的發款方會是 broadcaster 和 railgun 的合約交互,也會看到收款方的地址,但可以把發款方隱藏起來。

How - 如何操作?

因為 Railgun 是一種協議,用戶需要一個前端 (錢包) 與這個協議交互。Railway 是現時社區最流行的前端 (這裡還有列出其他前端)。以下教程也會以 Railway 作試範。

首先下載 Railway app, 這前端没有瀏覽器版本,以下以桌面版 macOS 版本試範。

Railgun 現時支持的鏈有:Ethereum, BNB Smart Chain, Polygon, Arbitrum, 及 Sepolia Testnet.

Railway supported chains

在該鏈上試用需要有該鏈的原生幣支付起始的交易手續費。以下以 Polygon 鏈作例子。

1. 啟用 0zk 隱密地址

  1. 首先導入或創建一個錢包。這裡可以用戶主錢包的 seed phrase 導入。這樣錢包則已有一些代幣可用。