Move語言:加密貨幣Libra的最大亮點
安比(SECBIT)實驗室/作者:郭宇/張詠晴編譯
2019-06-20 17:39

 

「在區塊鏈領域裡面,凡是套用傳統方法的方案,無一勝出,唯有創新才有未來。」——郭宇

 

相信各位和我一樣,被 Facebook 刷爆朋友圈。

 

Facebook 發起的加密貨幣項目 Libra 6月18日正式公開亮相。Libra 同步發布了多語言官網和白皮書,定位為面向數十億人的全球貨幣和金融服務基礎設施。Libra 還發布了多個技術白皮書,詳細介紹了其新開發的編程語言 Move 和共識協議 LibraBFT。Libra 原始碼已在 GitHub 開源,測試網路也已上線。目前設計為許可鏈(聯盟鏈),其聲稱當前非許可鏈(公鏈)不存在成熟的解決方案能夠支撐數十億人的使用需求,並表明將在發布五年內開始轉向非許可鏈的過渡工作。

 

Libra 的一系列發布中,新的編程語言 Move 尤為吸人眼球。第一時間看了 Move 的白皮書,嗯,這也許才是未來智慧合約語言該有的樣子。

 

一位來自柏林的開發者 Lefteris Karapetsas 在社交平台上提出了自己的觀點:

 

Their design goals seem to overlap, or even aim to replace Ethereum?

他們的設計目標似乎有些重疊,或者甚至旨在代替以太坊?

 

PuzzleToLife.com 的創辦人 CryptoPuzzleDream 認為:

 

I think \move" programming language released by $FB could be more interesting than libra.

我認為FB發布的 「move」 語言比 libra 更有趣。

 

James Clark 是一名標準極客(geek),他說:

 

I'm usually pretty skeptical of anything related to cryptocurrency, but here's one piece of Libra that looks potentially interesting: a bytecode programming language called Move with semantics inspired by linear logic.

我通常對與加密貨幣相關的任何東西都表示懷疑,但是Libra 中有一部分看起來相當有趣:一個被稱為 Move 的字節碼編程語言,其語義受線性邏輯的啓發。

 

而我腦子裡閃過的是這樣一句話:Move 是為「數位資產」而生的智慧合約平台型語言。

 

Move 語言的三大用處

  1. 發行數位貨幣,Token,和數位資產
  2. 靈活處理區塊鏈交易
  3. 驗證器(Validator)管理

 

自底向上的靜態類型系統

 

Move 採用的是靜態類型系統,類型系統本質上是一種邏輯約束。相比以太坊的智慧合約語言來說要嚴格地多。現代的編程語言比如 Rust、Golang、Typescript、Haskell、Scala、OCaml 都不約而同採用了靜態類型系統,他們的優點是,很多編程低級錯誤都可以在編譯的時候發現,而不是拖到運行期才爆出 bug。

 

Well-typed programs never get stuck.

這是程式語言(PL)領域的一句黑話:一個類型無誤的代碼永遠不會卡住。意思是,如果一段合約代碼經過了類型檢查,那麼可靠性會相當高。

 

Move 也沒有設計成一個 100% 靜態類型檢查的語言,那樣會降低實用性。 Move 提到了盡量讓類型檢查在編譯的時刻進行,而不是等部署到鏈上之後。當然有些類型檢查不得不放到運行期,但是仍然可以保證類型安全。

 

Move 有個非常好的設計思路是,從虛擬機開始就是靜態類型化的,然後往上是一個中間語言層,IR(Intermediate Representation),也是類型化的。將來,Move 上層將會提供更多的面向各種金融應用的高級語言,那些語言自然也是靜態類型,保證智慧合約不再會發生非常低級的錯誤。

 

本文為巴比特資訊授權刊登,原文標題為「Move語言:我眼中的 Libra 最大亮點