比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

詳解Cairo指令-ODAILY_DST

Author:

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

1.指令結構

CairoCPU原生支持的word是一個域元素,而這個域是特征值大于P>2^63。每個指令會占用1到2個word,如果指令后面跟著立即值(="12345678")則該指令占用2個word,并且值存在第二個word里。每個指令的第一個word由以下元素組成:

2.狀態轉換

狀態轉換函數代表了一個通用的狀態轉換單元,而一個計算通常會分解成多個連續執行的指令,因此我們需要:

a.確保指令的內容,以及指令執行前后的狀態的有效性

b.確保執行的指令是一個有效的指令

2.1轉換邏輯

如果指令執行前后的狀態是一致的,那么其狀態的更新一定是按照以下邏輯執行:

Wintermute:過去一年中最大的單筆場外交易超10億美元:6月14日消息,加密貨幣做市商Wintermute發推稱,其場外交易對手方數量達到了1000。Wintermute表示,過去的一年里共執行了840萬筆場外交易,最大的單筆交易額超過了10億美元。[2023/6/15 21:37:25]

2.2指令校驗

如圖1所示,?個指令由以下元素組成:

韓國通過法案要求立法者和其他政府官員申報其持有的數字資產:金色財經報道,韓國國民議會一致通過了一項法案,該法案將授權立法者和其他高級政府官員申報其持有的數字資產。一院制機構的 268 名成員均一致通過了以韓國代表金南國命名的《金南國預防法》。該法案于周一成功通過了一個關鍵委員會,并在最近進行了修正后獲得通過。該修正案要求現任議會成員必須在 6 月底之前披露從任期開始至 5 月 31 日期間獲得的所有數字資產。

議員 Chun Jae-soo表示,傳統資產,如現金、股票和房地產類型的資產僅在超過 1000 萬韓元時才需要申報。對于加密貨幣,由于不可預測的價值波動,每一枚硬幣都需要報告。[2023/5/26 10:40:40]

3.指令示例

3.1斷言相等

斷言相等指令可以用下述語法表示:

<left_handle_op>=<right_handle_op>

它確保了公式兩邊是相等的,否則程序的執行將會被返回。

加密金融知識平臺Beurzbyte完成220萬英鎊Pre-seed輪融資:1月19日消息,加密金融知識平臺 Beurzbyte 宣布完成 220 萬英鎊 pre-seed 輪融資,一批天使投資人參投。Beurzbyte 希望彌合華爾街與普通大眾之間的「知識鴻溝」,其目標用戶是剛剛進入金融市場的初級用戶,除了加密貨幣交易工具基礎知識之外,還提供股票、債券、收藏品等領域的金融知識服務。[2023/1/20 11:21:53]

Note2:除法和減法可以分別表示為具有不同操作數順序的乘法和加法。

assert指令可以被認為是一條賦值指令,其中?邊是已知的,另一邊是未知的。例如=4可以被認為是斷言的值為4,或者根據上下文將賦值為4。

圖4給出了斷言相等指令的一些示例,以及每個指令對應的標志值:

解釋指令=5:

?為assert指令=>opcode=4

?next_ap=ap=>ap_update=00=0

?next_pc=pc+instruction_size=>pc_update=000=0

歐洲區塊鏈協會等5家新機構加入區塊鏈開放生態Hyperledger基金會:12月14日消息,由 Linux 基金會托管的全球企業級區塊鏈開放生態 Hyperledger 基金會宣布 5 家新成員機構加入,包括 Energy Web、Instnt 和 Integra Ledger,這三家機構為普通會員;以及歐洲區塊鏈協會(European Blockchain Association)和 Howest,這兩家機構為準會員。[2022/12/15 21:45:14]

?op0和op1沒有addormul=>res_logic(res)=00=0

?存在立即數=>op1_src(op1)=001=1

?立即數地址指令地址相鄰=>off_op1=1

?等式左邊=>dst_reg(dst)=1

?等式左邊=>off_dst=1

?op0_reg/off_op0=>initalvalue(1/-1)//因為這個指令用不到這些flags,所以填充默認值

3.2條件和非條件跳轉

jmp指令允許更改程序計數器pc的值。

Cairo支持相對跳轉和絕對跳轉-分別用關鍵字rel和abs表示;jmp指令或許是有條件的,比如當某個內存單元的值不為0時,觸發jmp指令。

Magic Eden Launchpad平臺已支持半同質化代幣SFT:11月7日消息,NFT市場Magic Eden的Launchpad平臺宣布已支持半同質化代幣SFT(Semi-Fungible Token),并將與Solana生態元宇宙游戲Star Atlas合作于明天將推出Star Atlas基于SFT的全新圖畫小說CORE Episode #1。

SFT可幫助Web3游戲的玩家獲得更順暢的游戲體驗,同時,對于游戲開發者而言,SFT降低了玩家在游戲過程中有效鑄造和交易所需的資源量。[2022/11/7 12:27:18]

