1.指令结构
CairoCPU原生支持的word是一个域元素,而这个域是特征值大于P>2^63。每个指令会占用1到2个word,如果指令后面跟着立即值(="12345678")则该指令占用2个word,并且值存在第二个word里。每个指令的第一个word由以下元素组成:
2.状态转换
状态转换函数代表了一个通用的状态转换单元,而一个计算通常会分解成多个连续执行的指令,因此我们需要:
a.确保指令的内容,以及指令执行前后的状态的有效性
b.确保执行的指令是一个有效的指令
2.1转换逻辑
如果指令执行前后的状态是一致的,那么其状态的更新一定是按照以下逻辑执行:
比特币上的BRC-20代币Ordi突破1美元:金色财经报道,数据显示,比特币铭文代币 Ordi 已突破 1 美元,暂报1.2美元,24 小时涨幅 16.5%,当前总市值已达 2520 万美元。此外,BRC-20 相关代币目前约为 4635 种,总市值为 46,071,391 美元,Ordi 当前市值占 BRC-20 总市值 50% 以上。
据悉,BRC-20 协议是直接写到比特币网络上,以聪为载体,用 Ordinal Inscriptions 的 JSON 数据部署、铸造和转移代币。Ordi 是第一个比特币铭文代币,总供应量为 2100 万枚。[2023/4/27 14:30:55]
Kin基金会推出支持开发者集成至Solana的工具:1月31日消息,Kin 基金会推出了名为“Kinetic”的解决方案,该解决方案将允许开发者将 Solana 集成至其应用中。
据悉,Kinetic 是一种用于基于 Solana 的应用内集成的开源中间件技术,包括开发者在其应用上部署集成所需的 API 和 SDK。Kin 基金会表示,在 Kinetic 上开发的应用程序将有资格获得资助和奖励。[2023/1/31 11:39:16]
2.2指令校验
如图1所示,?个指令由以下元素组成:
3.指令示例
3.1断言相等
断言相等指令可以用下述语法表示:
<left_handle_op>=<right_handle_op>
它确保了公式两边是相等的,否则程序的执行将会被返回。
比特币核心开发者寻求FBI追回被盗BTC:金色财经报道,比特币核心开发者Luke Dashjr已请求联邦调查局(FBI)协助他追回在新年前夜从他的存储钱包中被盗的价值360万美元的数字资产。
据悉,比特币核心开发者Luke Dashjr在社交媒体披露自己PGP密钥泄露导致200枚BTC被盗,金额约合360万美元。此外,Luke Dashjr还提醒加密社区暂时不要下载Bitcoin Knots应用程序,包括这款应用的更新版。[2023/1/4 9:51:59]
Note2:除法和减法可以分别表示为具有不同操作数顺序的乘法和加法。
assert指令可以被认为是一条赋值指令,其中?边是已知的,另一边是未知的。例如=4可以被认为是断言的值为4,或者根据上下文将赋值为4。
图4给出了断言相等指令的一些示例,以及每个指令对应的标志值:
解释指令=5:
以太坊2.0质押协议Geode Finance完成300万美元种子轮融资:6月10日消息,以太坊 2.0 质押协议 Geode Finance 完成 300 万美元种子轮融资,Multicoin Capital 领投,参投方包括 Eden Network、Yield Yak、GSR Markets、C2 Ventures 以及 C2 Ventures 创始人和管理合伙人 Ciara Sun。[2022/6/10 23:05:56]
?为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,所以填充默认值
彭博社:推特已冻结其部分员工的内容审核工具权限:11月1日消息,推特已冻结部分员工的内容审核和其他政策执行工具权限,导致该公司负责信任与安全组织工作的大多数人都无法处理或惩罚发布误导信息、攻击性帖子和仇恨言论规则的账户,目前推特拒绝就其限制内容审查工具使用的问题发表评论。
彭博社表示,虽然 Elon Musk 此前称不会改变推特的内容审核政策,但据知情人士透露,他已经对一些政策提出了疑问,但目前尚不清楚 Elon Musk 是否希望修改相关政策或完全取消限制。[2022/11/1 12:06:32]
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
标签:RESOFFORDDSTPolka VenturesBogdanoff ForeverOrdinal ChainCardstack
Step1.Buildtrace 标红部分为Publicinfo Step2.ProverforTrace协议参数选取: 1.AIR实例化 2.验证AIR和Trace的一致性2.
1900/1/1 0:00:00Aug.2022,ThiagoFreitasDataSource:ArtBlocksDashboardArtBlocks是一个NFT平台,使其用户能够铸造所谓的"生成艺术".
1900/1/1 0:00:00在过去的半年里加密资产行业内外,金融风险的多米诺骨牌效应连续上演。加密资产行业内部Luna崩盘成为了此次危机的导火索,紧接着三箭资本申请破产,加密经济商VoyagerDigital和借贷平台Ce.
1900/1/1 0:00:00在过去的两年里,有许多围绕着Web3和加密货币的讨论。并且有充分的理由。 作为从Web2.0运动演变而来的一部分,Web3是将互联网去中心化的运动,使生态系统内的应用程序、网站和服务的访问民主化.
1900/1/1 0:00:00千百年来,「签字画押」一直都是现实世界中最具法律效力的个人承诺形式,譬如常见的买卖合同、借贷协议、书信请帖等等,只要落款有个人签名,基本都直接代表签名方,并可理解为达成经签名方认可的契约.
1900/1/1 0:00:00关于为什么密码学的新进展可能对数字身份基元很重要。上一篇DAOrayaki介绍了“DAOrayaki|为什么Web3需要ZK身份?”;这篇文章介绍“如何实现”.
1900/1/1 0:00:00