黃牛山人

父親,讚賞公民,關注社會公義。網誌:bchai.cc

助 LikeCoin chain 抵禦攻擊,匹夫有責!

發布於
大於 1/3 的「絕對否決權」

讚賞公民共和國剛剛通過的第七議案第九議案,其中一個重要目的是令整體委託率提高至理想的 67% 以上以加強 LikeCoin chain 的安全性。但為什麼 LikeCoin chain 的安全性會跟整體委託率有關呢?這要從 LikeCoin chain 運作的基本共識機制原理 - Bonded Proof of Stake (BPoS) 說起。

委託 LikeCoin 給驗證人獲得回報,是因為委託人犧牲了 21 天的短期流動性,參與每筆 LikeCoin chain 的交易。LikeCoin chain 沒有官方的文件解釋共識機制,但大部份原理跟 Cosmos 的機制相同,若不想看源代碼可參考 Tendermint 的文檔

對抗惡意收購

傳統貨幣帳本是由銀行提供人力和系統維護它的準確性,然而在讚賞公民共和國每一筆交易都是由驗證人及每一位 LikeCoin 的委託者共同維護的。這就是區塊鏈神奇的地方,貨幣流通和結算不用靠會計師,不用相信任何機構;信任網絡機制便可以了。

驗證人的「投票權」跟委託給他們的 LikeCoin 數量成正比。驗證人負責營運節點 (node),技術上負責記帳、投票等等操作,這些鏈上操作本質上都是帳本記錄 (transactions)。驗證人會就每筆帳本記錄發起一輪又一輪的投票,表達是否同意寫進帳簿(區塊),若達 2/3 的「在線投票權」同意便通過,若超過 1/3 的在線投票權反對便不能通過。換句話說若有人想惡意癱瘓網絡,只需獲得在線投票權的 1/3,然後對每個區塊投下反對票即可令 LikeCoin chain 無法產生新區塊。

獲得 1/3 在線投票權還可對治理議案投下「強烈反對票」 (veto) 以癱瘓治理機制,因為 LikeCoin chain 的投票流程中規定,若有 1/3 投票權對議案投了 veto,議案便會被拉倒。

超過 1/3 人投 veto,議案便被拉倒

不久以前 LikeCoin 的整體委託率才只有約 30%。若有人要惡意攻擊 LikeCoin chain,只需要在公開市場購入 LikeCoin 整體流通量的 15.01%,委託給自己控制的節點,即可成功令 LikeCoin 網絡停擺。當時在市場流動的 LikeCoin 共有總流通量的 70%,即只需要購得公開市場上 20% 的 LikeCoin 便能控制 LikeCoin chain。

然而,若整體委託率高於 67%,則就算把市面上餘下流通的 33% LikeCoin 都收購了,也仍無法佔在線投票權多於 1/3 的份額,這等於 LikeCoin 網絡免疫於惡意收購攻擊。

其實除了來自國家級別的攻擊,很難想像會有人以在公開市場上掃貨的手段奪取網絡控制權,因為這樣做的代價甚高:在收購的過程中貨源會越來越少,價格自然會被搶高,攻擊成本也因此大增。而且就算真的能成功搶佔 34% 的投票權佔率,也只能做到癱瘓網絡損人不利己,卻沒法「做假賬」送錢給自己(如 double spend),因為做假賬不只要有「絕對否決權」,更要擁有高於 2/3 投票權的「絕對決定權」。

最難防的攻擊其實不是從外部的惡意收購,而是從 LikeCoin chain 內部攻破。

忌過度集中委託

假設有些驗證人的節點保安工夫做得不好,被駭客惡意入侵控制了,他便可以獲得該節點擁有的投票權。只要駭客控制的節點投票權總和超過三分之一,便可以癱瘓網絡了。

以目前 LikeCoin 網絡的狀態來說,究竟駭客要攻入多少個節點才能癱瘓網絡呢?這數據在 LikeCoin 網絡公開的 block explorer Big Dipper 上有實時記錄:答案是 5 個節點。對敵人來說,似乎怎樣都比在市場上惡意收購來得划算呢。

5 名驗證人佔了 34%在線投票權,對 LikeCoin chain 安全來說並不健康

LikeCoin 持有人作為共和國成員,堵塞這個漏洞的最佳方法是盡量把 LikeCoin 分散委託給多個驗證人,避免過高的投票權集中在少數驗證人身上。為了整體長遠利益,LikeCoin 資產不要只跟着利率跑。所謂能力越大,責任越大,持有大量 LikeCoin 的大戶更要注意這點。

最近議案九的投票出現了有趣的「三英戰呂布」一幕:雖然只有一位驗證人投下反對票,但他所佔的有效投票權竟已接近一半 (46.43%),跟另外 8 位投了贊成票的驗證人的投票權旗鼓相當!如果這名驗證人投的不是 no 而是 veto,這議案已被否決了。當然,我們不能排除委託人的意願確是想就此議案投下反對票;但反映出來的問題是過度集中委託給單一驗證人,會放大了少數人的權力,令網絡更容易受到攻擊。

當然,更理想的情況是所有驗證人都積極參與投票,現在參與的人太少了。最少,我會希望見到呂布旁邊能有個張遼或高順助戰。

一位驗證人佔了接近一半的有效投票權

分散投資降低風險

其實分散委託也是保障自己資產的重要原則,因為LikeCoin chain 設有懲罰機制,若驗證人離線太久會被罰款 (slashing),款項會從委託者的 LikeCoin 中扣除。目前被罰款的條件有二: 作弊 (double spend) 及離線太久,前者發生的機會較低,後者卻是很常見的。若委託者 all in 給一位驗證人,萬一這位驗證人一個失手被罰便損失慘重了。

若你想知道哪位驗證人比較可靠和活躍,值得你投以神聖的一票,不妨加入 LikeCoin 的 Discord 頻道逛逛,發言交流,提出疑問。在每次議案投票期,歡迎在頻道詢問驗證人的投票意向,看看誰的想法較接近自己一些。流動民主的好處是你可以把投票權在投票期間 redelegate 給其他驗證人。若發現驗證人的意向跟自己相佐,跳船他投是零成本的,而且立即生效。

共和國能成為共和國,因為公民是群體的主體,群體的建立有賴公民的參與。你想共和國成為一個怎樣的國度?得看你選擇如何參與了。


參考文章


喜歡我的文章嗎?
別忘了給點支持與讚賞,讓我知道創作的路上有你陪伴。

CC BY-NC-ND 2.0 版權聲明

有關 LikeCoin 議案#7 通過後,佣金設定對委托的影響

驗證人日誌 #7 我被罷免了!?委託暴跌 x 讚賞車車機器人

10

看不過癮?

一鍵登入,即可加入全球最優質中文創作社區