所謂的安全其實是由許許多多的前提和假設堆疊出來,身為區塊鏈使用者,了解的越多,就越不需要靠膚淺的表象來得到錯誤的安全感。
(補充:給忙碌人的EIP-1559簡史:將怎麼改變「以太坊Ethereum」的未來?)
我發誓這是跟 FTX 有關的最後一篇了之後都只發廢文謝謝。
[False Sense of Security]
[安全的錯覺 輕薄的假象]
[家畜的安寧 虛偽的繁榮]
錯誤的安全感
爆炸頭的交易所爆炸的那天,人們重新想起了中心化的危害,散戶膝反射式的從各大交易所提幣,冷錢包廠商據稱有平時十倍的銷量;託管機構紛紛曬地址自清,證明儲備充足;國內業者們則異口同聲地複誦「台幣給銀行信託,加密貨幣放 CYBAVO」的咒語,強調絕對安全。
千千萬萬眼花撩亂的專業術語不外乎要灌輸你「有OOO等於安全」的想法,但這些象徵安全的符號和實質的安全之間的關聯,可能是禁不起考驗的。
交易所的儲備充足就代表你想領的時候他一定會讓你領嗎?錢放在銀行信託就不會消失嗎?CYBAVO 的金庫實作究竟是多方計算還是私鑰分割?一直都是嗎?冷錢包比起熱錢包有什麼顯著的安全優勢?自己保管私鑰如果弄丟了怎麼辦?
以上的問題如果你回答不上來,卻還是買帳「 我的OOO很安全,因為用了XXX」的說詞,那基本上跟相信常念阿彌陀佛可以保平安沒有本質上的區別。
而且,而且,正因為你不知道,所以你不會想到要問,那麽你的供應商肯定也不會主動跟你解釋太多。不是故意要隱瞞什麼(倒是有自研能力的資安廠商很多都滿喜歡聊的,聊到你會怕),而是跟準客戶解釋技術細節本身就是銷售上的禁忌呀!
各種錢包背後的安全假設
那句有名的屎話:「顧客要的不是電鑽,而是牆上的洞」在「幣圈」當然也是成立的,老實承認人家上門是買你的品牌名氣,買你的認證背書,而不是專業知識,可謂是技術人的大智慧。
在這裡,資訊/資產安全其實和飲食的衛生有點像。老闆端牛肉麵上桌的時候拇指插在湯裡,看就覺得不衛生,但吃了也不一定會出事(吧);樣本中的指標細菌數量和衛生之間,有一套合理的「受污染的食物會怎樣」的假設在,而區塊鏈資安也應該如此。
舉例來說像兩大冷錢包 Ledger 和 Trezor 就有著非常不同的哲學,Ledger 的安全來自使用 secure element,一種特規的、從供應鏈源頭控管的、號稱絕對不會被破解的晶片,以一種黑箱的方式提供安全性;而 Trezor 則恰恰相反,強調開源設計,所有資安專家都可以檢視錢包的每個細節,任何安全漏洞,乃至埋後門的可能,都會被發覺,因此徹底透明恰恰是安全性的來源。
兩者沒有絕對的孰優孰劣,就像 iOS 跟 Android 一樣,重點是使用錢包的人要充分了解各種錢包背後的安全假設,才能選出適合自己的方案,並避免踩到奇怪的坑。
我聽過最荒謬的資安鬼故事是一個錢包廠商說他覺得讓使用者備份助記詞太危險,所以就魔改他們家錢包實作,把那 2048 個英文單字轉數字的 mapping 改掉,說這樣如果客人的 mnemonic 被壞人偷走也不會還原到相同的私鑰,絕對不會被盜。這就純屬唬爛了,不只不能防盜(拿同款錢包來輸入就破解啦),還會大幅增加使用者轉換錢包的困擾,甚至誤以為資金遺失,是個失敗透頂的方案。
想對區塊鏈安全有更深刻的認識,行有餘力的話也可以認識一下比較抽象的安全假設,譬如「私鑰大家是隨便產一把就拿來用,要怎麼避免重複產出同一把鑰匙導致錢被偷呢?」這樣的問題。
暴力破解地址並非不可能,然而,比特幣從私鑰推導出地址的過程會需要做 SHA256,恰好是挖礦使用的演算法。對於一個有能力做地址碰撞的人,勢必擁有極大量的 SHA256 算力,比起硬爆別人地址,直接拿那些算力去挖礦更有利可圖,所以我們會認為目前為止地址碰撞並不是一個嚴重的問題。
諸如此類基於經濟的分析是密碼學安全的重要原語。做為一個奇怪的分散式系統,區塊鏈天然地繼承了這些特性,這也是為什麼今天會有很多人願意傾盡資源和心力,因為這才是大型協作的 correct by construction,而不是把一些人拉上頒獎台,給他們好棒棒徽章,讓大家(在他們爆炸之前)盲目相信跟著他們人生就會更好。
結語
總之,所謂的安全其實是由許許多多的前提和假設堆疊出來,身為區塊鏈使用者,了解的越多,就越不需要靠膚淺的表象來得到錯誤的安全感,只有比騙子懂的更多更深入才能免於受騙。
引一句自己很喜歡的爐石卡牌的 quote:「知識就是力量,而我博學多聞。」希望大家要相信真誠的知識是優越的,而且是不能被混充替代的。