Sin7y团队解读:深入理解 TinyRAM_RAM:J9CASINO

TinyRAM是由大名鼎鼎的BCTGTV五人组(EliBen-Sasson,AlessandroChiesa,DanielGenkin,EranTromer,MadarsVirza)和SCIPR实验室提出的一种随机访问器架构,旨在成为表达非确定性计算证明性的便捷工具。具体来说,TinyRAM是一种精简指令集计算机(RISC),具有字节级可寻址的随机存取存储器。它在“拥有足够表达能力”和“足够简约”这两个对立面之间取得平衡:

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

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

架构

TinyRAM由两个整数参数化:字长W,需要是2的幂且可以被8整除(这点和现代计算机一样,如32,64),以及寄存器的数量K。一般用TinyRAM(W,K)来表示,机器的状态包括以下内容:

1.程序计数器pc(programcounter),由W个bit组成。

2.K个通用寄存器,以r0,r1,...,r(K-1)表示,每个寄存器都是W个bit。

3.条件标志flag,由一个bit组成。

4.内存,2^W个字节的线性数组,使用小端约定排列字节。

5.2个磁带(tape),每个包含一串Wbit的字。每个磁带都是单向只读的。其中,一个磁带是用于公开输入x,另一个用于私有输入w。其实就是TinyRAM的输入载体。

专为Klaytn设计的去中心化预言机网络Orakl Network已发布白皮书:6月20日消息,专为Klaytn设计的去中心化预言机网络Orakl Network已发布白皮书,后续将推出Cypress服务。Orakl Network将根据Klaytn生态系统中DApp的需求优先提供新的数据馈送,且只以KLAY形式收取费用,每次Orakl Network向Klaytn上DApp提供数据时,收取的部分费用将被烧毁。[2023/6/20 21:49:17]

TinyRAM机的输入是2个磁带以及内存,输出是answer指令,该指令有一个参数A,代表返回值,A=0表示接受。也可以使用该指令终止执行程序。

TinyRAM根据执行指令的位置不同有两种变体:一种变体遵循哈佛架构,另一种遵循冯诺依曼架构。前一种架构的数据和程序存放在不同的地址空间中,且程序是只读的;后一种架构数据和程序存放在同一个可读写的地址空间中。具体用图表的方式来表示这两者的区别:

Gensler:SEC正在努力保护投资者免受炒作和欺诈者的侵害:金色财经报道,Gary Gensler表示,美国证券交易委员会(SEC)正在努力保护投资者免受炒作和欺诈者的侵害。这取决于人们想投资什么。然而,法律明确规定,服务提供商必须充分披露他们的产品和服务,如果没有适当的披露,投资者只是在追逐某些东西,这在一个充满炒作和欺诈者的行业中变得更糟。我们必须证明的是,数字货币是证券,他们应该正确注册并拥有防止欺诈、操纵交易所、经纪人等的规则手册,我们对此非常有信心。[2023/6/7 21:20:51]

以下两个架构的图示:

在开始更详细的TinyRAM设计细节之前,我们以官方白皮书的例子说明,TinyRAM是如何做到既简洁又全面,能够满足非确定性的计算问题的。

意义

Alice拥有x,Bob拥有w。Alice想知道算法A(x,w)的计算结果的正确性,但是不想自己计算。这样的场景,在零知识证明系统中非常常见,有证明者和验证者,验证者想知道证明者提供的证据的正确性,但不必自己重新计算一次。TinyRAM架构就满足这样的场景,两个磁带可以传入私有输入w和公开输入x,证明计算和验证程序在其中执行。SCIPR实验室实现的libsnark库中,已实现了TinyRAM。具体参见:https://github.com/scipr-lab/libsnark.

Crypto.com在新加坡获得数字支付许可批准:金色财经报道,新加坡加密货币交易所Crypto.com在新加坡获得数字支付许可批准。[2023/6/1 11:52:04]

以CircuitGenerator为例,C程序经过编译器之后,编译成TinyRAM的程序,再经过CircuitGenerator之后,生成电路,最后得到zkSNARK电路。

指令

TinyRAM支持29个指令,每条指令都通过1个操作码和最多3个操作数指定。操作数可以是寄存器名称或者立即数。除非另有说明,否则每条指令都不会修改flag,且将pc增加i,对于哈佛架构来说,i=1,对于冯诺依曼架构来说,i=2W/8。通常,第一个操作数是指令执行计算的目标寄存器,其他操作指定指令的参数。最后,所有指令都需要机器的一个周期来执行。

指令包含几种类型,指令名称和intelx86汇编指令类似,可顾名思义。

Sky Mavis将质押超过1100万个AXS代币:金色财经报道,Axie Infinity的创建者Sky Mavis表示,该公司将在其资产负债表上质押11,475,000个AXS代币,以加强其对Axie Infinity生态系统的长期承诺。Sky Mavis是Axie Infinity的创造者,该游戏在 2021年流行,之后由于游戏内代币奖励的价值下降而在新的一年下降。Axie 联合创始人 Jeffrey Zirlin 最近在 The Scoop 上?提到,该游戏此后宣布放弃“play to earn”模式,以促使用户从游戏中获得比其代币更多的收益。

