DAOrayaki Podcast |對話Jolestar:Move語言特性 (入門篇)

2022-10-08 16:10:43

研究種類:Layer1, MOve

創作者:Hahaho

審核者:Shaun

Facebook 在2019年發布數字貨幣項目 Libra 的那一天時,肯定沒有想到,隨後的故事是,Libra被迫轉型為Dime,而Dime又最終以1.82億美元的價格被Meta出售。這個曾經定位於,為面向數十億人的全球貨幣和金融服務提供基礎設施,一經推出便吸引了整個金融市場的高度關注的計劃,看起來是無疾而終,但其實卻給整個加密行業留下了寶貴的遺產——一個彌補了 Solidity 及 EVM 缺陷,並實際運用於,目前最具代表性的新Layer 1公鏈 Aptos、Sui 的編程語言,Move 編程語言。

今天DAOrayaki社區十分榮幸,邀請到Jolestar老師一起深入的聊一聊,當下最火的話題:Move—為“數字資產”而生的智能合約語言。全文如下文所示

Shaun

Hello大家好,歡迎來到Yaki Talkie,我是主持人Shaun。

Facebook在2019年發布數字貨幣項目Libra那一天或許沒想到,隨後的故事是Libra被迫轉型為Dime,而Dime最終又以1.82億美元的價格被Meta出售。這個曾經定位於為面向數十億人的全球貨幣和金融服務提供基礎設施,一經推出便吸引了整個金融市場高度關注的計劃,看起來是無疾而終,但卻給整個加密行業留下了寶貴的遺產—一個彌補了Solidity及EVM缺陷,並實際運用於目前最具代表性的新Layer 1公鏈Aptos、Sui的編程語言:Move。

通常情況下,新公鏈上支持圖靈完備智能合約的編程語言,主要有兩種方式:一種是基於現有的編程語言進行裁剪,然後運行在WASM等通用的虛擬機裏,這種方案的優勢是可以沿用當前編程語言以及虛擬機的生態。

另一種是新造一個專門的智能合約編程語言以及虛擬機,從頭構造語言以及虛擬機生態。我們熟悉的Solidity語言是這種方式,今天的Move語言也是這條發展线路。

由於Move合約之間的依賴和調用方式可以讓它最大化的復用模塊,適合一層一層構建智能合約的基礎設施,而Move的“自由狀態”模型,可以讓數字資產在不同的合約之間流動,提供基於類型的組合性。基於以上兩個特性,Move可以在分層擴容方案中發揮更大的價值,比如實現跨層的合約復用以及組合任意狀態的跨層遷移。Move也由一個為Libra設計的智能合約語言演變成一個开源社區項目,成為多鏈設計的一環,讓它可能被更多的公鏈等基礎設施項目採用,從而構造更大的生態。

我的以上敘述,其間有一大部分內容,其實摘抄至我對Jolestar老師之前對Move相關話題的匯總。Jolestar老師作為Move語言最早期的研究者,實踐者及堅定的布道者,一直在業內享有盛名及廣泛的贊譽。今天DAOrayaki社區十分榮幸,邀請到Jolestar老師,拋开我上面那些“復制粘貼”性的半專業描述,與社區的小夥伴一起深入的聊一聊,當下最火的話題:Move—為“數字資產”而生的智能合約語言。歡迎Jolestar老師。

Jolestar

大家好我是Jolestar,也是Starcoin的核心开發者,Starcoin是最早採用Move作為智能合約編程語言的公鏈,並於去年5月在主網上线;同時我也發起了MoveFuns DAO,MoveFuns DAO的目標是打造一系列Move應用層的基礎設施,以及讓基於Move的應用可以在多鏈生態中更容易的遷移。

Shaun

歡迎Jolestar老師。在對Move進行深入探討前,不免要追根溯源:Move語言是如何誕生的呢?其誕生背景與智能合約的發展又有着怎樣的內在聯系?

Jolestar

