www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 6月18日,由Facebook發(fā)起的加密數(shù)字貨幣項(xiàng)目Libra正式亮相。Libra的白皮書與多個(gè)技術(shù)文檔也同步發(fā)布本文從技術(shù)角度對(duì)Move語(yǔ)言進(jìn)行解讀,帶領(lǐng)大家對(duì)這門語(yǔ)言做一個(gè)初步的了解。

6月18日,由Facebook發(fā)起的加密數(shù)字貨幣項(xiàng)目Libra正式亮相。Libra的白皮書與多個(gè)技術(shù)文檔也同步發(fā)布本文從技術(shù)角度對(duì)Move語(yǔ)言進(jìn)行解讀,帶領(lǐng)大家對(duì)這門語(yǔ)言做一個(gè)初步的了解。

數(shù)字資產(chǎn)管理

Move最吸引眼球的特性是它提出的一套完整的面向數(shù)字資產(chǎn)的編程體系。與現(xiàn)有的區(qū)塊鏈編程語(yǔ)言相比,Move著重強(qiáng)化了數(shù)字資產(chǎn)的地位。使用Move語(yǔ)言,開發(fā)者能夠更靈活、安全地在鏈上定義和管理數(shù)字資產(chǎn)。

面臨的挑戰(zhàn)

在區(qū)塊鏈上定義數(shù)字資產(chǎn)具有挑戰(zhàn)性。因?yàn)槲锢硎澜缰匈Y產(chǎn)的一些特性,難以在數(shù)字世界進(jìn)行表達(dá)。

稀缺性:資產(chǎn)的供應(yīng)應(yīng)當(dāng)受到管控。資產(chǎn)不能被復(fù)制,創(chuàng)建新的資產(chǎn)是特權(quán)行為。

訪問(wèn)控制:系統(tǒng)要能夠確保參與者自身的資產(chǎn)受到訪問(wèn)控制策略的保護(hù)。

現(xiàn)有解決方案

現(xiàn)有的區(qū)塊鏈編程語(yǔ)言都具備在區(qū)塊鏈上定義數(shù)字資產(chǎn)的能力,但仍具有一些不足和局限。下面以比特幣和以太坊為例,作一個(gè)簡(jiǎn)要的說(shuō)明。

比特幣通過(guò)UTXO的方式對(duì)其資產(chǎn)進(jìn)行編碼,并使用比特幣腳本來(lái)定義資產(chǎn)的轉(zhuǎn)移規(guī)則,確保稀缺性和訪問(wèn)控制。開發(fā)者可以使用比特幣腳本來(lái)定義各種不同的訪問(wèn)控制策略。

然而,比特幣腳本具有相當(dāng)?shù)木窒扌?,擴(kuò)展性很差。比特幣腳本不是圖靈完備的語(yǔ)言,開發(fā)者也不能在其中自定義數(shù)據(jù)類型和過(guò)程等。因此,想要在比特幣區(qū)塊鏈上定義一種新的數(shù)字資產(chǎn),或者實(shí)現(xiàn)更復(fù)雜的訪問(wèn)控制策略,只能借助一些外部的手段,對(duì)開發(fā)者不友好。

以太坊使用數(shù)值代表以太幣,并在系統(tǒng)層面保證了以太幣的稀缺性和訪問(wèn)控制。開發(fā)者可以使用EVM字節(jié)碼來(lái)編寫智能合約,與鏈上的數(shù)字資產(chǎn)進(jìn)行交互。EVM字節(jié)碼是一種圖靈完備的語(yǔ)言,具有很強(qiáng)的擴(kuò)展性。開發(fā)者不僅可以使用它操作以太幣,也可以自定義數(shù)字資產(chǎn),編寫復(fù)雜的訪問(wèn)控制策略。此外,也可以使用更高級(jí)的Solidity語(yǔ)言來(lái)編寫智能合約,Solidity代碼在運(yùn)行之前會(huì)被編譯為EVM字節(jié)碼。

