簽署鑰匙與安全密鑰

一個 Vela 錢包就是一個 Safe,而 Safe 有擁有者。你的錢包最多可以有七個擁有者,門檻是一: 任何一把簽署鑰匙都能單獨授權一筆交易。這寫作 1-of-n。

甚麼可以作為簽署鑰匙

共有三種,可以自由組合:

方式是甚麼典型例子
平台你正在使用的裝置內置的驗證器這部手機或手提電腦上的 Face ID / Touch ID,由 iCloud 鑰匙圈或 Google 密碼管理工具同步
附近的裝置你透過掃描 QR 碼連接的另一部裝置你的手機經 WebAuthn hybrid 傳輸方式為你的桌面電腦簽署
安全密鑰經 USB 或 NFC 連接的可移除驗證器YubiKey 及其他 FIDO2 密鑰

三者都是 P-256 曲線上的 WebAuthn 憑證。在 Safe 看來,它們沒有分別:每一把都是一個擁有者,Safe 的通行密鑰模組在鏈上以同樣方式檢查它們的簽名。(第一把鑰匙由 Safe 的共享簽署器驗證;其餘每把鑰匙 各有一份自己的小型簽署器合約,由 Safe 的工廠在錢包首次部署到某條鏈時建立。)

每個 App 可以使用哪些種類:

App本裝置附近的手機(QR 碼)安全密鑰
網頁版錢包、瀏覽器擴充功能可以可以USB 或 NFC,經由瀏覽器
桌面版(macOS、Windows、Linux)macOS 和 Windows可以USB
Android可以(需要 Google Play 服務)可以USB
iOS可以可以USB-C 或 Lightning 接口的 YubiKey,韌體 5.8 或以上

桌面版的「本裝置」選項(Touch ID、Windows Hello),以及整體的 Windows 支援,都是較新推出的,測試也 不及其他方式充分;目前在桌面版上,手機或安全密鑰是較可靠的選擇。

安全密鑰可以是你的第一把簽署鑰匙,而不只是備用。如果你寧願錢包完全不依賴 Apple 或 Google 帳戶, 就用兩把安全密鑰建立錢包,並把其中一把放在安全的地方。(唯一一把鑰匙沒有同步到任何地方的錢包是 無法建立的:App 會要求你加入第二把鑰匙,因為遺失那一部裝置就等於遺失錢包。)

為甚麼要在建立時選定

這一點常常令人意外,所以這裏說明機制,而不是道歉。

你的錢包地址是由它的擁有者組合推導出來的。Vela 用 CREATE2 從 Safe 的初始設定資料計算出地址—— 這份資料包含每一把簽署鑰匙的公鑰——而且是在鏈上部署任何東西之前計算的。正因如此,你才可以在一個尚未 存在的地址收款。

對地址來說,結果是簡單的算術:不同的鑰匙組合就是不同的地址。之後再加一把簽署鑰匙,不會擴展你 現有的錢包;而是會計算出一個新錢包,位於一個新地址,裏面一分錢都沒有。

所以「我之後可以加鑰匙嗎?」這個問題有兩個誠實的答案:

  • 在你存入資金之前:可以——那個地址還沒有承載任何東西,用你想要的鑰匙重新建立錢包即可。
  • 在你存入資金之後:那個地址就是你資金所在的地方。在錢包已部署的鏈上,Safe 本身可以更換擁有者—— 但在每一條尚未部署的鏈上,同一個地址代表的仍是原本那組鑰匙,於是各條鏈上的擁有者組合會逐漸不一致。 讓各條鏈保持同步是做得到的——有些智能錢包就這樣做——但 Vela 還沒有做這個功能,所以不提供更換擁有者。 請在建立時就規劃好鑰匙組合。

它實際上保護你免受哪些風險

遺失裝置。有多於一把簽署鑰匙時,遺失手機只是麻煩:另一把鑰匙照樣可以簽署。只有一把簽署鑰匙、 而作業系統的同步又已關閉時,遺失手機就等於遺失錢包——所以「你的通行密鑰會自動同步」描述的是一個由你 控制的設定,而不是我們能代你作出的保證。

一個你不再信任的平台帳戶。如果你的通行密鑰存放在 iCloud 鑰匙圈或 Google 密碼管理工具中,控制該 帳戶的人就有可能使用它。安全密鑰則由你親自持有,不會同步到任何地方。

而它不能保護你免受的風險,是因為 1-of-n 是雙刃劍:加一把鑰匙,是多了一條進入的路,而不是多了 一道鎖。任何人取得你其中任何一把簽署鑰匙,都能單獨簽署。鑰匙越多,越不怕遺失,但被盜的風險面也越大; 這就是取捨,由你決定。

如果某把鑰匙可能已外洩

鑰匙無法移除。如果你某把鑰匙可能落入他人手中——一部未上鎖而不見了的手機、被人看到的密碼、一個你已 無法控制的 Apple 或 Google 帳戶——請把所有資產轉到一個新錢包,並用你信任的鑰匙建立它。那把鑰匙在 每條網絡上都仍然可以動用舊地址的資金,包括日後任何人轉入的資金。

復原,與加入鑰匙

這是兩件不同的事,說明文件也把它們分開處理:

  • 復原與登入——用你已有的鑰匙,在新裝置上回到現有的錢包。
  • 本頁——事先決定究竟有哪些鑰匙。