這可能要從2019年說起,當時的加密貨幣市場還處於熊市階段,DeFi還沒有大規模興起。當時鏈上的TPS(一般指每秒交易處理量)有限,狀態也有限,成本也很高,於是大家當時的共識是先從金融類應用做起,开始摸索有關鏈上金融設施的模式,Libra瞄准的也正是這部分市場。而為了彌補Solidity在面向DeFi建設時的一些不足,Move也應運而生。所以從這個角度看,原本Move會同“DeFi之夏”一同崛起,但因為各種機緣巧合錯過了;但即使這樣,Move仍為未來DeFi的進階或下一個“形態”提供了突破口,發展空間仍然很大。

Shaun

DAOrayaki一直對整個行業的前沿技術保持着關注,所以在做調研時發現,Move一詞在最近的中文與海外社區中頻繁出現,有種全員皆Move的既視感。它為什么會突然爆火?發明新的編程語言是必要的嗎?

Jolestar

其實有關鏈上到底需不需要智能合約,以及有沒有必要搭載圖靈完備的程序語言,一直有爭議,但以太坊證明了圖靈完備的智能合約語言是非常強大的。而有沒有必要發明新的計算機語言,從純粹編程的角度來看,不同的應用場景,設備或運行環境都可能催生新的編程語言,比如在Web2時期,大概2000年左右,有很多編程語言就是隨着動態網頁的發展誕生的。

而鏈的運行環境也與以往不同,鏈之前的服務器,移動設備,PC等,對應編程語言始終都面向的是操作系統,曾有類似極端的說法:“所有編程語言都是C語言的語法糖(指計算機語言中添加的某種語法,對原語言功能沒有影響,方便程序員使用)”。也就是認為所有編程語言最終處理的事情都差不多:最底層是C語言,再之上分裝了各種語法糖處理業務,內存,线程,文件系統等等。

但到區塊鏈時代情況發生了變化,區塊鏈上的智能合約將整個運行環境進行了托管。以往不斷的發明編程語言實際上是為了盡可能將兩個需求分隔开,一種需求是,如何處理技術性的東西?怎么調度,處理线程,最大化利用CPU與內存等類似問題;另一種需求是如何處理業務問題,也就是如何將需求轉換成編程語言表達出來。以往的編程語言一直在折中這兩個需求,很難完全分隔开。而區塊鏈上的智能合約將頂層需求“屏蔽”了,只需要關心如何將需求通過程序表達出來,兩個需求就以明確的方式被分隔开。

所以可以認為鏈為編程語言的發揮提供了新的“大陸”,那自然會有新的編程語言出現。但也有不同看法,有人認為如果把鏈理解成數據庫,那實際上整個智能合約的運行過程很像衝突過程的表達,但實際上衝突過程在整個應用的構建裏佔的比重不大;包括也有人認為它只是腳本型的語言等。但我認為智能合約的應用場景不僅僅會在鏈上,同樣可以延伸到其它的場景裏。

Shaun

那Move語言在智能合約層面上,可以實質性解決哪些問題呢?

Jolestar

首先它將狀態進行了拆分,現有的智能合約語言,無論是運行在何種虛擬機裏,它的工作模式都是用虛擬機將合約分離开,虛擬機對應一套存儲體系,只有對應合約有使用權限,即用虛擬機對外的一套接口匯集數據。但這種模式的問題是,一個用戶的資產或數據,實際上是托管在不同鏈上的不同合約裏,沒有存在自己的狀態空間裏,這就涉及到數據所有權的問題。而Move是將數據存儲在用戶自己的狀態空間之下,這樣的好處是,如果要對鏈上用戶的狀態計費,可以比較容易的知道用戶到底存了多少空間;其次從Layer1到Layer2的狀態遷移會更便捷,不用通過映射的方式。

此外解決了合約之間的共享問題,原有模式下每個合約都是獨立的,跨合約很難進行代碼共享,這在抽象账號的背景下就會成為一個瓶頸,抽象账號也就是用合約去定義一個账號,但給每個用戶單獨部署一個合約,但是這種方式面臨着用戶升級的困難,因為每個合約的類型都不同,很難進行統一。但在Move裏是用Account Model定義账號類型,它適用於所以账號,所有账號共享Account Model的合約代碼,實現抽象账號的相應功能。

這也促使Move可以構造更復雜的DeFi生態,因為原有方式下,組合到一定程度就面臨合約的體積大小等一系列問題,而Move都可以解決。

Shaun