根据 The Block Research 的说法,最近的举措可能会稀释 4300 万个 AXS 当前质押的数量,并降低当前 AXS 质押者的年百分比率 (APR)。截至发布时,有超过 4200 万个 AXS,价值 4.91 亿美元,以 43% 的年百分比率进行质押。[2022/10/12 10:31:26]

●?位操作指令:

?and

?or

?xor

?not

●?整数操作指令:

?add

?sub

?mull

?umulh

?smulh

?udiv

?umod

●?shift操作指令:

?shl

?shr

韩国游戏巨头WeMade澄清其发行的稳定币Wemix Dollar与Terra不同:5月24日消息,韩国游戏巨头WeMade首席执行官Jang Hyeon-guk在新闻发布会上表示:“发行Wemix自己的稳定币Wemix Dollar的原因是为了交易稳定,Wemix Dollar与Terra的Luna不同,WeMix Dollar是安全的,因为WeMade是一家上市公司,有义务遵守内部管理等严格的政府法规。Wemix Dollar 的详细信息将在Wemix 3.0展示期间公布。”(Pinpoint News)[2022/5/24 3:38:10]

●?比较操作指令

?cmpe

?cmpa

?cmpae

?cmpg

?cmpge

●?move操作指令

?mov

?cmov

●?jump操作指令

?jmp

?cjmp

?cnjmp

●?内存操作指令

?store.b

?load.b

?store.w

?load.w

●?输入操作指令:

?read

●?输出操作指令:

?answer

汇编语言

TinyRAM的程序是由TinyRAM汇编语言编写的,这个语言受Intelx86汇编语言语法启发。程序是包含多行TinyRAM汇编代码的文本文件。程序按照哈佛架构还是冯诺依曼架构的不同,第一行包含的字符串也不同:

??哈佛架构

“;TinyRAMV=2.000M=hvW=WK=K”

??冯诺依曼架构

“;TinyRAMV=2.000M=vnW=WK=K”

其中,W是十进制表示的字长,K是十进制表示的寄存器数量。程序文件中,其他每一行依次包含的内容需要满足:

1.可选的空格。

2.可选的label,用于定义为引用其后的第一条指令。

3.可选的指令,由指令助记符,以及后面的操作数。

4.可选的空格。

5.可选的以分号;开始的注释,到该行尾结束。

一个程序中,最多可以有2^W个指令。一个label只能定义一次,有点像高级语言中的变量。

示例代码(https://github.com/scipr-lab/libsnark/blob/master/tinyram_examples/answer0/answer0.s)

为了满足计算的需要,提高电路可满足性的效率,TinyRAM增加了前导语。如果一个TinyRAM的程序以前导语的方式启动,则说明该程序是个合适的程序。

上述的前导语:

??对于哈佛架构来说,I(i)=1*i,并且inc=1

??对于冯诺依曼架构来说,I(i)=2W/8*i,并且inc=W/8

前面的示例代码,也遵循这样的前导语写法。

两种架构的性能对比

TinyRAM的两种架构,其设计区别在前面的“架构”部分介绍了,此处对比两种架构的性能。

第一个图表展示两种架构产生的门数量。

l是指令数量,n是输入大小,T是执行步数。

可以看出,前者的门数量和指令数量呈线性增加。后者改善很大,指令越多,改善的越大。

第二个图表展示两种架构在不同字长的曲线下,生成Keygenerator/prover/verifier的时间及proof大小。

可以看出,在80bit时,冯诺依曼架构相较于哈佛架构有较大提升,在128bit时,也有少许提升。

由上述表格数据可以看出,冯诺依曼架构的效率更高,这也是为什么冯依诺曼架构TinyRAM是后来在哈佛架构TinyRAM的基础上提出的。

总结

我们讲了TinyRAM的架构,设计,汇编指令等,介绍了它的优势:可以用来便捷的进行非确定性计算。尤其在零知识证明系统中,有更多的发挥空间。最后介绍了两种TinyRAM架构的性能对比,在生成的门数量和时间以及proof大小上,冯诺依曼架构都更胜一筹。

引用

http://www.scipr-lab.org/doc/TinyRAM-spec-2.000.pdf

https://www.cs.tau.ac.il/~tromer/slides/csnark-usenix13rump.pdf

http://eprint.iacr.org/2014/59

关于我们

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

微信公众号:Sin7y

GitHub:Sin7y

Twitter:@Sin7y_Labs

Medium:Sin7y

Mirror:Sin7y

HackMD:Sin7y

HackerNoon:Sin7y

Email:contact@sin7y.org

来源:金色财经

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

水星链

非小号为什么BVB具体潜力?_BvB:POL

BVB在2022下半年的登场,让人所料未及,它给了人们向前展望的动力,让更多人沿着时代的主线继续向前延伸,也给同行进一步逻辑推理和想象力,试着通过BVB找出Web3的明线,暗线.

[0:15ms0-1:502ms