文:袁立威
編者按
海外NFT自從2021年火爆出圈以來(lái),受到市場(chǎng)的廣泛關(guān)注和討論。然而,海外市場(chǎng)的NFT的產(chǎn)品邏輯與國(guó)內(nèi)的數(shù)字藏品并不完全一樣。數(shù)字藏品作為一種區(qū)塊鏈新應(yīng)用,如何從技術(shù)上保證其安全性是眾多玩家都十分關(guān)心的問(wèn)題。本文是螞蟻鏈高級(jí)技術(shù)專家袁立威在來(lái)咖智庫(kù)“數(shù)字藏品&NFT火熱之下的冷思考”研討會(huì)上的觀點(diǎn)分享。
在互聯(lián)網(wǎng)領(lǐng)域,安全的問(wèn)題是永恒的話題。即便是已經(jīng)非常成熟的Windows操作系統(tǒng),仍舊需要不斷地打安全補(bǔ)丁。在我看來(lái),安全的實(shí)質(zhì)就是攻防雙方的不斷演進(jìn)。所謂道高一尺魔高一丈,攻防兩方其實(shí)是互為強(qiáng)弱的關(guān)系,沒(méi)有絕對(duì)的安全,也沒(méi)有絕對(duì)的不安全。
而螞蟻鏈對(duì)安全問(wèn)題一直都非常重視。無(wú)論是智能合約的安全性、新編程范式的采用和對(duì)聯(lián)盟鏈的基礎(chǔ)要求上來(lái)講,我們都一直在尋求安全性的更強(qiáng)保證。
第一點(diǎn),關(guān)于智能合約。鯨探是基于智能合約開(kāi)發(fā)的,在智能合約的安全性上,目前業(yè)內(nèi)會(huì)有一些積累。眾所周知,現(xiàn)在國(guó)內(nèi)外有一些可以進(jìn)行智能合約審計(jì)的公司,它們會(huì)審計(jì)從最早區(qū)塊鏈到現(xiàn)在幾十種比較常見(jiàn)的漏洞,最基本的例如像整數(shù)的溢出或重入問(wèn)題,等等。
螞蟻鏈的智能合約在參考這些漏洞的同時(shí),內(nèi)部還有一個(gè)專門的安全團(tuán)隊(duì)做智能合約的安全審計(jì)。這個(gè)團(tuán)隊(duì)會(huì)在產(chǎn)品在上線前將所有的合約都去做卡點(diǎn)。至少在螞蟻鏈內(nèi)部團(tuán)隊(duì)的審計(jì)報(bào)告里面,沒(méi)有任何安全漏洞的情況下產(chǎn)品才會(huì)上線。
第二點(diǎn),關(guān)于線性語(yǔ)義。今天國(guó)內(nèi)大家都在談?wù)摂?shù)字藏品,怎么能夠更好的保證其安全性?除了在智能合約審計(jì)這方面下功夫,螞蟻鏈還可以有一個(gè)更強(qiáng)的保證,我們借鑒了一種新的編程范式“Move”。
何為“Move”?如果大家關(guān)注這個(gè)行業(yè),應(yīng)該知道在2018年,F(xiàn)acebook的扎克博格提出的Libra計(jì)劃,其中Libra鏈的白皮書(shū),率先提及了一種智能合約的編程語(yǔ)言“Move”。那“Move”所代表的線性語(yǔ)義是什么意思?聽(tīng)上去很技術(shù),但概念不難理解,通過(guò)一個(gè)簡(jiǎn)單的例子就可以說(shuō)明。
例如,支付寶做A與B之間的余額轉(zhuǎn)賬,A減少100元,B增加100元。假如A給B轉(zhuǎn)賬,網(wǎng)上需要對(duì)賬。有時(shí)候就會(huì)出現(xiàn)B這邊可能沒(méi)有加,或者加錯(cuò)了(如加了兩次)的情況——B加了A的100元轉(zhuǎn)賬,第一次加成功了,返回給A的接口沒(méi)有收到,系統(tǒng)又調(diào)取了一次,導(dǎo)致B加了200元。早期的交易系統(tǒng)里面這種問(wèn)題很常見(jiàn),就需要通過(guò)對(duì)賬來(lái)解決。后來(lái),因?yàn)楦鞣N基礎(chǔ)的組件和交易的機(jī)制越來(lái)越完善,這些常見(jiàn)的問(wèn)題就少了,但是本質(zhì)上還是需要對(duì)賬的。
而“Move”則是提供了一種新的編程范式。仍舊以A轉(zhuǎn)賬100元給B為例。在“Move”的語(yǔ)義之下,這100元錢不是A減少或者B增加,而是A這100元“Move”給B,所以定為一種叫做專門“移動(dòng)”的語(yǔ)義,這就保證了A的100元,要么“移動(dòng)”給了B,要么沒(méi)有移動(dòng),從而避免出現(xiàn)A減100元,B沒(méi)有加或者B加了兩次100元的情況。我們?cè)谠O(shè)計(jì)鯨探的時(shí)候,就借鑒了這種線性語(yǔ)義,所以螞蟻鏈上數(shù)字藏品并不是走傳統(tǒng)的加減的運(yùn)算邏輯,而是“Move”語(yǔ)義。這樣就保證了產(chǎn)品不會(huì)因?yàn)橐恍┨貏e的情況出現(xiàn)“消失”或者“多增”。這個(gè)特點(diǎn)是我們目前在安全上面做得比較強(qiáng)的點(diǎn)。
第三點(diǎn),就是關(guān)于聯(lián)盟鏈。相比公鏈,聯(lián)盟鏈的安全性更有保障。公鏈具有隨便加入隨便訪問(wèn)的特點(diǎn),任何人發(fā)現(xiàn)它有漏洞就可以去攻擊。如果一個(gè)公鏈能活多年,最后都沒(méi)有大的漏洞被黑客發(fā)現(xiàn),說(shuō)明它的代碼安全系數(shù)是做得非常好的。而在聯(lián)盟鏈里,網(wǎng)絡(luò)準(zhǔn)入需要有認(rèn)證,例如現(xiàn)在是基于CA證書(shū)的認(rèn)證。如果沒(méi)有我們授權(quán)節(jié)點(diǎn)的證書(shū),就無(wú)法加入網(wǎng)絡(luò)。從這個(gè)層面來(lái)看,相當(dāng)于擋掉了許多潛在的黑客,它根本就沒(méi)有機(jī)會(huì)進(jìn)到網(wǎng)絡(luò)里面來(lái)。
總結(jié)來(lái)看,聯(lián)盟鏈其實(shí)是一個(gè)很大的防火墻,但是這一層并不能把它作為一個(gè)最終的保障,最終的保障還是說(shuō)智能合約本身要安全。同時(shí),前面談到的使用線性語(yǔ)義來(lái)保證資產(chǎn)的安全,如果是非資產(chǎn)邏輯上的一些東西,它還需要智能合約的審計(jì)來(lái)保證。
作者:袁立威 螞蟻鏈高級(jí)技術(shù)專家
風(fēng)險(xiǎn)提示:本站所提供的資訊不代表任何投資暗示。投資有風(fēng)險(xiǎn),入市須謹(jǐn)慎。