月亮链 月亮链
Ctrl+D收藏月亮链
首页 > Ethereum > 正文

FLAG:Sin7y团队解读:TinyRam 指令集和电路约束_movez币是哪个国家发行的

作者:

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

简介

Tinyram是一个简单的RISC随机存取机器,具有字节寻址的random-accessmemory和inputtapes。TinyRAM有两个变体:一个遵循哈佛架构,一个遵循冯诺依曼架构(本文我们主要讨论冯诺依曼架构)。

简明计算完整性和隐私研究项目构建了证明TinyRAM程序正确执行的机制,而TinyRAM的设计是为了在这种情况下提高效率。它在“拥有足够表达能力”和“足够简约”这两个对立面之间取得平衡:

?当从高级编程语言编译时,有足够的表达能力来支持简短高效的汇编代码。

?小指令集,指令通过运算电路简单验证,利用SCIPR的算法和密码机制实现高效验证。

本文对于tinyram不再进行重复介绍,会对上一篇文章进行补充,然后重点是指令介绍和电路约束介绍。tinyram基础介绍可以参考我们团队上一篇文章:深入理解TinyRam

Tinyram指令集

Tinyram总共有29个指令,每条指令都由一个操作码和最多三个操作数组成。一个操作数可以是一个寄存器的名称。除非特别说明,否则指令不会单独修改flag。每条指令默认将pc增加i(i%2^W),对于vnTinyram来说i=2W/8。

一般来说,第一个操作数是指令计算的目标寄存器,其他的操作数指定指令需要的参数,最后,所有指令都需要机器的一个周期来执行。

位操作

整数操作

这些是各种无符号和有符号的整数操作。在每种情况下,如果发生算术溢出或错误,flag被设置为1,否则被设置为0。

shift操作

??shl?指令?shlrirjA?将左移位ubit得到的W位string存储在ri寄存器中。移位后的空白位置被填充为0。此外flag被设置为的最高有效位。

??shr?指令?shrrirjA?将右移位ubit得到的W位string存储在ri寄存器中。移位后的空白位置被填充为0。此外flag被设置为的最低有效位。

比较操作

比较操作中的指令每一个都不会修改任何寄存器;比较的结果存储在flag中。

参与ETH ICO的成员近8年来首次转移代币:金色财经报道,时隔7年零9个月,参与以太坊ICO的地址完成了第一笔转出交易。2015年7月,该钱包以0.31美元的初始代币发行价格收到2365ETH。2823天后,所有者进行了第一笔交易,发送了1个ETH(撰写本文时约为1862美元)。一些评论员表示,这是在出售整个加密货币之前的一次测试转账,金额约为440万美元。[2023/4/24 14:23:21]

move操作

??mov?指令?movriA?将存储到ri寄存器中。

??cmov?指令?cmovriA?如果flag=1,将存储到ri寄存器中。否则ri寄存器的值不会改变。

Jump操作

这些jump和条件jump指令都不会修改寄存器和?flag?但是会修改?pc。

??jmp?指令?jmpA?将存储到pc中。

??cjmp?指令?cjmpA?在?flag?=1的条件下将存储到pc中,否则pc自增1。

??cnjmp?指令?cnjmpA?在?flag?=0的条件下将存储到pc中,否则pc自增1。

Memory操作

这些是简单的memoryload和store操作,其中memory的地址由立即数或寄存器的内容确定。这些是tinyram中唯一的寻址方式。。

输入操作

该指令是唯一一个访问两个tapes中的任意一个的指令。第0个tape用于primary输入,第1个tape用户auxiliary输入。

输出操作

该指令表示程序已经完成了计算,因此不能再允许其他操作。

指令集约束

Tinyram采用R1CS约束形式进行电路约束,具体形式如下:

Ark Invest通过旗下三支基金再次增持186,284股Block公司股票:金色财经报道,Cathie Wood 的投资管理公司 Ark Invest 向三支基金增持了 186,284 股 Block 股票,采购额估计约为 1370 万美元。根据其最新的交易文件,Ark Innovation ETF 中增加了 159,654 股 Block 股票,在 Ark Next Generation Internet ETF 中增加了 25,783 股,在 Ark Fintech Innovation ETF 中增加了 847股。Block 昨日收盘上涨 6% 至 73.63 美元,根据收盘价计算,购买金额约为 1370 万美元。[2023/3/15 13:06:18]

一个R1CS约束,可以有a,b,c三个linear_combination表示,一个R1CS系统中的所有变量的赋值,可以分为两个部分:primaryinput和auxilaryinput。Primary就是我们经常说的“statement”。auxiliary就是“witness”。

一个R1CS约束系统包含多个R1CS约束。每个约束的向量长度是固定的。