細數目前常用的編程語言,包括C++,C#,JAVA,Python,GO,Rust以及Solidity等,那Move語言區別於這些語言的差異點是哪些呢?它先進在哪些地方?

Jolestar

在以往的編程語言中,程序無法感受“稀缺性”,因為程序無法主觀判斷數據(即信息)重要與否,能不能復制。但在虛擬機世界裏,可以構造出一個表達稀缺性的“東西”,即所謂的线性類型(或叫线性邏輯),常用的例子是,用牛奶制造奶酪,牛奶=奶酪的表達為真,但多少牛奶才能推導出奶酪,傳統邏輯是無法表達的,所以必須用线性邏輯增加一個“稀缺性”的表達。雖然Rust也曾嘗試過解決內存稀缺的問題,但依然沒有大規模普及。而Move語言可以清晰表達出“稀缺性”,這是它們之間的不同。

Shaun

那Move都適合哪些开發場景呢?

Jolestar

以EVM舉例,EVM的很多指令是“強綁定”在鏈上的,脫離鏈的環境使用比較麻煩,需要再去模擬鏈上的參數,而Move是不需要的。同時“智能合約最大主義者”認為,智能合約只能在封閉環境裏使用,所有軟件都由合約構建,因為現在諸如錢包的安全問題愈發受重視,對於運行的軟件是否在作惡你一無所知,而且即使作惡了也很難維護自己的權益。可行的方式是用第三方程序監控,要求軟件提供不作惡證明,然後進行校驗,如果判定作惡就對作者進行仲裁;同時用Move還可以提高智能合約的組合性,所以开發場景還是很廣泛的,不只局限於鏈上。

Shaun

我覺得有關仲裁的場景還是很有亮點的,對於作惡問題確實需要借助類似仲裁機制去解決相關問題。

Jolestar

因為原有的維權方式成本過高,同時又要維護一個相對自由的環境,目前為了安全基本都是以中心化的官方應用商店方式來進行,但帶來的審核效率以及其它問題還是無法避免。

Shaun

那Move語言目前的發展和應用的現狀是怎樣的?

Jolestar

Move語言本身已經有了好幾年的發展時間了,相關新特性的开發以及安全加固工作也在進行。如果從Move的應用生態來看,Starcoin已經嘗試了基本的DeFi類型,雖然也因為和Solidity語言不兼容會導致一些問題,但諸如Swap,穩定幣,借貸,跨鏈橋,NFT以及其它可組合性都是可以構建的;而像Aptos,Sui也都處於早期开發或測試網階段,也是最近幾個月大家的關注度才逐漸被吸引,都還處於學習發展的階段。

Shaun

聊到這可能就要提到大家比較感興趣的“八卦”話題了,就是Aptos和Sui,這兩個團隊都曾是Dime的开發者,同時您也從事底層开發工作,您怎么看待這兩條公鏈?

Jolestar

從技術的角度來看,Aptos和Sui的差異點還是很明顯的。同時從Libra和Dime开始,Move就在變成一個面向多鏈的語言,所以提供了基於不同鏈的不同擴展能力或裁剪能力。

Shaun

所以同是Move語言,在不同的鏈上還是有不同的功能?

Jolestar

對的,不同的鏈對狀態的處理也是有區別的,比如Sui的處理方式是用戶操作一個叫Object的狀態,在交易裏先指定要操作哪些。有一點像Utxo的一種編程模型,Starcoin用的是Global Storage的編程模型。

Move的另一個差異點是,Move本身有Framework的結構,而Solidity沒法提供這樣的功能,因為本身合約之間的調用方式,無法在鏈上預布屬一個系統合約讓大家去使用,只能採用一些預編譯的方法。同時Move的基礎庫是比較完備的,但因為不同鏈的技術不一樣,對於構建多鏈應用也是一個挑战。這也是成立MoveFuns DAO的目的,實際上在軟件構建上大家也傾向於發現一層有差異,再衝上一層,就可以實現某種程度上將差異屏蔽的目的。

Shaun

聊到MoveFuns DAO,您當時創建MoveFuns DAO的愿景是什么?現在MoveFuns DAO主要在做哪些工作呢?

Jolestar

目標主要還是希望在Move的多鏈場景下,多一些應用容易適配的手段;還有就是在從事教育和布道的過程中,一個相對中立的DAO,驅動起來會更方便。