指令的語法如下所示:

#Unconditionaljumps.

jmpabs<adress>

jmprel<offset>

#Conditionaljumps.

jmprel<offset>if<op>!

圖5給出了jmp指令的一些示例,以及每個指令對應的標志值:

解釋指令jmprel+:

?為jmp指令=>opcode=0

?next_ap=ap=>ap_update=b00=0

?next_pc=pc+res=>pc_update=b010=2

?res=op0+op1=>res_logic(res)=b01=1

?op1:=>op1_src(op1)=b010=2

?op1:=>off_op1=-7

?op0:=>op0_src(op0)=0

?op0:=>off_op0=1

?dst_reg/off_dst=>initalvalue(1/-1)///因為這個指令用不到這些flags,所以填充默認值

3.3call和ret

call和ret指令允許實現函數堆棧。call指令更新程序計數器(pc)和幀指針(fp)寄存器。程序計數器的更新類似于jmp指令。之前fp的值被寫入,以允許ret指令將fp的值重置為調用之前的值;類似地,返回的pc(調用指令后面指令的地址)被寫到,以允許ret指令跳回并繼續執行調用指令后面的代碼的執行。由于寫入了兩個存儲單元,ap向前進了2,fp被設置為新的ap。

指令的語法如下:

callret<adress>

callrel<offset>

ret

圖6給出了call和ret指令的一些示例,以及每個指令對應的標志值:

解釋指令callabs:

?為call指令=>opcode=0

?next_ap=ap=>ap_update=b00=0

?next_pc=res=>pc_update=b001=1

?res=op1=>res_logic(res)=b00=0

?op1:=>op1_src(op1)=b010=2

?op1:=>off_op1=4

?op0_reg/off_op0=>initalvalue(0/1)///因為這個指令用不到這些flags,所以填充默認值

?dst_reg/off_dst=>initalvalue(0/0)///因為這個指令用不到這些flags,所以填充默認值

3.4高級ap

指令ap+=<op>通過給定的操作數增加ap的值。

圖7給出了高級ap指令的一些示,以及每個指令對應的標志:

解釋指令ap+=123:

?為advancingap指令=>opcode=0

?next_ap=ap+res=>ap_update=b01=1

?next_pc=pc+instruction_size=>pc_update=b000=0

?res=op1=>res_logic(res)=b00=0

?op1=123=>op1_src(op1)=b001=1

?op1=123=>off_op1=1

?op0_reg/off_op0=>initalvalue(1/-1)///因為這個指令用不到這些flags,所以填充默認值

?dst_reg/off_dst=>initalvalue(1/-1)///因為這個指令用不到這些flags,所以填充默認值

關于我們

Sin7y成立于2021年,由頂尖的區塊鏈開發者組成。我們既是項目孵化器也是區塊鏈技術研究團隊,探索EVM、Layer2、跨鏈、隱私計算、自主支付解決方案等最重要和最前沿的技術。

微信公眾號:Sin7Y

GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon

Tags:RESOFFDSTEXTSharesChainOffshift anonUSDJedStarDextoken

比特幣交易
什么是加密貨幣清算,為什么它們很重要?-ODAILY_EFI

July.2022,VincyDataSource:FootprintAnalytics-ETHLiquidationDashboard在過去的幾個月里,清算已經成為加密貨幣世界新聞周期的頭條.

1900/1/1 0:00:00
Bitfinex一周簡報(0627-0703)-ODAILY_BIT

GXT作為第174代幣在Bitfinex交易所上市GXT(GemExchangeandTrading)于7月1日(UTC上午10點)宣布在著名的加密貨幣交易所Bitfinex上市.

1900/1/1 0:00:00
DeFi激勵性支出:效率和效果-ODAILY_DEFI

第一部分:激勵性支出背后的歷史背景 在過去500年的金融歷史中,交易所在效率、訪問性和復雜性方面有了巨大的發展.

1900/1/1 0:00:00
Pocket Network加入波卡生態系統-ODAILY_KET

PocketNetwork將為波卡的去中心化基礎設施提供更廣泛的應用支持。 PocketNetwork(https://www.pokt.network/)是去中心化的Web3基礎設施協議,與領.

1900/1/1 0:00:00
「TRON勢力」之“波場TRON穩定幣市值高居全球公鏈第二”-ODAILY_BTC

作為全球最受歡迎的公鏈之一,波場TRON自創立以來始終保持高速發展,生態建設全面開花,各項數據突飛猛進.

1900/1/1 0:00:00
StepN可以逃出死亡螺旋的“魔咒”嗎?-ODAILY_TEP

May2022,SimonDataSource:FootprintAnalyticsStepNDashboard2021年GameFi的P2E模式熱浪不斷.

1900/1/1 0:00:00
ads