月亮链 月亮链
Ctrl+D收藏月亮链

RES:Sin7y团队解读:Cairo - 指令_Talken

作者:

时间: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转换逻辑

麻吉大哥花费909.99枚ETH买入Azuki系列NFT:金色财经报道,据余烬监测,Azuki项目方的动作让社区失望,Azuki、Beanz、Elemental等价格都在下跌。不过麻吉大哥machibigbrother.eth今天却在逆市买入Azuki系列NFT:677.42枚ETH买入394个ElementalBeans,均价1.72枚ETH;156.68枚ETH买入18个Azuki,均价8.7枚ETH。61.37枚ETH买入14个Elementals,均价4.38枚ETH(均价高是因为他买入了1个稀有度第3的Elementals);14.52枚ETH买入22个Beanz,均价0.66枚ETH。[2023/6/28 22:05:31]

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

Cardano联创:从未为Ripple工作,相关谣言可能把自己和Vitalik搞混了:6月24日消息,针对网上有关其曾在Ripple实习的传闻,以太坊和Cardano联合创始人Charles Hoskinson澄清称,这是谣言,自己从未以任何身份为Ripple工作过。相关谣言应该是把他和Vitalik Buterin两个人搞混了。

相关谣言疑似是基于一条早期的推文(已删除):2019年4月,Vitalik回复Coinbase联合创始人Brian Armstrong的推文时承认,早在2013年中期,当他住在加拿大时,曾试图去加州在此后更名为Ripple Labs的公司当实习生,但由于赞助美国签证的公司必须至少成立一年而未能成功。

Ripple前开发者关系总监Matt Hamilton于2023年5月1日证实,Vitalik当时确实希望能在Ripple实习。[2023/6/24 21:57:28]

2.2指令校验

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

OpenSea Pro:尚未铸造的Gemesis NFT元数据将在5月4日申领窗口关闭后公布:金色财经报道,OpenSea Pro在社交媒体上公布了有关Gemesis NFT持有者钱包元数据的最新信息。OpenSea Pro表示Gemesis NFT的排名特征反映了在Gem上NFT的购买时间,较高的排名对应较早的购买日期,反之则较晚,排名前 1% 的用户现在拥有具有特殊视觉效果的 Gemesis NFT,而尚未铸造的Gemesis NFT元数据将在5月4日申领窗口关闭后公布。

如果符合条件,即在 2023 年 3 月 31 日之前使用过 Gem并且仍然没有领取Gemesis NFT,那么可以在OpenSea上进行铸造,截至目前已铸造超9.2万枚Gemesis NFT,占总供应量的51.4%。[2023/4/19 14:12:33]

3.指令示例

3.1断言相等

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

<left_handle_op>=<right_handle_op>

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

“木头姐”旗下分析师坚称比特币价格将超100万美元:10月12日消息,随着美联储大幅收紧货币政策,推动投资者远离加密货币等风险较高的资产,比特币持有者和矿商在2022年一直在大肆抛售。然而,ARK的加密货币分析师Elmandjra在周二表示,比特币仍有可观的机会,他还重申了该公司认为未来年份比特币价格每枚将超过100万美元的观点。“当我们观察比特币的潜力时,我们按照其用途加以划分,从作为价值存储的数字竞争者,到结算网络,再到防范资产被任意没收的保险,”他解释道。“当你把每一个用途一一叠加时,你会发现大约28万亿美元的机会,这意味着每个比特币超过100万美元。”[2022/10/12 10:31:40]

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

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

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

解释?指令=5:

?为assert指令=>opcode=4?

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

数据:持有0.01枚ETH的地址数量达1个月低点:金色财经报道,据Glassnode数据,持有0.01枚ETH地址数量达到1个月低点,数值为23,106,015。[2022/7/27 2:41:00]

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

参考

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

来源:金色财经

标签:RESOFFTALETHgxsharesCoffeeswapTalkenETHB价格

莱特币最新价格热门资讯
ETH:Gas费真的越低越好吗?_LAYER

原文标题:《HowhighdowewantgasfeestobeonEthereum?》原文作者:mhonkasalo 对ETH持有者来说.

1900/1/1 0:00:00
USD:近3亿美元打水漂?10万人惨遭清算 风险资产继续“投降”_btc属于什么币种

整体加密货币仍呈现疲态,比特币再跌破2万美元、以太坊最低下探1325美元,来到近一个月低点。随着风险市场走弱,未来几天投资者有很多需要担心的事情.

1900/1/1 0:00:00
SBF:BTC庄低位吸筹拉伸即将开始_EDGE

????BTC目前形态走势雷同于年初1月22日到3月29日这一个多月的时间. 美国将撤销对SBF的非法竞选捐款指控:金色财经报道.

1900/1/1 0:00:00
区块链:万向区块链肖风:区块链新阶段 应用协议大爆发_UDAO

9月20日,由万向区块链实验室主办的第八届区块链全球峰会在上海举行。中国万向控股副董事长兼执行董事、万向区块链董事长兼总经理肖风发表《区块链新阶段应用协议大爆发》主旨演讲.

1900/1/1 0:00:00
VER:Sin7y团队解读:Specification for Marlin_CHEE价格

RICS则R1CS成立。TransitionintoPolynomial(efficiency)Prepare Definepolynomial 2.为向量z=(x,w)定义多项式 加密公司FT.

1900/1/1 0:00:00
ETH:以太坊即将合并 以太坊硬分叉ethw已成定局 LfgSwap官网即可开启_怎么得到以太坊币交易

Binance疑似宕机,其现货订单簿数据已10分钟未更新:3月24日消息,Binance 疑似宕机,其现货订单簿数据已 10 分钟未更新.

1900/1/1 0:00:00