宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > MEXC > 正文

详解Cairo指令-ODAILY

作者:

时间:1900/1/1 0:00:00

1.指令结构

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

2.状态转换

状态转换函数代表了一个通用的状态转换单元,而一个计算通常会分解成多个连续执行的指令,因此我们需要:

a.确保指令的内容,以及指令执行前后的状态的有效性

波德戈里察地方法院将于6月19日对Do Kwon伪造护照案作出裁决:6月16日消息,在黑山首都波德戈里察地方法院审理的伪造护照案中,Terraform Labs联合创始人Do Kwon表示其护照是通过朋友推荐的新加坡代理机构获得了哥斯达黎加护照,并走遍了世界。他表示,在申请格拉纳达护照被拒后申请哥斯达黎加护照时被通过了。

Do Kwon称,如果我怀疑那是假护照,我就不会去很多国家了。检察官表示,这不是合法机构签发的护照,比利时护照上的名字不同,出生日期也不同,很明显,护照是恶意制作的,我们要求对他进行相应的惩罚。双方辩论结束后,法官宣布,他将在6月19日下午2点作出裁决。[2023/6/17 21:43:01]

b.确保执行的指令是一个有效的指令

2.1转换逻辑

如果指令执行前后的状态是一致的,那么其状态的更新一定是按照以下逻辑执行:

22,000枚ETH从Coinbase转移到未知钱包:金色财经报道,据WhaleAlert数据显示,22,000枚ETH(38,195,308 美元)从Coinbase转移到未知钱包。[2023/6/14 21:35:18]

2.2指令校验

如图1所示,?个指令由以下元素组成:

ETHW Core发布第二次代码更新,强制执行EIP-155以防止重放攻击:8月23日消息,以太坊分叉项目EthereumPoW(ETHW)发推称,ETHW Core发布了第二次代码更新,强制执行EIP-155。此次更新后,所有交易都必须使用链ID进行签名。这将保护ETHW用户免受来自ETHPoS和其他分叉币的重放攻击。

此外合约冻结功能被拉到一个单独的分支中,并且已经完成了所有的集成和测试。这个功能最终是否会被拉入主分支将在9月1日的核心会议上决定。

此前消息,ETHW Core初始版本包括禁用难度炸弹、EIP-1559变更、调整ETHW起始挖矿难度。EthereumPow曾表示。ETHW Core将引入流动性池冻结技术保护用户资产,并发布3批冻结清单,共121份合约。[2022/8/23 12:42:16]

3.指令示例

3.1断言相等

断言相等指令可以用下述语法表示:

<left_handle_op>=<right_handle_op>

它确保了公式两边是相等的,否则程序的执行将会被返回。

Note2:除法和减法可以分别表示为具有不同操作数顺序的乘法和加法。

非营利筹资平台Heroe5宣布成立Web3融资平台:金色财经报道,非营利筹资平台Heroe5今天宣布成立The Good Society?,以满足慈善组织对可持续筹资平台日益增长的需求。The Good Society 成为第一个专注于 Web3 解决方案的项目,旨在提高认识并支持致力于对我们的社区产生积极影响的全球事业。

Heroe5 和 The Good Society 的首席执行官 Sebastien Heimann 表示:The Good Society 是筹款行业发展的重要下一步:一个创造艺术影响体验的 Web3 平台。随着世界转向 Web3,慈善机构需要更多的筹款工具来保持领先地位,并采用新的方式来吸引潜在的捐助者。Good Society 将提供这些创新,使他们能够为重要事业筹集关键资金和提高认识,同时满足公众对数字收藏品日益增长的兴趣。[2022/8/11 12:18:27]

assert指令可以被认为是一条赋值指令,其中?边是已知的,另一边是未知的。例如=4可以被认为是断言的值为4,或者根据上下文将赋值为4。

图4给出了断言相等指令的一些示例,以及每个指令对应的标志值:

解释指令=5:

众议员Madison Cawthorn除购买LGB Coin,还购买了ETH:金色财经报道,周五,众议员Madison Cawthorn迟来披露了可疑的加密货币交易,Cawthorn透露,他于12月21日购买了价值 100,001 美元至 250,000 美元的LGB Coin加密货币。这笔交易是在他于 12 月 29 日在 Instagram 上发帖称“明天我们去月球”前八天进行的,以回应他与联合创始人合影的照片。一天后,该加密货币的价值因与 NASCAR 车手达成赞助协议的消息而飙升 75%。众议员Madison Cawthorn于 12 月 31 日出售了价值 100,001 美元至 250,000 美元的LGB Coin加密货币。这笔交易可能至少收回了他在美元价格暴涨之前为加密货币支付的费用。此外,Cawthorn还透露,他在12月27日购买了价值 1,001 美元至 15,000 美元的以太坊,并在 12 月 31 日购买了价值 1,001 美元至 250,000 美元的以太坊。

金色财经此前报道,美众议员Madison Cawthorn因涉嫌“拉高出货”某加密货币而遭众议院调查。(CNBC)[2022/5/28 3:46:29]

?为assert指令=>opcode=4

?next_ap=ap=>ap_update=00=0

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

?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指令。

指令的语法如下所示:

#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

标签:RESOFFETHDSTForrest PumpOffshiftETHE价格SDST

MEXC热门资讯
SUN.io 2pool(USDD/USDT) 矿池当前APY高达39%-ODAILY

据最新消息,截至6月22日,SUN.io上的2pool(USDD/USDT)矿池APY高达39%,质押价值超过1亿美元,流动性价值超过2.4亿美元。加入SUN.io2pool稳定币挖矿,即可享受丰厚的USDD+SUN双币奖励.

1900/1/1 0:00:00
Tether项目周报(0501-0508)-ODAILY

TetherCTO:Tether没有上市计划5月5日消息,Tether的CTOPaoloArdoino在采访时表示,计划做的是继续做我们正在做的事情,也就是说,真正成为人民的工具。我们并没有真正参与DeFi.

1900/1/1 0:00:00
JustLend上USDD市场的存款挖矿奖励现已正式升级为USDD-ODAILY

据官方消息,JustLend上USDD市场的存款挖矿奖励现已正式升级为USDD。 Justin Sun::将推出Huobi Hong Kong,已申请交易牌照:金色财经报道,Huobi 全球顾问委员会成员 Justin Sun 在社交.

1900/1/1 0:00:00
波场去中心化算法稳定币USDD挖矿指南-ODAILY

波场去中心化算法稳定币USDD于今日正式上线,波场TRON正式开启稳定币3.0时代。 USDD是波场DAO联合区块链行业的主流机构推出的去中心化算法稳定币,以数学与算法实现人类的金融自由,不依赖任何中心化实体而永恒存在.

1900/1/1 0:00:00
稳定币产品层出不穷,USDD会是最后的赢家吗?-ODAILY

加密市场从来都是是阴晴不定的,稳定币作为一种维持稳定市场价格的加密货币,扮演着极其重要的角色,并促成了新金融系统的创建。目前市场上的稳定币层出不穷,各有特色,但不应低估风险。我们已经看到了锚定失败、储备金缺失和诉讼问题的稳定币项目.

1900/1/1 0:00:00
两天内遭遇两次攻击, DeFi协议FEG真的伤不起-ODAILY

前言 北京时间2022年5月16日,知道创宇区块链安全实验室监测到多链DeFi协议FEG遭到闪电贷攻击,攻击者窃取144ETH和3280BNB,损失约130万美元.

1900/1/1 0:00:00