CARD:Sin7y团队解读:Cairo - 指令

1.指令结构

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

2.状态转换

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

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

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

2.1转换逻辑

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

币安发布2022年终回顾报告,投资超过5亿美元来支持Web3和区块链创新:1月19日消息,币安发布2022年终回顾报告,总结了币安庞大生态的关键事实、统计数据和发展。

1. 到2022年底,在14个司法管辖区获得了许可、注册和批准。将安全与合规团队的人数增加了500%,吸纳了一些业内最优秀的人才。

2. 在加密货币领域发生一系列令人震惊的破产事件后,在严酷的宏观经济环境下无助于改善公众情绪,努力建立和恢复对币安乃至整个生态系统的信任。

3. 继续支持寻求对空间产生积极、持久影响并为最终用户创造价值的同行。 通过币安孵化器,投资了超过5亿美元来支持Web3和区块链创新,启动了第五季孵化计划,批准或完成了14笔战略并购交易,以及61笔代币风险投资交易。[2023/1/19 11:20:51]

2.2指令校验

GMX 2022年度回顾:年度交易总量达850亿美元:12月29日消息,衍生品协议GMX发布2022年度回顾。相关数据显示,GMX2022年度交易总量达850亿美元、年度费用收入1.15亿美元、年度新增用户数20万。GMX表示,计划于2023年初上线合成资产,对于GMX现存的大部分问题,开发者已有明确计划,将在2023年初的更新中解决大部分问题。[2022/12/29 22:14:25]

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

3.指令示例

3.1断言相等

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

<left_handle_op>=<right_handle_op>

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

路透社发文回顾比特币被主流采用历程:近日,路透社发文《比特币走向主流的旅程》称,比特币是世界上第一个也是最著名的加密货币,由于获得了资产的合法性而创下了新高。美国大型机构对其的兴趣大大推动了比特币价格上涨。文章回顾了2020年以来比特币被一些主流机构采用的历程。例如:1.基金经理Paul Tudor Jones认为比特币是价值储存。2.MicroStrategy首次宣布以2.5亿美元的价格购买21,454枚比特币。3.特斯拉对BTC投资15亿美元并预计在不久的将来开始接受比特币支付等内容。[2021/2/15 19:49:13]

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

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

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

解释?指令=5:

?为assert指令=>opcode=4?

?next_ap=ap=>ap_update=00=0?

夜间信息回顾 | 三星证实Galaxy S10内置加密私钥安全存储功能:1.加密社区对彭博社有关比特币价格飙升的观点表示质疑

2.比特币期货收于3900美元上方

3.亚马逊开发可在60秒内创建区块链网络的工具

4.FBI向BitConnect受害者征集信息

5.Facebook首席执行官:考虑将区块链技术用于身份验证

6.三星证实Galaxy S10内置加密私钥安全存储功能

7.加密货币总交易量达到300天高点

8.日本加密货币业界公开资产余额,账户数明显下降

9.凌晨以来BTC出现超10笔大额转账[2019/2/21]

?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,所以填充默认值

动态 | SingularityNET&HARA将通过区块链等技术帮助印度尼西亚农民:据Cryptoglobe消息,SingularityNET&HARA近日宣布,该公司将通过基于区块链的数据管理和验证系统来帮助印度尼西亚的农民增加收益。该系统将提供包括土壤质量、土地所有权和粮食价格等详细信息。此外,该公司还将提供AI功能帮助印度尼西亚农民对作物进行诊断。[2019/1/23]

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,所以填充默认值

参考

SpecificationforCairo:https://arxiv.org/pdf/2109.14534.pdf

关于我们

Sin7y成立于2021年,由顶尖的区块链开发者和密码学工程师组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。

微信公众号:Sin7y

GitHub:Sin7y

Twitter:@Sin7y_Labs

Medium:Sin7y

Mirror:Sin7y

HackMD:Sin7y

HackerNoon:Sin7y

Email:contact@sin7y.org

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-7:702ms