淺論國內數字藏品的技術安全問題

在我看來,安全的實質就是攻防雙方的不斷演進。所謂道高一尺魔高一丈,攻防兩方其實是互為強弱的關係,沒有絕對的安全,也沒有絕對的不安全。

文:袁立威

編者按

海外NFT自從2021年火爆出圈以來,受到市場的廣泛關注和討論。然而,海外市場的NFT的產品邏輯與國內的數字藏品並不完全一樣。數字藏品作為一種區塊鏈新應用,如何從技術上保證其安全性是眾多玩家都十分關心的問題。本文是螞蟻鏈高級技術專家袁立威在來咖智庫“數字藏品&NFT火熱之下的冷思考”研討會上的觀點分享。

在互聯網領域,安全的問題是永恆的話題。即便是已經非常成熟的Windows操作系統,仍舊需要不斷地打安全補丁。在我看來,安全的實質就是攻防雙方的不斷演進。所謂道高一尺魔高一丈,攻防兩方其實是互為強弱的關係,沒有絕對的安全,也沒有絕對的不安全。

而螞蟻鏈對安全問題一直都非常重視。無論是智能合約的安全性、新編程範式的採用和對聯盟鏈的基礎要求上來講,我們都一直在尋求安全性的更強保證。

第一點,關於智能合約。鯨探是基於智能合約開發的,在智能合約的安全性上,目前業內會有一些積累。眾所周知,現在國內外有一些可以進行智能合約審計的公司,它們會審計從最早區塊鏈到現在幾十種比較常見的漏洞,最基本的例如像整數的溢出或重入問題,等等。

螞蟻鏈的智能合約在參考這些漏洞的同時,內部還有一個專門的安全團隊做智能合約的安全審計。這個團隊會在產品在上線前將所有的合約都去做卡點。至少在螞蟻鏈內部團隊的審計報告裡面,沒有任何安全漏洞的情況下產品才會上線。

第二點,關於線性語義。今天國內大家都在談論數字藏品,怎麼能夠更好的保證其安全性?除了在智能合約審計這方面下功夫,螞蟻鏈還可以有一個更強的保證,我們藉鑑了一種新的編程範式“Move”。

何為“Move”?如果大家關注這個行業,應該知道在2018年,Facebook的紮克博格提出的Libra計劃,其中Libra鏈的白皮書,率先提及了一種智能合約的編程語言“Move”。那“Move”所代表的線性語義是什麼意思?聽上去很技術,但概念不難理解,通過一個簡單的例子就可以說明。

例如,支付寶做A與B之間的餘額轉賬,A減少100元,B增加100元。假如A給B轉賬,網上需要對賬。有時候就會出現B這邊可能沒有加,或者加錯了(如加了兩次)的情況——B加了A的100元轉賬,第一次加成功了,返回給A的接口沒有收到,系統又調取了一次,導致B加了200元。早期的交易系統裡面這種問題很常見,就需要通過對賬來解決。後來,因為各種基礎的組件和交易的機制越來越完善,這些常見的問題就少了,但是本質上還是需要對賬的。

而“Move”則是提供了一種新的編程範式。仍舊以A轉賬100元給B為例。在“Move”的語義之下,這100元錢不是A減少或者B增加,而是A這100元“Move”給B,所以定為一種叫做專門“移動”的語義,這就保證了A的100元,要么“移動”給了B,要么沒有移動,從而避免出現A減100元,B沒有加或者B加了兩次100元的情況。我們在設計鯨探的時候,就借鑒了這種線性語義,所以螞蟻鏈上數字藏品並不是走傳統的加減的運算邏輯,而是“Move”語義。這樣就保證了產品不會因為一些特別的情況出現“消失”或者“多增”。這個特點是我們目前在安全上面做得比較強的點。

第三點,就是關於聯盟鏈。相比公鏈,聯盟鏈的安全性更有保障。公鏈具有隨便加入隨便訪問的特點,任何人發現它有漏洞就可以去攻擊。如果一個公鏈能活多年,最後都沒有大的漏洞被黑客發現,說明它的代碼安全係數是做得非常好的。而在聯盟鏈裡,網絡准入需要有認證,例如現在是基於CA證書的認證。如果沒有我們授權節點的證書,就無法加入網絡。從這個層面來看,相當於擋掉了許多潛在的黑客,它根本就沒有機會進到網絡裡面來。

總結來看,聯盟鏈其實是一個很大的防火牆,但是這一層並不能把它作為一個最終的保障,最終的保障還是說智能合約本身要安全。同時,前面談到的使用線性語義來保證資產的安全,如果是非資產邏輯上的一些東西,它還需要智能合約的審計來保證。

作者:袁立威螞蟻鏈高級技術專家

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts