2019 年6 月 18 日,Facebook 高調公佈了 Libra 白皮書,在全球範圍內引發熱議,Libra 還發布了技術白皮書,詳細介紹了其新開發的智慧合約語言 Move 。Move 橫空出世, 尤為吸人眼球。有人評價,這才是智慧合約語言應有的模樣,被很多人譽為 Libra 最大的創新。
簡單地講,比特幣是對貨幣的程式設計,以太坊是對應用的程式設計,而 Libra 是對資產的程式設計,Move 就是對這門資產程式設計的語言。所以,要搞懂 Move,先弄清楚什麼是 Libra 。
01 什麼是 Libra ?
Libra 在英文中是“天秤座”的意思,天秤座象徵著平衡與公正。根據 Facebook 公佈的專案白皮書,Libra 是“貨幣”和與其對應的金融基礎設施的綜合體,形象地講,可以被看作同時具有支付寶和跨境支付的功能,未來的 Libra 可能具有國內支付、跨境支付、貨幣、證券和金融服務等一系列功能。
Libra 白皮書的技術方案中,採用的智慧合約語言就是 Move ,是為運算元字資產而生的智慧合約語言。李笑來對 Facebook 的 Move 語言的評價,卻與眾不同:Facebook 又犯傻,用得著專門設計個 Move 語言嗎?
設計 Move 語言真的是多此一舉嗎?
現實世界的資產數字化過程中面臨著兩方面的困難:稀缺性和許可權控制。
所謂稀缺性就是不允許使用者隨意複製資源;許可權控制通俗地講,就是你只能花自己的錢,不能花別人的錢,這在已有的區塊鏈程式語言中得不到良好的支援,一旦出現問題,對於資產將是災難性的,需要透過建立一個新的智慧合約語言來解決此類問題。
這個智慧合約語言之所以叫 Move ,表示區塊鏈上的幣從一個賬戶轉移到另一個賬戶時,也就是實現資產的 Move ,即移動,而不是簡單的 Copy,這樣做的好處是,杜絕了像以太坊之前出現的各種合約記賬的錯誤與漏洞。
還有人聯想,可能與 Facebook 的格言 Move Fast and Break Thing 對應,達到了一語雙關的效果。
02 Move 語言有什麼特點?
Move 語言的主要設計目標是靈活性、安全性和可驗證性。
1、安全可靠
概括地說,Move 作為一種新的程式語言,作用是為 Libra 區塊鏈提供安全可程式設計的基礎。提交給 Libra 區塊鏈的每個交易,都使用以 Move 編寫的交易指令碼進行編碼。
簡單來說,Move 有三大功能:發行數字貨幣、Token 和數字資產; 靈活處理區塊鏈交易; 驗證器管理。
區塊鏈專案的智慧合約語言,安全性是第一位的,不然,你被駭客攻擊了 ,就等於把資產拱手送人,還拿走不謝,甚至會害使用者家破人亡,所以,Move 設計的核心訴求就是安全性 。
在 Move 語言中,所有的合約執行路徑都能在編譯的時候確定,然後可以進行非常充分地分析、驗證。Move 合約在執行前,都會被一個驗證器進行校驗,這個驗證器可以檢查出各種型別錯誤,而且合約執行的時候,還一邊執行,一邊被檢查,所以,Move 合約相對安全。
2、記賬不容易出錯
傳統的程式語言,包括以太坊智慧合約語言中,對於數字資產的記賬方式,是有可能出錯的,因為它們就好比你們單位牆上的標語,人人都可以念,導致記賬是有可能重複的。比如,過去幾年裡的各種記賬漏洞搞得大家對智慧合約的未來喪失信心。
而 Move 合約採用資源型別,數字資產只能被消耗,不允許複製資源,目的是防止意外重複和丟失。就像你手上的蛋糕,吃掉一塊,就少一塊,這樣一來,數字資產就像資源一樣,不能被複制,不能憑空消失。例如某個公司搞營銷活動,就可以在 Libra 中透過 Move 合約產生和驗證優惠券的資產,還可以使用和轉讓。
3、成本更低
在 Move 語言中,一個 Token 可以被想象成一個箱子,像資源一樣進行傳遞,且不會暴露箱子內部的任何細節,這使得執行成本更低。
03 Move 和以太坊的 Solidity 語言有哪些區別?
以太坊的 Solidity 語言,功能強大並且非常靈活,具有良好的適應性和擴充套件性,但它的硬傷是存在安全風險。安全問題是虛擬數字貨幣的基本要求,也是最大的痛點。
Move 語言,主打安全牌,針對以太坊智慧合約中容易出安全漏洞的語言進行了大量的修改,額外新增了一層保護,可以避免很多 Solidity 的漏洞。
Move 語言比以太坊的智慧合約語言嚴密,可以在編譯的時候發現程式設計的低階錯誤,而不是拖到執行期才爆出漏洞,這樣保證智慧合約在執行中不會發生低階錯誤。
Move 語言會阻止代表其他使用者釋出資料,因此使用者需要確認所釋出的所有內容,使他們能夠完全控制選擇共享的資訊。
04 小結
雖然,Move 看起來還不夠細膩和成熟,但 Facebook 敢於創新,獨家設計出真正適合金融應用的智慧合約語言,甚至可能會成為區塊鏈的“程式設計正規化”的一個良好的開始。
Move 讓智慧合約開發者擁有了更大的選擇自由,在安全的前提下,未來的區塊鏈世界將會變得更加豐富多彩,值得每一個人拭目以待。