Tinyram在libsnark的代码实现中大量使用了一些定制gadgtes来表述vm的约束以及opcode执行和memory的约束。具体代码在gadgetslib1/gadgets/cpu_checkers/tinyram文件夹下。

位操作约束

??and?约束公式:

and的R1CS约束将参数1和参数2以及计算结果逐bit位进行乘法计算验证,约束步骤如下:

1.计算过程约束,代码如下:

2.结果编码约束

3.计算结果非全0约束

4.flag约束

育碧在The Sandbox中推出Rabbids NFT化身:金色财经报道,游戏巨头育碧宣布在元宇宙游戏TheSandbox中引入Rabbids(疯狂兔子)NFT化身,已开始对白名单用户进行销售,公开销售将于周三开始。据悉,育碧通过以太坊扩展网络Polygon发布了2066个Rabbids NFT,每个NFT售价为100SAND,截至目前,价值约78美元。

鉴于2023年是兔年,这次的主题是以农历新年为背景,Rabbids的各种设计将在本周五向买家揭晓。此外,2月28日,TheSandbox将在目前的开放阿尔法测试中推出一个Rabbids游戏世界,其中包含数量有限的可玩体验。这些化身在TheSandbox中被称为“未来实用程序的关键”,包括获得潜在的未来掉落。[2023/2/22 12:21:20]

??or?约束公式:

具体约束步骤如下:

1.计算过程约束,代码如下:

2.结果编码约束

3.计算结果非全0约束

4.flag约束

??xor?约束公式:

具体约束步骤如下:

1.计算过程约束,代码如下:

步骤2,3,4同上

?not?约束公式:

具体约束步骤如下:

推特前CFO:推特的价值应该是数千亿美元:11月2日消息,推特前首席财务官兼首席运营官Anthony Noto周二在接受采访时表示,马斯克以440亿美元的价格收购推特可能是一笔便宜交易,前提是他可以通过推出新功能和削减成本的方式从该平台中汲取价值。Noto指出,“按照他们认为合适的方式执行真的取决于团队,但鉴于推特拥有如此有价值的内容,我认为推特应该拥有数十亿用户。如果推特能够释放这些价值,公司的价值应该是数千亿美元,而不是数百亿美元。”[2022/11/2 12:06:46]

步骤2,3,4同上

整数操作约束

?add:?约束公式:

具体约束步骤如下:

1.计算过程约束,代码如下:

2.解码结果约束和boolean约束

3.编码结果约束

?sub:?约束公式:sub约束比add稍微复杂一些,采用了一个中间变量表示a-b的结果,同时为了保证结果计算表示为正整数和符号的形式,给结果加上了2^w。具体约束步骤如下:

1.计算过程约束

2.解码结果约束和boolean约束

3.符号位约束

?mull?、umulh、smulh?约束公式:

mull相关的约束都涉及以下几个步骤

1.计算乘法约束

2.计算结果编码约束

研究员:stETH年度质押收益率的7天平均值攀升至5.5%:金色财经报道,DeFi研究员Mika Honkasalo称,stETH(由以太坊支持的流动性质押代币)年度质押收益率(APR)的7天移动平均值已攀升至5.5%,与9月份的3.5%大幅上升。而对于那些通过icETH或ETHMAXI等产品利用质押奖励的用户来说,APR已经飙升至11%。

Honkasalo表示,收益率上升的主要原因是网络活动的增加,以及最大可提取价值 (MEV) 的回升。(The Block)[2022/10/21 16:33:27]

3.计算结果flag约束

?udiv?、umod?约束公式:

B为除数,q商,r为余数。余数与需要满足不能超过除数的条件。具体约束代码如下:

shift操作约束

??shl、shr?约束公式

比较操作

比较操作中的指令每一个都不会修改任何寄存器;比较的结果存储在flag中。比较指令包含cmpe、?cmpa?、cmpae、cmpg、cmpge?。比较指令可以分为两类,分别为有符号数的比较和无符号数比较,两者约束过程核心都利用了libsnark中实现的comparison_gadget。

其他剩余过程跟有符号数比较约束相同

move操作约束

??mov?约束公式:

mov的约束比较简单,只需要确保将存储到ri寄存器中,由于mov操作没有修改flag,所以约束需要确保flag的值没有产生变化。约束代码如下:

??cmov?约束公式:

cmov的约束条件比mov复杂一些,主要mov的行为跟flag值的变化有关系,同时cmov不会修改flag,所以约束需要确保flag的值没有变化,cmov的代码如下:

Jump操作约束

这些jump和条件jump指令都不会修改寄存器和?flag?但是会修改?pc。

??jmp

Jmp操作约束pc值与指令执行结果一致,具体约束代码如下:

