以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

MOVE:專訪Move語言之父:為什么Sui Move智能合約語言適合構建Web3產品?

Author:

Time:1900/1/1 0:00:00

來源: Sui Network 

近日,我們與Mysten Labs的首席技術官、Move編程語言創作者Sam Blackshear進行了交談,討論了他為什么開發Sui Move這種新的智能合約編程語言、Sui能夠擴展的功能以及去中心化技術對構建者的好處。

以下為本次采訪內容:

Q1、首先,您能概述一下編程語言是什么,開發者在選擇編程語言時最關注的品質是什么,以及是什么推動您開發自己的編程語言嗎?

編程語言只是一種與計算機進行友好、安全、高效和明確的交互工具,對于計算機來說,這一點尤為重要。我們不能用自然語言與計算機交流,因為自然語言的整個意義是具有豐富性和表達能力的。當你用稍微不同的語氣或選擇細微不同的方式來表達詞匯時,你的句子或段落意思就會完全不同。

而在編程語言中,最重要的就是具備精確定義的語義。當你編寫一個程序時,你清楚它將要做什么。如果你對它進行微小的調整,你知道這個變化會產生什么結果。這一點在多個層面上都得要保持,比如你可以用一種源語言編寫代碼,它有一種含義,然后被轉換為其他形式表示,那它也應該具有相同的含義,直到觸達機器的處理模塊也是這樣。

我認為,與自然語言不同,編程語言的本質是針對特定領域或特定任務的。否則只用一種編程語言,就可以完成所有任務。但之所以存在多種編程語言,是因為你不可能在所有領域都表現得很好。它們正在努力針對特定的問題領域進行目標定位,并且專注于解決這些問題。舉個例子,如果你看看我們用來編寫Sui區塊鏈和在Mysten進行的大部分其他系統工作的Rust編程語言,它專注于編寫既快速又高性能的代碼,同時保證安全性。它讓你能夠接觸到內存、線程結構或并發等底層細節,但不會像之前的語言(如C或C++)那樣讓你在其中犯錯。

因此,Move的故事與此非常類似。當我創造它時,并不是為了創造一種新的語言。你之前提到開發者在一種語言中尋找什么。他們會問,“這個語言對我想要完成的任務是否適用?”但我認為可能更重要的是,“這種語言是否有一個龐大的社區?是否有很多可用的數據庫?是否有很多程序員在使用?是否有良好的教育資源?”這些都非常重要,因此創造一種新語言的門檻必須非常高,即使這種語言本身更好,但是如果它沒有這些因素,那么它的優勢就沒有意義。從零開始建立一個龐大而充滿活力的社區是非常困難的。

MetaMask計劃年底前推出Snaps協議,允許任何人安全擴展MetaMask功能:7月21日消息,MetaMask計劃在2023年底之前推出Snaps協議。Snaps是一個允許任何人安全擴展MetaMask功能的系統,允許錢包用戶訪問新應用并執行跨鏈協議交互。MetaMask不會向Snaps用戶收取任何費用。

MetaMask Grants DAO已在2023年向Snaps構建者發放了許多贈款,其中包括6萬美元用于社區驅動的Web目錄,用戶可以在其中上傳、搜索和發現新的Snap。[2023/7/22 15:51:33]

Q2、您能分享更多關于Move的開發情況嗎?

Move起源于Facebook的Libra項目。我當時的任務不是創建一種新的語言,而是“Libra需要有智能合約,所以找出我們應該做什么。”我看了各種各樣的東西。我們能在EVM中使用Solidity嗎?我們是否應該使用常規的通用語言,比如WASM或JVM,并將其用于Libra?還是應該創建我們自己的東西?

決定創建我們自己的東西是基于對現有智能合約的研究,了解程序員試圖做什么,以及某些語言在幫助他們的地方和讓他們失望的地方。我的結論是,在很多情況下,現有的智能合約語言確實讓他們失望。