Shaun

在最近Aptos和Sui帶動Move爆火之前,Move語言就已經在進行不斷的迭代升級了,但這期間似乎Move在中文社區中的宣傳似乎有一些“失聲”,您覺得這屬於發展過程中的正常情況嗎?

Jolestar

其實Move在國內火的要比國外早,事實上這也是反應了市場風向這件事很難預測,在各種機緣巧合下可能突然就火了,也可能是市場本身也在尋找新的熱點。

Shaun

您對MoveFuns DAO的未來有什么規劃呢?

Jolestar

技術方面主要還是想打造更多Move的基礎設施,更好的適配多鏈,遷移的更順暢;同時我們也制作了相關課程,啓動了Learn to earn的項目,吸引大家來學,希望後期可以對接各種項目,孵化項目等,實現漸進的發展。

Shaun

其實也是一個邊學邊實踐邊建設的過程,這樣也很好,很務實。

Jolestar

我們也是在Move還沒爆火的時候就开啓了這個項目,發現社區的參與熱情也很高。

Shaun

那在Move爆火之後,您怎么看待Move對各公鏈未來發展的影響?

Jolestar

Move本身的生態藍圖也處在構建過程中,它可能不像ETH或EVM現在趨於成型,再想做改動時大家的態度都比較趨於保守。而Move在保證交集適配原有應用場景的情況下,也會適配更多的應用場景,保證可拓展性。歷史上的編程語言多是公司去驅動成長,而Move是由社區去驅動。

Shaun

您會對剛入門的新手提哪些建議?比如從哪裏开始做起?

Jolestar

首先得判斷自身的程度,如果你對鏈和虛擬機,智能合約的相關概念有沒有一定認知,其實無論是Move公鏈亦或是其它公鏈,本質上都差不多,所以了解了一個,其它也好觸類旁通。如果連編程語言都不是很了解,需要做的就很多了,當然也有學習的第一門語言就是Move的情況。如果以上這些都比較熟悉了,那直接學習Move也只需要將思維模式轉換一下即可。畢竟不同的人處於不同的階段。

Shaun

謝謝Jolestar老師,今天我們從Move的起源聊到了全員皆Move現象出現的背後邏輯,以及Move可以解決的問題,跟其它語言的差異對比以及开發場景,包括聊到了MoveFuns DAO,我還有個比較感興趣的問題,我本身也是從Web1走到了現在的Web3,我比較好奇您如何看待現在Web3的發展現狀?您對Web3未來有什么暢想?

Jolestar

Web3本身是一個特別巨大的藍圖,大家也都在致力於往這個藍圖中填補東西,事實上現階段的Web3或區塊鏈,想拿出一個所謂已經落地的开拓性產品還是很難的。但即使如此,在繪制藍圖的階段,想象力是至關重要的,現在畢竟還處於Build的階段。那么大家Build的就不是基於所謂唯一範式,而是基於可能性。

在Web2時期縱使再優秀的應用也是屬於某個公司,某個國家,這就牽扯到不同國家的不同法律體系的問題,這也就導致全球一體化是割裂开的,所以有關所謂互聯網主權,我覺得更像公海,是大家基於一個框架性的規定進行自治。而Web3主張個人數據的所有權,只屬於自己,這樣也可以一定程度上解決這個撕裂的問題,但新的問題也隨之出現:我們又何必重復“造輪子”呢?畢竟從效率等角度來看Web3目前的應用並不比Web2強,所以我認為Web3並沒有到一個真正大爆發的階段,很多基礎設施還沒有完善,如果只是簡單“新瓶裝舊酒”的將數據遷移到鏈上,目前任何一條鏈都承載不了這么多的應用和數據,成本過於高昂,也沒必要。

Shaun

即使像Aptos這樣的高處理速度也不可以?

Jolestar

不可以,並且也不是所有數據都一定要上鏈,比如我發一個微博或寫了一篇日記,我也不希望將它放到鏈上。

從我個人觀點我更傾向於Web3其實是P2P網絡的成熟,因為P2P網絡符合這樣的假設,我將自己的數據存儲在自己的設備裏,有需要的時候同步給其它節點,公鏈這時起到的作用類似於將消息全局廣播,起到同步的作用。

