Sin7y团队解读:Cairo - 指令

1.指令结构

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

2.状态转换

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

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

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

2.1转换逻辑

Sui主网已升级到V1.1.0版本:金色财经报道,Sui Network官方宣布Sui主网已升级到V1.1.0版本,主网分支hash为:4c9993fa095db8fa2a4791d8ad40d956ef3f6b9e。本次升级添加了sui_getProtocolConfig的方法返回协议配置。如果在请求中指定了有效的协议版本,则返回该版本的协议配置,否则,将返回节点已同步到的最高协议配置。同时,此次升级还包含V10版本节点协议的升级,它将在2f+1+0.5f验证节点升级后的下一次调整中生效,运行fullnode的操作员和开发人员需尽快升级。[2023/5/18 15:11:56]

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

数据:USDC 市占率已跌破4%关口:11月6日消息,AICoin 数据显示,当前 USDC 市值为420.57亿美元,近期其市占率持续走低,现已跌至3.95%,处于近4个月以来最低水平。此外,本周 USDT 市占率也出现震荡下跌现象,现已走低至6.51%。[2022/11/6 12:22:13]

2.2指令校验

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

3.指令示例

3.1断言相等

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

<left_handle_op>=<right_handle_op>

数字藏品国际周指数小幅下跌至49.6点:金色财经报道,据同伴客数据显示,上周(2022年9月12日-9月18日)数字藏品国际周指数1.8点至12.7点,国内周指数下跌14.5点至105.0点,数字藏品综合价值周指数下跌6.9点至49.6点。

备注:· 数字藏品综合价值指数由同伴客数据与链境Labs联合研发,是对国际及国内当月市场热度最高的数字艺术品项目市场总销售规模的综合反映,以2021年11月份销售额的30分之7为基数,指数基值为100。

·国内周指数成分之一的幻核于8月16日发布平台终止运营公告,但销量已于7月10日后归零。为遵循去掉某一成分后指数计算结果无变化的原则,该指数使用幻核7/4-7/10的销售数据进行销售基数调整,并将新的销售基数作为8/14后的指数计算基数。[2022/9/19 7:06:09]

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

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

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

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

Klaytn承诺在四年内投入2000万美元支持韩国科学技术研究院和新加坡国立大学的区块链研发:8月9日消息,韩国区块链平台 Klaytn 承诺在四年内投入 2000 万美元来支持韩国科学技术研究院(KAIST)和新加坡国立大学 (NUS) 的区块链开发和资助。该计划的日常运营将由 KAIST 和新加坡国立大学研究人员领导的全球团队负责,研究将以开源方式运作,研究内容将作为研究论文或开源软件公开披露。(CoinDesk)[2022/8/9 12:12:50]

解释?指令=5:

?为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?

新加坡证券平台ADDX承认合格投资者的加密货币资产:金色财经报道,新加坡私人证券平台ADDX表示,它已成为该国中第一家在评估高净值客户资产时承认加密货币的金融公司。此举凸显了金融服务公司对数字货币的接受程度越来越高,因为它们正在寻求开发广泛的投资者。

ADDX在周三的一份声明中称,只接受个人净资产类别的加密资产,在计算这些资产的价值时将对比特币或以太坊应用50%的折扣率,对USDC稳定币应用 10%的折扣。

ADDX首席执行官Oi-Yee Choo表示,加密货币将继续存在,它们不再只存在于财富和投资对话的边缘,随着大部分投资者拥有加密货币,这些数字资产被认可为个人投资组合的一部分是合理的,与其他可以在市场上估值的资产,如房地产或股权,并无不同。

根据新加坡的规定,个人需要在过去12个月内有至少30万新元(217,991.57美元)的收入,100万新元的净金融资产或200万新元的净个人资产,才有资格成为合格的投资者。(路透社)[2022/6/8 4:10:08]

?等式左边=>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,所以填充默认值

参考

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

来源:金色财经

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

银河链

比特币价格今日行情周末BTC行情走势分析

连续66天总收益75.5%,最大回撤14.73%。交易稳字当头,风险第一收益第二。不仅要懂技术,还要懂得等待,这需要耐心和勇气。长期关注我会有惊喜!大家好,我是OK修哥,本周末行情走势分析,直接上图.

ADA全方位解读DEX赛道现状:60个头部DEX 5大趋势

TL;DR 1.熊市中稳定币交易平台、衍生品交易平台增长潜力提升;2.AMM+NFT是DEX发展的新趋势;3.新公链DEX增长迅速,关于DEX的公链竞争格局呈现一超多强局面;4.市场希望看到DEX的新功能和新物种.

[0:78ms0-1:844ms