然而,在以太坊中,自定義的數(shù)字資產(chǎn)的級(jí)別要低于以太幣。以太幣的安全性有系統(tǒng)級(jí)別的保護(hù),而自定義數(shù)字資產(chǎn)的安全性只能由開發(fā)者來(lái)保障。無(wú)論是底層的EVM字節(jié)碼還是高級(jí)的Solidity,開發(fā)者都只能用數(shù)值來(lái)間接代表數(shù)字資產(chǎn)。由于在編程語(yǔ)言的層面沒(méi)有對(duì)稀缺性和訪問(wèn)控制提供支持,開發(fā)者在編碼過(guò)程中很容易發(fā)生錯(cuò)誤,從而導(dǎo)致嚴(yán)重的后果,比如資產(chǎn)的復(fù)制、重用和丟失等。

一等資源

針對(duì)上述問(wèn)題,Move提出了一等資源的概念。開發(fā)者不僅可以利用一等資源來(lái)實(shí)現(xiàn)安全的數(shù)字資產(chǎn),也可為數(shù)字資產(chǎn)編寫正確的業(yè)務(wù)邏輯。

Move將數(shù)字資產(chǎn)與其他數(shù)據(jù)類型(如整數(shù)、布爾等)區(qū)分開來(lái),將其定義為資源類型。資源類型的語(yǔ)義受到了線性邏輯的啟發(fā):一個(gè)資源不能被復(fù)制,也不能被隱式的丟棄(即在程序結(jié)束時(shí),資源處于無(wú)所屬的狀態(tài)),只能進(jìn)行轉(zhuǎn)移。除了上述區(qū)別以外,資源類型在其他方面與普通的數(shù)據(jù)類型一樣,都可以保存在數(shù)據(jù)結(jié)構(gòu)中,可以作為過(guò)程的參數(shù)等。

Move使用模塊對(duì)資源進(jìn)行管理。首先,資源的類型結(jié)構(gòu)定義在模塊中,每個(gè)資源都必然定義在某個(gè)模塊中。其次,模塊中還定義了能夠操作該資源的過(guò)程,例如創(chuàng)建、修改、銷毀等。開發(fā)者可以且只能通過(guò)模塊提供的公開過(guò)程來(lái)對(duì)資源進(jìn)行操作,不能自行編碼修改資源。也就是說(shuō),當(dāng)使用資源來(lái)定義一種數(shù)字資產(chǎn)時(shí),其所有的業(yè)務(wù)邏輯,包括訪問(wèn)控制策略,均已經(jīng)在模塊中定義。而任何脫離、繞過(guò)該模塊對(duì)數(shù)字資產(chǎn)進(jìn)行的操作都是非法的、不被允許的。

在Libra區(qū)塊鏈中,Libra代幣也被定義為一個(gè)資源類型,與用戶自定義的資源一致。這意味著自定義數(shù)字資產(chǎn)與Libra代幣都受到了同樣的保護(hù)。

不過(guò),需要注意的是,Move語(yǔ)言對(duì)數(shù)字資產(chǎn)提供的安全性約束僅限于模塊之外,模塊內(nèi)部的安全性約束仍然需要開發(fā)者自行保證。

靈活性

Move語(yǔ)言的另一個(gè)特點(diǎn)是其為L(zhǎng)ibra提供了更高的靈活性,主要包含以下兩個(gè)方面。為便于理解,下文使用以太坊及Solidity語(yǔ)言作比較。

交易腳本

以太坊的交易中,包含了目標(biāo)智能合約的地址,以及提供給目標(biāo)智能合約的輸入數(shù)據(jù)。如果使用Solidity語(yǔ)言,則該輸入數(shù)據(jù)的內(nèi)容為函數(shù)簽名以及參數(shù)列表。即,以太坊中的一筆交易,實(shí)質(zhì)上是調(diào)用了一個(gè)合約的一個(gè)接口(不考慮合約間的調(diào)用)。

在Libra的交易中,取而代之的是交易腳本。交易腳本是一段完整的、任意內(nèi)容的Move程序。在交易腳本中,可以調(diào)用已經(jīng)發(fā)布在賬本狀態(tài)中的模塊的過(guò)程若干次,并基于調(diào)用的結(jié)果做一些額外的本地處理,例如簡(jiǎn)單的控制流等。

交易腳本為L(zhǎng)ibra提供了極大的靈活性。用戶不僅可以像以太坊那樣,調(diào)用某個(gè)模塊的中的過(guò)程,還可以很輕易地執(zhí)行一些一次性的行為。例如,一次性將某個(gè)代幣轉(zhuǎn)賬給多個(gè)人,即使該代幣的模塊沒(méi)有提供批量轉(zhuǎn)賬的過(guò)程。

