初探Move語言:Part 1-用Solidity描述虛擬資產會有什麼問題?

James Shieh
技術保鮮盒
Published in
Jun 23, 2023

這一系列的文章,我想談談Move相較於Solidity有什麼特別之處,不過許多人可能對於這兩種語言都很陌生,甚至不太了解區塊鏈以及去中心化的概念,為了能與大家分享我研究新技術時的喜悅 — — 特別是它們能帶來什麼樣的可能性,我想盡可能地用簡短的文字幫大家建構區塊鏈的世界觀,這個世界觀不免有我主觀的想像,但我認為在這樣的脈絡下,比較容易講述程式語言對區塊鏈世界的影響。

他們說,「來吧,我們要建造一座城和一座塔,塔頂通天,為了揚我們的名,免得我們被分散到世界各地。」。但是耶和華降臨看到了世人所建造的城和塔。耶和華說,「看哪,他們都是一樣的人,說著同一種語言,如今他們既然能做起這事,以後他們想要做的事就沒有不成功的了。」讓我們下去,在那裡打亂他們的語言,讓他們不能知曉別人的意思。於是耶和華使他們分散到了世界各地,他們也就停止建造那座城。因為耶和華在那裡打亂了天下人的言語,使眾人分散到了世界各地,所以那座城名叫巴別。 — — 創世記11:4–9

語言如何影響你的認知

非洲納米比亞某部落的土著分辨不出藍色和綠色的差別,大家知道是為什麼嗎?因為他們的語言裡沒有“藍色”。再問另外一個問題 — — 為什麼中國人的數學普遍比美國人好?有研究指出這跟語言也有關係,怎麼說呢?我們可以列一張表:

  1. One
  2. Two
  3. Three
  4. Four
  5. Five
  6. Six
  7. Seven
  8. Eight
  9. Nine
  10. Ten
  11. Eleven
  12. Twelve
  13. Thirteen

13012. Thirteen thousand twelve

當我們試著用中文與英文念這些數字時,我們會發現中文的每個位數都能用一個音節唸完,但英文卻不是,而且還有不規則的變化,這導致用英文來做四則運算時,需要在腦中多一層語言上的轉換,就連簡單念1到100,中文都能唸得比英文又快又流暢。

部落土著與數字的故事告訴我們,語言影響了我們看事情的角度與重點,更進一步影響了我們解讀與思考的能力。Move想回答一個問題:我們需要一個專門表達虛擬資產的語言,讓我們能用適合的角度與虛擬資產互動,同時又能有效地掌握虛擬資產應該被重視的特性與能力。這語言讓我們的認知是與去中心化世界的認知是高度一致的。

用Solidity描述虛擬資產會有什麼問題嗎?

虛擬資產有很多種形式,可以是像古董、藝術品之類的NFT(Non-Fungible Token)、或者像ETH、SOL之類的有貨幣特性的交易媒介,也有一些沒有稀缺性的資產,例如你戴上AR眼鏡,可以看到沙發、電腦、耳機在你家中的樣子。那麼什麼是虛擬資產應該被重視的特性呢?

數位孿生(Digital Twin)

虛擬資產通常是實體資產在數位世界中的一種對應或分身。在區塊鏈誕生之前,工業領域開始導入一種技術 — — 數位孿生(Digital Twin),其用各種技術創造一個對應現實世界的數位模擬,而這一模擬能夠通過感應器與網路,將當下正在發生的狀況,完全映射至數位環境中。這個技術的應用之一是能透過虛實整合來對工廠產線進行各種產能的最佳化,例如維運人員只要戴上AR眼鏡,就能有智能助理幫助員工實時地對機台進行各種故障排除。

虛擬的交易媒介

當資產是一些產線機台、耳機、沙發之類的私有財時,使用者與擁有者通常是利害一致的(甚至可能是同一個人或組織)。Solidity在描述這種類型的資產時不會產生太多問題。但當資產可以被交易或轉移,甚至作為一種交易媒介時,那我們就必須對於其稀缺性(Scarcity)與所有權(Onwership)有更嚴謹的控制與描述。

Solidity的語言特性

Solidity在語言上並不強調稀缺性的描述與所有權的控制,所以容易撰寫出有漏洞的邏輯,例如:

  1. 你只有一筆錢,但你卻可以花兩次 — — 雙花攻擊(Double Spend Attack)。
  2. 你只有一筆存款,但你卻可以提款兩次 — — 重入攻擊(Re-Entrancy Attack)。
  3. 你沒有資產所有權,你卻能控制其他用戶的資產,並將其轉移到自己的帳戶中 — — Parity錢包智能合約的漏洞。

當然你可以把過錯怪罪給用Solidity撰寫智能合約的工程師,他們就像你去非洲部落請了一位翻譯嚮導,你想去看藍色的海,他們卻誤以為你是要去看綠色的大草原。這種語言映射上造成的語意落差,在旅遊上造成的損失可能只是浪費掉一些時間而已,但在金融資產上,造成的損失可能是你一輩子都賺不回來的天文數字。據 PeckShield 派盾統計 2020 年 DeFi 安全事件達到 60 起,損失逾 2.5 億美元,佔統計的駭客攻擊造成總損失的 12.5%,著名的 the DAO 被盜事件就是攻擊者運用重入攻擊導致以太坊硬分叉,損失了價值 5000 萬美元的以太坊。

這些不斷發生的智能合約漏洞問題,對整個Defi生態系的負面影響是相當大的,某種程度上也促成了普羅大眾對加密貨幣的一種負面刻板印象:危險、詐騙、虧錢、駭客、攻擊、損失。

從數字上來看,語言的重要性不言而喻。顯然我們不能只把過錯歸咎給撰寫智能合約的團隊,應該要有更積極的作法,才能促進Defi的進步與普及,這是Move想在Defi生態系中扮演的角色之一。

下一篇我會講述Move如何描述虛擬資產?以及其語言特性如何改善Solidity無法改善的問題?

相關文章:

--

--

James Shieh
技術保鮮盒

Find something more important than you are and dedicate your life to it.