這一點可以從Solidity糟糕的安全記錄中清楚地看出,但更基本的是,這些智能合約不是非常傳統的程序類型。Solidity并不是為現在人們所做的事情而構建的語言。我不是要批評它,因為它是第一種智能合約語言,它還不知道人們想用它做什么。一旦你看到人們試圖用它做什么,我認為很明顯,你需要一組不同的抽象和編程工具,而Solidity語言提供不了。

所以這些智能合約非常簡單,它們基本上做兩件事情。它們定義了資產的類型,包括何時可以轉移資產、你可以用它們做什么、誰可以讀取它們、誰可以寫入它們的規則。并且檢查訪問控制策略,確定誰擁有該資產,誰被允許使用它,誰被允許對其進行操作。一切都圍繞著資產,你希望這些資產具有與物理資產相同的屬性。如果我把東西交給你,那么你應該擁有它,我就不再擁有它了。

智能合約中有所有權和所有權轉讓的概念,但在計算機上,一切都只是數位和字節,并且可以自由復制。而且,你知道,這些概念在現實世界并不存在。因此,你希望有一種語言能夠為你提供有關所有權和同質化的良好抽象。就像在現實世界中一樣,但無需強迫程序員重新發明它。你希望獲得基本的安全保證。

BTC突破27300美元:金色財經報道,行情顯示,BTC突破27300美元,現報27300.1美元,日內漲幅達到6.13%,行情波動較大,請做好風險控制。[2023/6/7 21:21:17]

這就是Move的作用以及為什么我們最終創建了這種新的語言。這些任務對于智能合約編程來說是基本的。它們很難在其他語言中重新創建,包括現有的智能合約語言,我們希望圍繞提供這些基本功能的整個語言進行設計,以便程序員可以安全高效地編寫代碼,而不必每次想編寫一些代碼時都重新發明輪子。

Q3、Sui使用了Move的一種變體,稱為Sui Move。是什么促使了這些變化?Sui Move的哪些特點非常適合在Web3中構建產品?