模塊系統(tǒng)

以太坊和Libra均使用了基于賬戶的賬本狀態(tài)。

在以太坊中,賬戶分為用戶賬戶和合約賬戶。用戶賬戶不包含數(shù)據(jù)(以太幣除外)。合約賬戶中,既包含了代碼,又包含了數(shù)據(jù)。從面向?qū)ο蟮慕嵌葋?lái)看,以太坊的智能合約就像是單例對(duì)象。由于數(shù)據(jù)無(wú)法直接保存在用戶賬戶中,以太坊上的大多數(shù)數(shù)字資產(chǎn),都實(shí)現(xiàn)了一個(gè)單獨(dú)的ERC20 Token合約,在其中包含了所有用戶的資產(chǎn)信息。

Libra中可以利用Move模塊實(shí)現(xiàn)類似智能合約的功能。但Move模塊與以太坊中的智能合約在設(shè)計(jì)上并不相同,要更為靈活。Move模塊僅包含代碼(包括資源結(jié)構(gòu)定義和過(guò)程),而數(shù)據(jù)保存在資源中。雖然對(duì)資源的操作需要通過(guò)模塊中的過(guò)程來(lái)進(jìn)行,但二者并沒(méi)有捆綁在一起。同一類型的資源可以有若干個(gè),并且發(fā)布在不同的賬戶下。因此,在Libra中,數(shù)字資產(chǎn)保存在用戶自己的賬戶下,而不是像以太坊一樣集中保存。此外,可以在一個(gè)Move模塊中定義多種資源類型結(jié)構(gòu)。

雖然Move中模塊、資源、過(guò)程的關(guān)系與面向?qū)ο缶幊讨蓄悺?duì)象、方法的關(guān)系有些相像,但實(shí)際上有很大的區(qū)別。Move模塊的設(shè)計(jì)更像是函數(shù)式編程的風(fēng)格。

安全性

Move在設(shè)計(jì)時(shí)充分考慮了安全性,不符合安全性要求的Move程序?qū)?huì)被拒之門外。

類型化的字節(jié)碼

Move必須拒絕不滿足關(guān)鍵安全屬性(如資源安全性、類型安全性、內(nèi)存安全性等)的程序,因此需要在程序執(zhí)行之前進(jìn)行鏈上驗(yàn)證。為此,Move采用了類型化的字節(jié)碼作為可執(zhí)行程序的格式。

類型化的字節(jié)碼介于高級(jí)語(yǔ)言和匯編語(yǔ)言之間。以以太坊為例,Solidity是一種高級(jí)語(yǔ)言,而EVM字節(jié)碼可以認(rèn)為是匯編語(yǔ)言。Solidity中雖然也做了各種各樣的驗(yàn)證,能夠保證編譯出的EVM字節(jié)碼具有一定的安全性。然而,由于EVM在執(zhí)行時(shí)所使用的是EVM字節(jié)碼,而Solidity對(duì)安全性的保證實(shí)際上發(fā)生在編譯過(guò)程中,若要進(jìn)行鏈上驗(yàn)證,則必須把編譯過(guò)程放到鏈上。否則,攻擊者完全可以繞過(guò)Solidity,直接編寫具有漏洞的EVM字節(jié)碼。一方面,編譯過(guò)程在鏈上進(jìn)行勢(shì)必會(huì)對(duì)性能造成影響。另一方面,EVM字節(jié)碼缺乏數(shù)據(jù)類型信息,難以進(jìn)行驗(yàn)證。綜上所述,采用類型化的字節(jié)碼,既提供了安全保證,也避免了編譯帶來(lái)的性能損耗。

更利于靜態(tài)驗(yàn)證的設(shè)計(jì)

出于計(jì)算成本的考慮,Move的鏈上驗(yàn)證僅包含了部分關(guān)鍵的安全屬性。除了鏈上驗(yàn)證,Move也被設(shè)計(jì)為支持高級(jí)的鏈下靜態(tài)驗(yàn)證。為此,Move做了以下設(shè)計(jì),使其比大多數(shù)通用語(yǔ)言更適合靜態(tài)驗(yàn)證。

首先,Move不支持動(dòng)態(tài)調(diào)度。所有調(diào)用的目標(biāo)都能夠被靜態(tài)確定。這使得Move不必構(gòu)建復(fù)雜的調(diào)用圖,就能精確地推斷出程序的執(zhí)行效果。

