基于區(qū)塊鏈項(xiàng)目的智能合約語言Move介紹
6 月 18 日,F(xiàn)acebook 高調(diào)公布了 Libra 白皮書,在全球范圍內(nèi)引發(fā)熱議,Libra 還發(fā)布了技術(shù)白皮書,詳細(xì)介紹了其新開發(fā)的智能合約語言 Move 。
Move 橫空出世, 尤為吸人眼球。有人評價,這才是智能合約語言應(yīng)有的模樣,被很多人譽(yù)為 Libra 最大的創(chuàng)新。
簡單地講,比特幣是對貨幣的編程,以太坊是對應(yīng)用的編程,而 Libra 是對資產(chǎn)的編程,Move 就是對這門資產(chǎn)編程的語言。
所以,要搞懂Move,先弄清楚什么是Libra 。
1. 什么是Libra?
Libra 在英文中是“天秤座”的意思,天秤座象征著平衡與公正。根據(jù) Facebook 公布的項(xiàng)目白皮書,Libra 是“貨幣”和與其對應(yīng)的金融基礎(chǔ)設(shè)施的綜合體,形象地講,可以被看作同時具有支付寶和跨境支付的功能,未來的 Libra 可能具有國內(nèi)支付、跨境支付、貨幣、證券和金融服務(wù)等一系列功能。
Libra 白皮書的技術(shù)方案中,采用的智能合約語言就是 Move ,是為操作數(shù)字資產(chǎn)而生的智能合約語言。李笑來對 Facebook 的 Move 語言的評價,卻與眾不同:Facebook 又犯傻,用得著專門設(shè)計(jì)個 Move 語言嗎?
設(shè)計(jì) Move 語言真的是多此一舉嗎?
現(xiàn)實(shí)世界的資產(chǎn)數(shù)字化過程中面臨著兩方面的困難:稀缺性和權(quán)限控制。
所謂稀缺性就是不允許用戶隨意復(fù)制資源;權(quán)限控制通俗地講,就是你只能花自己的錢,不能花別人的錢,這在已有的區(qū)塊鏈編程語言中得不到良好的支持,一旦出現(xiàn)問題,對于資產(chǎn)將是災(zāi)難性的,需要通過創(chuàng)建一個新的智能合約語言來解決此類問題。
這個智能合約語言之所以叫 Move ,表示區(qū)塊鏈上的幣從一個賬戶轉(zhuǎn)移到另一個賬戶時,也就是實(shí)現(xiàn)資產(chǎn)的 Move ,即移動,而不是簡單的 Copy,這樣做的好處是,杜絕了像以太坊之前出現(xiàn)的各種合約記賬的錯誤與漏洞。
還有人聯(lián)想,可能與 Facebook 的格言 Move Fast and Break Thing 對應(yīng),達(dá)到了一語雙關(guān)的效果。
2. Move 語言有什么特點(diǎn)?
Move 語言的主要設(shè)計(jì)目標(biāo)是靈活性、安全性和可驗(yàn)證性。
1、安全可靠
概括地說,Move 作為一種新的編程語言,作用是為 Libra 區(qū)塊鏈提供安全可編程的基礎(chǔ)。提交給 Libra 區(qū)塊鏈的每個交易,都使用以 Move 編寫的交易腳本進(jìn)行編碼。
簡單來說,Move 有三大功能:發(fā)行數(shù)字貨幣、Token 和數(shù)字資產(chǎn); 靈活處理區(qū)塊鏈交易; 驗(yàn)證器管理。
區(qū)塊鏈項(xiàng)目的智能合約語言,安全性是第一位的,不然,你被黑客攻擊了 ,就等于把資產(chǎn)拱手送人,還拿走不謝,甚至?xí)τ脩艏移迫送?,所以,Move 設(shè)計(jì)的核心訴求就是安全性 。
在 Move 語言中,所有的合約執(zhí)行路徑都能在編譯的時候確定,然后可以進(jìn)行非常充分地分析、驗(yàn)證。Move 合約在運(yùn)行前,都會被一個驗(yàn)證器進(jìn)行校驗(yàn),這個驗(yàn)證器可以檢查出各種類型錯誤,而且合約執(zhí)行的時候,還一邊運(yùn)行,一邊被檢查,所以,Move 合約相對安全。
2、記賬不容易出錯
傳統(tǒng)的編程語言,包括以太坊智能合約語言中,對于數(shù)字資產(chǎn)的記賬方式,是有可能出錯的,因?yàn)樗鼈兙秃帽饶銈儐挝粔ι系臉?biāo)語,人人都可以念,導(dǎo)致記賬是有可能重復(fù)的。比如,過去幾年里的各種記賬漏洞搞得大家對智能合約的未來喪失信心。
而 Move 合約采用資源類型,數(shù)字資產(chǎn)只能被消耗,不允許復(fù)制資源,目的是防止意外重復(fù)和丟失。就像你手上的蛋糕,吃掉一塊,就少一塊,這樣一來,數(shù)字資產(chǎn)就像資源一樣,不能被復(fù)制,不能憑空消失。例如某個公司搞營銷活動,就可以在 Libra 中通過 Move 合約產(chǎn)生和驗(yàn)證優(yōu)惠券的資產(chǎn),還可以使用和轉(zhuǎn)讓。
3、成本更低
在 Move 語言中,一個
3. Move 和以太坊的 Solidity 語言有哪些區(qū)別?
以太坊的 Solidity 語言,功能強(qiáng)大并且非常靈活,具有良好的適應(yīng)性和擴(kuò)展性,但它的硬傷是存在安全風(fēng)險。安全問題是虛擬數(shù)字貨幣的基本要求,也是最大的痛點(diǎn)。
Move 語言,主打安全牌,針對以太坊智能合約中容易出安全漏洞的語言進(jìn)行了大量的修改,額外添加了一層保護(hù),可以避免很多 Solidity 的漏洞。
Move 語言比以太坊的智能合約語言嚴(yán)密,可以在編譯的時候發(fā)現(xiàn)編程的低級錯誤,而不是拖到運(yùn)行期才爆出漏洞,這樣保證智能合約在執(zhí)行中不會發(fā)生低級錯誤。
Move 語言會阻止代表其他用戶發(fā)布數(shù)據(jù),因此用戶需要確認(rèn)所發(fā)布的所有內(nèi)容,使他們能夠完全控制選擇共享的信息。
4. 小結(jié)
雖然,Move 看起來還不夠細(xì)膩和成熟,但 Facebook 敢于創(chuàng)新,獨(dú)家設(shè)計(jì)出真正適合金融應(yīng)用的智能合約語言,甚至可能會成為區(qū)塊鏈的“編程范式”的一個良好的開始。
Move 讓智能合約開發(fā)者擁有了更大的選擇自由,在安全的前提下,未來的區(qū)塊鏈?zhǔn)澜鐚兊酶迂S富多彩,值得每一個人拭目以待。