以下幾個因素促使了這些變化,其中一個是最初的Libra項目的目標是構建一個合規的支付網絡。因此,我們試圖設計Move(https://docs.sui.io/learn/sui-move-diffs)作為一種通用的語言。但我們還有意識地做了一些事情,因為Libra希望具備限制條件。其中一個重要的事情是,他們不希望人們能夠將某些資產發送到任何地方。他們希望人們明確地創建一個賬戶,并在賬戶創建時設置一些規則,比如賬戶的所有者必須進行KYC認證。或者可能需要支付費用來創建賬戶,或者只能由擁有創建賬戶權限的一小部分人來創建賬戶。由于整個目的是Libra希望進行合規支付和合規智能合約,所以存在這些限制。但在更通用的Web3領域,情況恰恰相反。你不希望在基礎層面上進行合規,這是智能合約的概念。你希望事物盡可能自由,完全可以將某物發送到任何地址。然后你不應該進行顯式的賬戶創建,因為這將阻塞各種用例。這是一個重要的因素。

另一個因素是,盡管我們在Move中專注于資產,但當時在Libra中我們并沒有考慮如何將資產的關注點引入交易本身。因此,當你到達交易層級時,你仍然只有這個API,其中你輸入數字和布爾值等不是資產的東西,然后在Move中,你使用這些數字來從賬戶中提取資產并進行其他操作。事實證明,你運行的大部分代碼都是這種令人討厭的記簿工作,其中包括取出這個東西,取出那個東西,取出其他東西,好的,我擁有了所有我想要的資產。它們在這里,在我的工作室里,現在我可以開始做一些有意義的事情了。然后在此過程的末尾,你可能會說:“好的,將這些資產放回這個賬戶,將它們放回那個賬戶,重新組織它們。

加密錢包ZenGo完成1000萬美元A輪擴展融資:金色財經報道,加密貨幣錢包提供商ZenGo正在A系列延期融資中籌集資金。根據The Block獲得的一份宣傳材料,ZenGo希望在今年晚些時候進行完整的B輪融資之前通過可轉換票據籌集1000萬美元。A輪延期融資后的估值為1億美元,與兩年前ZenGo的A輪融資估值相同。ZenGo于2021年4月從包括Insight Partners、Austin Rief Ventures和Samsung Next在內的投資者那里獲得了2000萬美元的A輪融資。[2023/3/1 12:35:20]

在Sui中,我們經過深思熟慮,如果每個程序都以這種方式開始和結束,我們是否可以將其抽象出來?因此,用于處理交易的邏輯將為程序員完成此操作,從程序員的角度來看,他們只需準備好所需的資產,立即開始進行有趣的工作。這就是存在于Sui中的以對象為中心的數據模型。在原始的Move中,我們擁有基于賬戶的數據模型,資產存儲在賬戶下,并且程序員必須明確地提取它們。而在Sui中,它們在進入交易的Move部分時,已經被Sui運行時獲取到資產。這對程序員來說更方便,因為他們不需要進行所有這些之前和之后的記簿工作,而且這也是允許我們在不實際執行的情況下確定是否可以將一個交易與另一個交易并行運行、將Sui進行水平擴展以及更高效地進行其他一些操作的秘密武器。

我們還進行了其他一些非常有趣的工作,比如利用基于對象的數據模型進行可編程的交易塊。這是一個偏技術性的話題,我很樂意深入討論。但這兩個因素是導致與原始Move的分歧的主要動力。

Q4、能請您能分享更多關于可編程交易區塊及其功能的信息嗎?

我喜歡使用一個類比來解釋,其他區塊鏈就像一個購物中心的美食廣場。你想吃一份冰淇淋,你去冰淇淋攤位,拿出你的信用卡付款。但是如果你決定還想吃一個漢堡,然后你去漢堡攤位,再次付款。我不是個貪吃的人,但是如果我想吃八樣東西,我就必須進行八次單獨的交易。而Sui更像是一個自助餐,每個交易不只是一件事。一旦你支付了自助餐的費用,你可以做很多事情而無需額外花費。你可以吃冰淇淋,你可以吃漢堡,你可以將它們混在一起。

為了讓這個概念更具體一點,在簡單的情況下,如果你要發送100個交易來鑄造100個NFT,你可以發送一個鑄造100個NFT的交易。這樣的成本與鑄造一個NFT的成本幾乎相同。你還可以進行異構交易打包,比如區塊中的第一個交易從你的多簽錢包中取出一個馬里奧角色,而第二個交易則請求一個馬里奧,然后允許你玩游戲。如果你贏得游戲并獲得獎杯,也許第三個交易會將獎杯放入一個與朋友共享的獎杯柜中。很酷的是,可編程交易區塊允許程序員以這樣的方式編寫代碼,游戲不必知道多簽錢包或馬里奧的存儲方式,它也不必知道你的獎杯柜或其實現方式。

StarkNet測試網將支持Chainlink喂價:2月6日消息,StarkWare 宣布將與 Chainlink Labs 建立合作伙伴關系,StarkWare 將正式加入 Chainlink SCALE 計劃,StarkNet 測試網也將支持 Chainlink 喂價。

StarkWare 表示,將使用 StarkNet Token 支付部分預言機費用以降低開發者成本,未來也會在主網部署 Chainlink 喂價。[2023/2/6 11:50:25]

可編程交易區塊由具有輸入和輸出對象的交易組成。如果你需要一個輸入對象,可以獲得該對象,而無需關心它來自哪里,然后將其輸出傳遞給需要它的對象,同樣也無需關心它將傳遞給哪里。在其他區塊鏈中,耦合性更強,因此游戲必須與多簽錢包和獎杯柜進行集成,或者它們都必須實現一些共同的接口并具有更強的耦合性。Sui使得所謂的臨時組合變得更加容易。就像,如果管道匹配,我們可以在一個交易中完成。

Q5、那可編程交易區塊對于用戶來說有什么好處呢?

對于用戶來說,可編程交易區塊的好處包括更低的gas費用,因為你可以將所有操作打包到一個交易中,而不是進行單獨的交易。此外,需要批準的次數也會減少。如果你使用的系統需要交易批準,你只需要進行一次批準,然后它就會一次性完成所有操作。另外一個好處是原子性,如果你想做三件不同的事情,并且希望只有在前兩個操作成功后第三個操作才能成功,如果這些操作必須是獨立的交易,那么你無法實現這一點。但是,如果你可以將它們都放在一個交易中,那么你就可以輕松實現這一點。

Q6、我聽過您和其他人談論,在Sui上進行開發對于程序員來說是一次很棒的體驗,而且這很重要。對于有經驗的和新的Web3程序員開始使用Sui Move時,您有什么軼事可以分享嗎?

對于那些來自其他Web3編程語言的開發者來說,他們在Move和Sui Move上的開發體驗確實更加高效,而且更安全。我剛剛參加了一個關于Bucket Protocol的播客節目,他們正在Sui上構建一個非常酷的DeFi項目。他們在展示系統架構時,講述了不同組件如何協同工作。他們說,如果他們用Solidity來編寫這個項目,可能需要八個月的時間,但是用Sui Move只用了兩個月,而且他們對其安全性非常有信心。這門語言的工作方式非常貼近他們頭腦中項目組合的想法。而在Solidity領域,這種聯系就沒那么直接。

隨著ETH漲至1500美元,以太坊期貨清算2.3億美元:金色財經報道,隨著ETH漲至1500 美元附近,以太坊期貨清算2.3億美元,其中,清算了約1.37億美元的空頭和9300萬美元的多頭。上周四,ETH的交易價格高于1000 美元。Coinglass數據顯示,此后的上漲導致空頭清算損失超過3.37億美元。截至撰寫本文時,周六有超過1.74億美元的空頭被清算,周日為3300萬美元,周一為1.25億美元。在過去的24小時內,FTX 的清算額超過1.17 億美元,是其他交易所中最多的,OKX和Binance分別為8500萬美元和1000萬美元。[2022/7/18 2:21:17]

這只是一個例子,但我們聽到了很多類似的情況,人們說他們在這門語言上的開發速度更快,完成后更有信心。聽到這些讓我感到高興。但在某種程度上,這并不令人意外,我們研究了Solidity并了解了其中的問題。我們明確地設計了圍繞如何使其更安全、更快速的方案。我們審視了使用這門語言的開發者們試圖做什么,以及如何設計符合他們需求的語言,而不是迎合已有的情況。這門語言就是為人們遇到的問題而設計的,所以當他們進行切換時,他們真的會非常欣賞這門語言。

他們說先發優勢很重要,但我想在這種情況下,是后發優勢更重要。

沒錯,就是這樣。

Q7、在您提到Sui Move和Sui整體的面向對象的特性時,您已經談到了這一點。但您能更明確地闡述Sui Move的設計與Sui能夠實現Web3的大規模采用、低延遲、低成本和可擴展性之間的聯系嗎?

我們在為Sui做出貢獻時非常警惕的一點,也是其他平臺所面臨的問題,就是如果你的容量有限,無論是像以太坊的每秒15個交易(TPS)還是100或1,000個交易,如果是一個固定的數字,那么當平臺過于成功時,它將達到容量的上限。此時,每個使用平臺的人的體驗都會下降。如果只有1,000個空位,你必須選擇最重要的1,000個,可以通過gas競價或其他方式進行選擇。對于所有人來說,gas價格都會上漲,延遲會增加,或者兩者兼有。許多使用案例被排除在外,因為只有能夠支付最高費用的使用案例才會成功,而其他人不得不轉向其他地方或等待更長時間。這不是一個好的情況。

Sui的目標是水平可擴展性。如果分配了一定數量的硬件,就可以實現一定數量的吞吐量。如果需要更多的吞吐量,驗證節點可以引入更多的硬件設施,沒有上限。這就是每個Web2服務的工作方式。我的意思是,你必須解決一些工程上的約束,這并不是一件確定或簡單的事情,但是每個人在設計可擴展的Web服務時都希望實現水平可擴展性。

如果Sui有更多的客戶或用戶,我們的目標就是使Sui能夠繼續增長,一切都應該正常運行。當然,同時保持非常低的延遲。你不希望在增加吞吐量的同時犧牲延遲性。

在Libra系統中,沒有考慮到這些特性。它只是一個小規模的支付系統,有幾百個支付運營商,每天可能有數千萬筆支付,但也不會更多。所以我們采用了單一盒子架構,這樣更簡單也足夠用。但在Sui中,我們知道Libra系統行不通,因為它沒有水平可擴展性的特性。所以我們想,如何從零開始設計一個能夠實現這一點的系統。這就是面向對象的數據模型的來源。我們基本上拋棄了舊的基于賬戶的數據模型,因為它使實現水平可擴展性變得非常困難。相反,如果你將所有內容都組織成對象,全局狀態就只是一個從對象ID到對象的大型映射。這是一個鍵值對存儲,我們知道如何擴展鍵值對存儲,這是一個簡單的工程問題。

然后問題就是,我們如何設計一個事務結構,使其適應從鍵值存儲中獲取數據和更新數據的過程?我們如何分片鍵值對存儲?我們如何決定事務應該在哪里被處理?這基本上就是它的來源。也就是說,我們知道如何擴展這些東西。我們如何將它變成具有區塊鏈屬性、可驗證讀取、可與Move合作等功能的東西。然后如何盡可能平穩地將它們結合在一起。

Q8、從更高的層面上講,您如何與Web2中質疑的開發者討論去中心化技術的潛力?

我認為區塊鏈和加密貨幣在根本上是一種去除摩擦的技術。存在一些障礙,使得我們在進行金融交易、構建應用程序或設置信息時變得非常困難,因為信息無法跨越這些障礙,或者如果跨越這些障礙,就需要某些第三方的幫助,而這些第三方為能夠提供幫助而收取一定的費用。

人們喜歡用的一個經典例子是購買房屋。有一個購房者和一個賣房者,但當你實際進行支付時,必須有一個托管代理人,他除了坐在那里托管資金以外什么都不做,因為買方和賣方彼此并不完全信任。這是生活的現實。我們要處理這個問題。但是,如果托管代理人可以是雙方都可以查看的代碼,或者經過某個第三方的驗證,那么它就可以免費或者以更少的費用來完成這個工作。區塊鏈的目的不是消除房地產中的托管代理人。這只是其中的一個用例,但通常都是這樣。

如果不再有應用A和應用B之間的互操作性障礙,而是建立在相同的基礎平臺上,這樣你就可以使事物從一個應用流向另一個應用,無論是應用內物品、數據、跨促銷活動,還是構建在兩者之上的第三方產品。或者想象一下互聯網,網站通過cookie與彼此共享數據,但這些cookie只是只讀元數據。如果這些cookie可以成為貨幣呢?或者可以成為可花費的物品呢?或者可以成為忠誠計劃和優惠券呢?一切都內置了這個功能。這是非常抽象的,但這是潛力所在。通常,一個正在構建的人會認為這些是他可以用來構建更有吸引力的東西的新超能力。

Q9、對于終端用戶來說,即使他們不具備技術知識,當他們考慮代碼信任時,你是否感覺到他們有所猶豫,即使另一種選擇是一個不透明的大型中心實體?

我不這么認為。因為我們每天都在做這樣的事情,對吧?當我登錄我的電子郵件時,我并不擔心代碼會刪除我的某封郵件,或者當我發送郵件時,它實際上不會發送。如果發生這種情況,那么我可能會停止使用電子郵件,或者使用其他提供者。我認為這是非常相似的,當然,并不是每個人都能夠真正閱讀某些內容并檢查其工作方式。

而且,你知道,如果我想檢查電子郵件的代碼,我不能,因為代碼不在那里。所以透明度是其中一個重要方面。雖然不是每個人都能夠做到這一點,但有些人可以進行抽樣檢查。而且,與任何事物的重復使用相結合,再加上不可變性。這就是這里的關鍵。當我登錄電子郵件時,我不知道自從上次我做某事以來代碼是否發生了變化。對此沒有透明度。即使了解到這個信息,在Web3中你可以得到,而在其他地方你得不到。

Q10、您對Sui Move在未來的發展有什么期望?

我們目前關注的許多功能都是基于我們與發布其初始批次的Sui Move包的開發者的經驗,然后觀察他們希望如何發展這些功能,哪些功能易于發展,哪些功能較難。Sui Move是一個非常適合第一次發布包的語言,但是對于我要改變這種類型,我要添加一些字段,我要添加一些函數,我要以一種有凝聚力但不違背使用初始包的用戶的信任的方式進行操作,這變成了一個非常具有挑戰性的問題。我們所做的很多工作是研究這一點,并確定我們可以添加哪些語言級別的功能,既能給程序員提供擴展的靈活性,同時又能保持原始代碼用戶的信任。

我們正在研究許多與此相關的功能,尤其是枚舉類型。我們還在改善將Move與前端代碼連接的體驗方面做了很多工作。我們常常開玩笑說,一個典型的Sui應用程序是5%的Move代碼和95%的前端代碼。因此,我們非常關注這95%。我們花費了很多時間討論Move,但我們也非常關注如何使其他部分更加高效,并使連接更加容易。總的來說,我們非常關注如何使應用程序更多地由Move組成,以獲得更多的安全性。同時,我們如何使這95%的代碼對Move程序員和非Move程序員都易于理解。

Sui Network

個人專欄

閱讀更多

金色財經

金色薦讀

Block unicorn

區塊鏈騎士

金色財經 善歐巴

Foresight News

深潮TechFlow

Tags:SUIMOVEMOVWEBSUIAVicMovemovez幣為何總跌web3.0幣種有哪些

幣贏交易所
區塊鏈:金色觀察丨Coinbase深度解讀:為什么我們支持質押

金色財經報道 區塊鏈7月15日  美國證券交易委員會于6月6日Coinbase提起訴訟,涉及其平臺上列出的少量資產,以及零售質押服務.

1900/1/1 0:00:00
OIN:當下金融環境六種持倉策略

在當前的全球金融環境下,無論是新興區塊鏈Web3行業,還是傳統金融行業,都經歷著撲朔迷離,機會與暗流同在世紀級迷霧局勢.

1900/1/1 0:00:00
ARK:Starknet 0.12.0正式部署主網:實現量子躍遷

前言 據悉,Starknet 0.12.0已于7.12日正式部署在主網上,實現更大的吞吐量和更低的延遲.

1900/1/1 0:00:00
STRAT:藍港購入比特幣 投身加密會是上市公司的良藥嗎?

作者:金色財經,Jessy港股上市公司藍港互動分別在 7 月 7 日與和6 月 15 日發布公告稱以 59 萬美元和 65 萬美元的集團現金儲備在公開市場累計購買 44.2 個比特幣.

1900/1/1 0:00:00
SEC:金色觀察 | 相殺之路漫漫 一覽Ripple與SEC數年糾葛

作者:松雪,金色財經 昨晚,美國聯邦法官 Analisa Torres 裁定,Ripple Labs Inc, 在公開交易所和通過算法出售 XRP 代幣并未違反聯邦證券法.

1900/1/1 0:00:00
TOR:UniswapX四個關鍵組件解讀

作者:Anderson Chen,ETHTaipei組織者 翻譯:金色財經0xxz我花了一些時間閱讀Uniswap新發布的UniswapX材料和代碼庫(https://github.com/Un.

1900/1/1 0:00:00
ads