其次,有限的可變性。Move借鑒了Rust的“借用檢查”機(jī)制,確保每個(gè)值在同一時(shí)刻最多有一個(gè)可變引用。

第三,模塊性。Move模塊對(duì)資源進(jìn)行了強(qiáng)制的數(shù)據(jù)抽象和關(guān)鍵操作本地化。也就是說(shuō),對(duì)于模塊以外的程序來(lái)說(shuō),每個(gè)資源都是一個(gè)黑盒。外部代碼無(wú)法得知資源內(nèi)部的細(xì)節(jié),只能通過(guò)模塊的公開過(guò)程對(duì)資源進(jìn)行操作。

虛擬機(jī)

字節(jié)碼解釋器

Move字節(jié)碼解釋器是基于堆棧的,與CLR和JVM類似。指令使用堆棧中的操作數(shù),并在執(zhí)行后將結(jié)果推入堆棧。

Move支持六大類字節(jié)碼指令:

· 用于將數(shù)據(jù)從局部變量復(fù)制、移動(dòng)到堆棧的操作,如CopyLoc、MoveLoc等,以及用于將數(shù)據(jù)從堆棧移動(dòng)到局部變量的指令,如StoreLoc。

· 對(duì)類型化堆棧值的操作,例如將常量推入堆棧,以及對(duì)堆棧操作數(shù)進(jìn)行算術(shù)、邏輯運(yùn)算。

· 模塊相關(guān)的內(nèi)建指令,例如:Pack和Unpack,用于創(chuàng)建、銷毀模塊的聲明類型;MoveToSender、MoveFrom,用于在帳戶下發(fā)布、取消發(fā)布模塊的類型;以及BorrowField,用于獲取對(duì)模塊中某個(gè)類型的字段的引用。

· 引用相關(guān)的指令,例如:ReadRef用于讀引用,WriteRef用于寫引用,ReleaseRef用于釋放引用,F(xiàn)reezeRef用于將可變引用轉(zhuǎn)換為不可變引用。

· 控制流操作,例如條件分支,以及過(guò)程調(diào)用和返回。

· 區(qū)塊鏈特定的內(nèi)建操作,例如獲取交易腳本的發(fā)送者地址、創(chuàng)建新帳戶等。

除此之外,Move也提供了密碼學(xué)原語(yǔ),比如sha3。這些原語(yǔ)由標(biāo)準(zhǔn)庫(kù)的模塊實(shí)現(xiàn),而不是字節(jié)碼指令。

字節(jié)碼驗(yàn)證器

字節(jié)碼驗(yàn)證器為模塊和交易腳本強(qiáng)制執(zhí)行安全屬性。如果不通過(guò)字節(jié)碼驗(yàn)證程序,則無(wú)法發(fā)布模塊或執(zhí)行交易腳本。

字節(jié)碼驗(yàn)證器主要進(jìn)行三個(gè)方面的檢查。

· 結(jié)構(gòu)檢查,確保字節(jié)碼表的格式正確。通過(guò)結(jié)構(gòu)檢查,可以發(fā)現(xiàn)諸如非法表索引、重復(fù)表?xiàng)l目、非法類型簽名等錯(cuò)誤。

· 語(yǔ)義檢查,用于發(fā)現(xiàn)非法參數(shù)、危險(xiǎn)引用、資源復(fù)制等錯(cuò)誤。

· 鏈接。通過(guò)將所用到的結(jié)構(gòu)類型、過(guò)程簽名與其聲明模塊關(guān)聯(lián),從而發(fā)現(xiàn)非法調(diào)用內(nèi)部過(guò)程、過(guò)程與定義不匹配等錯(cuò)誤。在此過(guò)程中,會(huì)訪問(wèn)全局賬本狀態(tài)。

結(jié)論

上文對(duì)Move語(yǔ)言做了簡(jiǎn)要的解讀,希望能使讀者對(duì)Move語(yǔ)言的主要特性、設(shè)計(jì)等有基本的了解。本文如有錯(cuò)誤,請(qǐng)讀者不吝指正。有關(guān)于Move語(yǔ)言的更多細(xì)節(jié),請(qǐng)閱讀Move語(yǔ)言的官方技術(shù)文檔

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