Shaun

經濟學家布萊恩·阿瑟在《技術的本質》中寫道,“新技術都是在現有技術的基礎上發展起來的,現有技術又來源於先進的技術。將技術進行功能性分組,可以大大簡化設計過程,這是技術‘模塊化’的首要原因。技術的‘組合’和‘遞歸’特徵,將徹底改變我們對技術本質的認識。”

Move是一種注重安全和靈活性的新型智能合約編程語言,其生態系統包含一個編譯器、一個虛擬機和許多其它的开發工具。Move受到Rust編程語言的啓發,該語言通過线性類型等概念來明確數據的所有權,Move強調了資源的稀缺性、保存和訪問控制,並定義了每個資源的生命周期、存儲和訪問模式。這確保了像 “數字資產”這樣的資源不會在沒有適當憑證的情況下產生,且不能被重復消費,也不會消失。

你不能阻止一個人向自己的腳开槍,編程語言是一個工具,开發者用這個工具向自己的腳开槍的時候,編程語言本身能做些什么事情?智能合約讓不同組織的程序運行在同一個進程中,最大化了編程語言的作用,但也帶來了新的安全挑战。當然,新命題必然出現新問題,哪怕有更多的新問題出現,我們依然相信Move是一種可以提供更安全、更快捷、更簡單的方式來編寫智能合約的語言,它將成為一個強大而充滿活力的开發者生態系統的基礎層。而實際上,使用Move來構建下一代Web3應用程序以吸引更多的Web3用戶的設想,今天已經在實實在在的發生着。

DAOrayaki社區一直保持着對Web3領域前沿技術的持續,深入,跟蹤式的研究跟報道。我們在研究中發現,目前Move語言在整個Web3領域普及化的程度還很低。尤其是在中文社區,大家對Move的了解還處在很有限範圍群體的階段,介於Move語言可能對未來新公鏈發展所起到的至關重要作用,DAOrayaki社區覺得有義務跟責任讓更多的小夥伴了解,熟悉,甚至參與到Move語言未來的建設中來。

而本期YakiTalkie作為Move語言專題報道的第一期,只是拉开了整個篇章的序幕,更多關於Move的精彩內容,盡請大家關注。

再次感謝Jolestar老師的傾情分享,讓社區的小夥伴受益良多,謝謝Jolestar老師。同時也感謝DAOrayaki社區。今天相關討論的音頻晚些時候會上傳在DAOrayaki官網,DAOrayaki.org的專屬播客頻道裏。我們也會同時發布在國內的小宇宙播客平臺,喜馬拉雅FM,全球各大流媒體平臺,例如蘋果播客、谷歌播客、YouTube以及Spotify上,歡迎大家收聽及訂閱。我們下期不見不散。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

降息50個基點 指數衝高回落 人民幣創逾一年新高

美股周三衝高回落。美聯儲宣布2020年以來首次降息後,道指、標普500指數均短暫上漲,創下盤中新高...

幣海獨步者
0 5分鐘前

香港加密市場激增86% 領跑東亞市場!

據 Chainalysis 報告稱,香港加密交易同比增長86%,在國際數字貨幣採用方面排名第30位...

流動的沙
0 5分鐘前

夢回2008?美聯儲直降50基點 經濟衰退真的要來了?

周四,美國聯邦儲備委員會(美聯儲)意外將利率下調 50 個基點至 4.75% - 5.0% 的區間...

杜牧白
0 5分鐘前

美聯儲降息50基點 對中國有哪些影響?中國央行跟不跟?

周四,美國聯邦儲備委員會(美聯儲)意外將利率下調 50 個基點至 4.75% - 5.0% 的區間...

杜牧白
0 5分鐘前

旅遊新趨勢?中國遊客重返全球 泰國突破500萬

據文化和旅遊部數據中心測算,2024年中秋節假期,全國國內出遊1.07億人次,按可比口徑較2019...

流動的沙
0 5分鐘前

無視禁令?繞开封鎖 馬斯克的X重返巴西

盡管巴西最高法院下令全面封禁 X 社交平臺,部分用戶卻在周三神奇般恢復了訪問權限。這一轉折源自 X...

流動的沙
0 5分鐘前