??cjmp

cjmp根据flag条件进行跳转,flag=1进行跳转,否则pc自增1

约束公式如下:

约束代码如下:

??cnjmp

cnjmp根据flag条件进行跳转,flag=0进行跳转,否则pc自增1

约束公式如下:

约束代码如下:

Memory操作约束

这些是简单的memoryload和store操作,其中memory的地址由立即数或寄存器的内容确定。这些是tinyram中唯一的寻址方式。。

??store.b?和?store.w

对于store.w取整个arg1val的值,对于store.b操作码只会取arg1val的必要部分,约束代码如下:

??load.b?和?load.w

这两个指令我们要求从内存中加载的内容被存储在instruction_results中,约束代码如下:

输入操作约束

??read

read操作跟tape有关,具体的约束规则是:

1.上一个tape中的内容被读完,没有内容可读,不会读取下一个tape。

2.上一个tape中的内容被读完,没有内容可读,flag被设置为1

3.如果当前执行的指令是read,那么read读取到的内容和tape输入内容一致

4.从tape1以外的地方读取内容,flag被设置为1

5.result为不为0,意味着flag为0

约束代码:

输出操作约束

该指令表示程序已经完成了计算,因此不能再允许其他操作

??answer

当程序的输出值被接受,has_accepted会被设置为1,程序返回值能够被正常接受意味着当前的指令为answner以及arg2value为0。

约束代码如下:

其他

当然除了上述提到的一些指令相关的约束外,tinyram还有一些pc一致性、参数编解码、内存检查等各种约束。这些约束通过R1CS系统组合起来构成一个完成的tinyram约束系统。所以这也是R1CS形式的tinyram生成约束数量较多的根本原因。

这里引用一个tinyram介绍ppt的图片,展示一个ERC20transfer用tinyram生成证明需要的时间消耗。

从上图的例子可以得出结论:使用vnTinyram+zk-SNARKs验证所有EVM操作是不可能的,只适合验证少量的指令的计算验证,可以使用vnTinyram验证EVM的部分计算类型的opcode。

参考

tinyram介绍ppt:

https://docs.google.com/presentation/d/1lbyLmXhCry61fxWm8LLxPKhCYV67RcZaK3WL20Hb-t8/edit#slide=id.g5b38da04a0_0_21

关于我们

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

微信公众号:Sin7y

GitHub:Sin7y

Twitter:@Sin7y_Labs

Medium:Sin7y

Mirror:Sin7y

HackMD:Sin7y

HackerNoon:Sin7y

Email:contact@sin7y.org

来源:金色财经

标签:FLAGRAMTINMOVFLAG价格FUTURAMAYachtingVersemovez币是哪个国家发行的

Ethereum热门资讯
比特币:比特币价格摸底尚早 高盛预警:将跌至1.2万美元_GRAIL

高盛发出的一系列宏观警告使比特币面临崩盘至1.2万美元的风险。以JanHetzius为首的高盛经济学家团队对美联储基准利率的加息速度做出了预测.

1900/1/1 0:00:00
AXI:大盘如期下破箱体下沿 后续如何把握?_Axioms

向阳的花,努力生长,总会绽放,心有所爱,有所期待,剩下的就是努力扎根努力生长,静待花开。无人为我们鼓掌的时候,给自己一个鼓励,在无人为我们拭泪的时候,给自己一些安慰,在我们自惭形秽的时候,给自己.

1900/1/1 0:00:00
FIL:玩赚WEB3.0时代 DATA WORLD正式开启Filewing算力超市服务_WIN

北京时间9月15日19:00,WEB3.0数据服务平台DATAWOELD正式开启Filewing算力超市服务,在FILpoolAPP上线多款Filewing算力产品.

1900/1/1 0:00:00
DOO:JZL Capital 数字周报第38期 9/19/2022 :CPI超出预期 加息恐慌加剧_以太坊

????????? 一、上周行业动态???? ???????本周二CPI数据高于预期,加密市场跟随美股市场跳水,基本抹平上一周的涨幅。截至撰稿比特币收于19857.3美元,周内跌幅8.24%.

1900/1/1 0:00:00
WEB:Web3 大众化必须解决的 5 个问题_WEB3

要使Web3真正进入大众生活,而非仅仅是家喻户晓的名词,需要解决这5个关键问题。原文标题:《5necessarymilestonestobringWeb3tothemasses》撰文:Zelus.

1900/1/1 0:00:00
DAO:集权还是去中心化?MakerDAO 的治理迷雾_makerdao代币

1.MakerDAO的发展在稳定币DAI概念公布后的第六年,今天的MakerDao协议仍然是以太坊链上最成功的DeFi应用之一.

1900/1/1 0:00:00