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个字节的线性数组,使用小端约定排列字节。
声音 | 立陶宛银行:央行“父母控制”已过时 应更深入了解加密资产领域:在12月10日发布的有关中央银行数字货币(CBDC)的分析中,立陶宛银行表示,在加密资产方面,中央银行的“父母控制”已经过时,因此不应阻止中央银行进入该领域以了解它。银行应参与数字资产领域,以获取此快速发展资产类别的经验。(Cointelegraph)[2019/12/11]
5.2个磁带(tape),每个包含一串Wbit的字。每个磁带都是单向只读的。其中,一个磁带是用于公开输入x,另一个用于私有输入w。其实就是TinyRAM的输入载体。
TinyRAM机的输入是2个磁带以及内存,输出是answer指令,该指令有一个参数A,代表返回值,A=0表示接受。也可以使用该指令终止执行程序。
TinyRAM根据执行指令的位置不同有两种变体:一种变体遵循哈佛架构,另一种遵循冯诺依曼架构。前一种架构的数据和程序存放在不同的地址空间中,且程序是只读的;后一种架构数据和程序存放在同一个可读写的地址空间中。具体用图表的方式来表示这两者的区别:
动态 | 湖南娄底书记市长会见中国工程院院士陈纯,深入探讨区块链技术与应用:据娄底新闻网消息,湖南娄底市委书记、市人大常委会主任李荐国9月19日会见中国工程院院士、杭州趣链科技有限公司董事长陈纯。双方围绕区块链技术与应用等方面开展合作,进行了深入探讨。李荐国表示,娄底市委、市政府对于区块链发展是积极支持、稳步推进的,目前已取得了初步成效。我们希望双方能够寻求一种利益共享、风险共担、合作共赢的发展模式,在坚持政府引导、企业主导的基础上,加强对区块链技术应用的监管,让区块链更好地为经济社会发展服务,为提高政府效能、创新社会管理服务,尽快把技术优势转化为经济优势,让老百姓得到实惠。[2019/9/20]
以下两个架构的图示:
在开始更详细的TinyRAM设计细节之前,我们以官方白皮书的例子说明,TinyRAM是如何做到既简洁又全面,能够满足非确定性的计算问题的。
意义
Alice拥有x,Bob拥有w。Alice想知道算法A(x,w)的计算结果的正确性,但是不想自己计算。这样的场景,在零知识证明系统中非常常见,有证明者和验证者,验证者想知道证明者提供的证据的正确性,但不必自己重新计算一次。TinyRAM架构就满足这样的场景,两个磁带可以传入私有输入w和公开输入x,证明计算和验证程序在其中执行。SCIPR实验室实现的libsnark库中,已实现了TinyRAM。具体参见:https://github.com/scipr-lab/libsnark.
声音 | 律师刘晔:法院可以更一步深入了解并思考比特币SV的属性:上海市海上律师事务所合伙人刘晔在微博表示:当法院进一步思考时,当知道,比特币并非虚拟财产而是真实财产。当更一步深入了解并思考时,当知道,比特币SV乃遵循比特币白皮书的原始理念,乃真正比特币,其不仅仅是真实财产,且以提供真实账本空间服务的形式在实现真实商品属性的同时(当下法律),也逐渐走向成为全球货币之路(未来法律)。据媒体报道,今日,首例比特币财产侵权纠纷案在杭州互联网法院开庭宣判。本次庭审法院确认了比特币“虚拟财产”属性。[2019/7/18]
以CircuitGenerator为例,C程序经过编译器之后,编译成TinyRAM的程序,再经过CircuitGenerator之后,生成电路,最后得到zkSNARK电路。
指令
TinyRAM支持29个指令,每条指令都通过1个操作码和最多3个操作数指定。操作数可以是寄存器名称或者立即数。除非另有说明,否则每条指令都不会修改flag,且将pc增加i,对于哈佛架构来说,i=1,对于冯诺依曼架构来说,i=2W/8。通常,第一个操作数是指令执行计算的目标寄存器,其他操作指定指令的参数。最后,所有指令都需要机器的一个周期来执行。
动态 | 报告:随着区块链技术的深入应用 引发的网络安全问题将逐渐增多:据齐鲁网6月11日消息,今天下午,《2018年山东省互联网网络安全报告》在济南发布。报告提到,随着区块链技术的深入应用,引发的网络安全问题将逐渐增多,以数字加密货币为基础的黑产交易、网络勒索等行为出于不可控状态,挖矿恶意软件持续猖獗。[2019/6/11]
指令包含几种类型,指令名称和intelx86汇编指令类似,可顾名思义。
●位操作指令:
?and
?or
?xor
?not
●整数操作指令:
?add
?sub
?mull
?umulh
?smulh
?udiv
?umod
●shift操作指令:
?shl
?shr
●比较操作指令
?cmpe
?cmpa
?cmpae
?cmpg
?cmpge
●move操作指令
赵鹞:政府部门是否应该大胆的鼓励推广区块链需要深入思考:今日,中国政法大学金融创新与互联网金融法治研究中心副秘书长、中国社科院金融研究所支付清算研究中心特约研究员赵鹞发表文章称,区块链技术本身的价值中立性并不会带来基于区块链的经济社会活动的价值中立,当我们还没有准备好如何应对区块链大规模应用所产生的新的、深层次的社会、经济、金融风险时,政府部门是否应该大胆的鼓励、推广,这是需要深入思考的。就好比核能发电,我们没有完全掌握安全、可控的核聚变技术就能用于生产发电吗?显然是不可能的。所以,面对区块链、人工智能等各种破坏性创新技术的推广应用,特别是金融科技的发展,政府、学界、业界和媒体要头脑冷静,切莫用“不可控核聚变发电”。[2018/2/27]
?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|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon
克隆银行官网早已不是什么新鲜事,而如今不法之徒已将克隆网站的魔爪伸向了Web3.0领域。恶意代码注入克隆网站北京时间2022年8月10日凌晨4点20左右,CurveFinance(curve.f.
1900/1/1 0:00:002022年9月3日PlayDAO携手BlockJob和巨鲸研究院于北京梵悦108成功举办“梵”星之夜,“悦”享酒会,嘉宾包括多位Web3和Web2各个领域优秀的创业者、多家投资机构负责人等.
1900/1/1 0:00:00据区块链浏览器TRONSCAN数据,过去一周,波场稳定币日均转账额为7,744,444,554美元,突破77亿美元! 波场区块链提供了一个更低成本、高效率的平台.
1900/1/1 0:00:00“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战.
1900/1/1 0:00:00前言六月以来,安全事件仍层出不穷,即使币价下跌,攻击者却没有停下攻击的脚步。据知道创宇区块链安全实验室数据显示:该月发生的安全事件超46起,其中跑路局变得更加严重,而跨链桥HarmonyBri.
1900/1/1 0:00:00本周摘要-CPI指数来到8.6%后,市场暴跌,经济衰退要来了吗?-Celsius和stETH的影响下ETH继续下跌,它会成为下一个Terra和UST吗?一、上周行业动态本周市场在周五跳水.
1900/1/1 0:00:00