自製龍珠 去中心管理比特幣遺產
港府昨天入稟申請禁制令,附上 32 條 YouTube 影片鏈接,禁止傳播《願榮光歸香港》(Glory to Hong Kong),企圖避免搜索「香港國歌」時,《願榮光》出現於首位的尷尬。我認為這個做法不錯,希望港府也能申請禁制所有敗壞的書本,好讓小市民如我積極配合,整理香港去中央圖書館時知道該收藏甚麼書目,維護國家安全,免墮法網。
本週轉一下話題,談談遺產。以往不少人問過 ChatCKX,密碼貨幣的遺產可以怎樣處理,趁這次週報,讓我們公開討論這個華人禁忌。
《區塊鏈社會學》週報,金錢、媒體與民主的再想像,實踐出版自由、財務自由和民主自由。文章逢週四刊出,直接送到訂戶郵箱。
👉 付費訂閱《區塊鏈社會學》週報,獲得本文及每週文章的 Writing NFT 👈
釐清需求:去中心管理比特幣遺產
就像接案子的斜槓,首先我得釐清需求。標題說的「去中心」(in a decentralized way),是指不依賴單一組織或個人。反過來說,使用傳統的遺產安排,把私鑰交予律師並託付於自己死後轉交受益人,可能會出現甚麼問題,這個不難想像。平日我傾向以「分散式」表達「decentralized」,不過在此語境容易產生「把遺產分散出去」的歧異,唯有沿用「去中心」這個說法。
另外,以下討論的方法其實適用於幾乎任何密碼貨幣,標題說「比特幣」是因為比較好懂,畢竟它是一個超然的存在,是「儲存價值的密碼貨幣」的代名詞,分散程度最高,適合作為遺產的載體。題外話,因此我不主張 BRC-20 等功能。
其次,如果遺產只包含以太幣和其他使用以太坊承載的幣種,可以用一些相對簡單,比較接近地球人習慣的方法管理遺產,這些日後可以再作討論。但以太幣雖然主流,畢竟不是密碼貨幣的全部,使用 solidity 智能合約等方法,沒法處理如比特幣、LikeCoin 等遺產。
最後,我們關心的是自主管理(self-custody)的比特幣,假如資產存放於中心化交易所(centralized exchnage,CEX),以下方法既不適合也不必要,用戶只需要聯繫客戶服務,查詢如何處理身後交易所內資產,比如 Coinbase 就可在提供死亡證後,讓家人接管死者帳號。
反正,只要資產存放於 CEX,而假設交易所於某一國家註冊,傳統的法例就應該能處理遺產。再說,既然生前把大部分資產存放於 CEX,大概也不會覺得處理遺產時需要使用去中心的方式。
SLIP-39:原理等同龍珠
換言之,本文介紹的是在不依賴單一組織或個人的前提下,於死後把管理密碼貨幣資產的私鑰,交予遺產的接管人。
方法說出來其實相當簡單,只是把私鑰分成幾塊碎片分別交予親友,事前拜托他們於自己死後將碎片交予遺產接管人,再把碎片重新組合成私鑰使用。
當然,雖然說來簡單,還是牽涉一些細節:
把私鑰分成碎片,不是自行按每幾個字切開,把助記詞平分幾份,比如把 24 字的助記詞分成第 1-8、9-16、17-24 詞的 3 份碎片。
正確的方法是按 SLIP-39 標準,以密碼學原理把助記詞分成 m 份,並指定當中 n 份可以重新合併出完整的助記詞。
舉例,你可以把助記詞分成 5 份碎片,並設定只要掌握當中的 3 份碎片,就能重新組合出完整的助記詞。
「n of m」這個選擇,基本原則是 n >= 2、n < m、m >= 3;因為如果 n 小於 2,便完全沒有去中心的效果;如果 n 等於 m,雖然也無不可,但萬一當中任何一人丟失碎片,便永遠無法重新組合出助記詞,換言之也缺乏去中心化避免單點故障的意義,也因此 m 需要是 3 或以上。
視乎個人情況,2/3、3/4、3/5、4/6、4/7、5/7 等都是合理的安排,可按想要達到的保險程度作決定。
或許你已經發現,假如 n=m=7,就是我們熟悉的七龍珠。不過,如果當年拿美星人製作龍珠時考慮到 n < m 的原則,那麼… 我們就沒有那麼多龍珠的故事可看了。
步驟演示
以下讓我召喚 5 位老朋友,由 Alice 示範如何把私鑰分成 3 份碎片,分別交予 Bob、Carol 和 Dave,並囑咐 3 位朋友在自己死後把碎片交到 Eve 手上。3 位朋友裡面,只要其中 2 位滿足承諾,Eve 就能 召喚神龍 組合出助記詞。
首先,Alice 需要到 Github 下載打碎和組合助記詞的工具
https://github.com/likecoin/mnemonic-secret-sharing
運行該工具需要使用到 Node.js,建議最低用 v14。Alice 的電腦並未安裝 Node.js,因此先到官網下載並安裝
https://nodejs.org/en/downloadAlice 是 Mac 用戶,使用 Terminal 解壓從 Github 下載的 zip 檔,關掉 WiFi 和所有連線,運行:
node index.js
如你是 Windows 用戶,可使用 Command 進行以上操作;至於 Linux 的用戶…不需我多講了吧。Alice 直接拍 enter,讓程式生成新助記詞並同時分成 3 份碎片。如要把現有助記詞拆分成碎片,可以輸入自己的助記詞(請 DYOR – do your own research)。
Alice 按程序提示,分別回覆 3(m)、2(n)、bob、carol、dave。
6. Alice 分別抄下屬於 Bob、Carol 和 Dave 的碎片。
7. Alice 抄下 24 字助記詞自用,無需亦不應向 Bob、Carol 和 Dave 透露。
8. Alice 把 3 份助記詞碎片分別交予 Bob、Carol 和 Dave,囑咐 3 位於自己去世後把碎片交予 Eve。
注意事項
除了以上步驟,還有些注意事項(best practices):
以上方法不會暴露 Alice 的錢包地址和資產。
mnemonic-secret-sharing 為以前 LikeCoin 開發團隊實際使用的工具,網上還有其他工具可供選擇,如 SLIP-39 和 Mnemonic Shares 網頁等。這些工具看起來比較「人性化」,但也因此產生若干風險,比如你要怎樣知道一個網頁有否在伺服器端存下你的助記詞等。選用的話,請務必 DYOR。
考慮人選時注意各種層面的分散,最理想的是 Bob、Carol、Dave 互不認識;最差的是 Bob、Carol、Dave 三者為好友或親人。
Bob、Carol、Dave 不需要也不應該知道除自己外還有多少人、甚麼人持有私鑰碎片。
所有數位溝通,需使用端對端加密的工具如 Signal。透露私鑰碎片前,應該確認對方身分。
除了私鑰碎片,Alice 最好同時提供更多資訊予托管人,比如 Eve 的加密聯繫方法,Eve 以外的備選承繼人等等。
Alice 可加入除身故外,其他把碎片交予 Eve 的條件,比如失聯一年,失去人身自由半年等等。
Eve 可預先得悉 Alice 過身後會有人聯繫,碎片的組合方法,資產放在哪些區塊鏈等資料,但沒必要知道碎片托管人的具體身分。
每年演習,確認 Bob、Carol、Dave 保存好私鑰碎片,避免丟失、沒法辨識自己字跡,誤以為 Alice 開玩笑等各種潛在問題。
Bob、Carol、Dave 的人選除了親朋好友,只要符合以上原則,也可以是機構和律師等。
集齊龍珠 召喚神龍
明白到以上原理,應該就能想到「七龍珠」的具體用法還有很多變化,比如說,遺產除了是資產,也可以是資料和藝術作品,況且對於一位作者來說,作品就是資產。
又例如,以上方法同時產生的效果是,Bob、Dave、Carol 充當了 Alice 私鑰的分散式備份。事實上,Ledger 上月弄得滿城風雨的 Recover 功能,使用的正是這個方法,但分別是 Bob、Dave、Carol 都是由 Ledger 選定,而且身分公開,且是註冊公司,總得聽命於某些政府。
最後,不厭其煩地再次提醒,私鑰以及其碎片是你的資產的藏寶圖,不能公開,也不應以手機拍照,備份到雲端。以上我為作出了「完美」的錯誤示範,貼出了 Alice 的私鑰碎片,有興趣的讀者大可一嚐駭客滋味,透過線索組合出 Alice 的私鑰,偷取裡頭的資產。為免大家空手而回,我特意發送了一些 LIKE 和 3 個本文的 Writing NFT 到 Alice 的默認 LikeCoin 地址,各位手快的話請高抬貴手,不要一次過全部轉走,留點樂趣給手慢的讀者。
《區塊鏈社會學》週報,金錢、媒體與民主的再想像,實踐出版自由、財務自由和民主自由。文章逢週四刊出,直接送到訂戶郵箱。
👉 付費訂閱《區塊鏈社會學》週報,獲得本文及每週文章的 Writing NFT 👈
Original link: chungkin Express