很高兴,我们在2022年7月25日发布了OlaVM,一个EVM兼容的ZKVM方案。由于ZKEVM本身一直是个热门的赛道,所以OlaVM一经发布,就很荣幸的受到了行业内大佬们的一些关注。
在这里,我们首先非常感谢DairaHopwood大佬(也是Zcash协议的主要作者)针对OlaVM的设计提出的一些问题。其中,比较核心的一点是ECDSA和Schnorr签名算法里Hash的选择问题,具体的表述如下图所示:
DairaHopwood的意思可以简单理解为:SinsemillaHash的安全级别只有collision-resistant,因此不能当做一个randomoracle(RO);而在ECDSA和Schnorr签名算法中,为了足够的安全,需要要求这个Hash可以当做randomoracle(RO)。为了能更好的理解,我们需要先了解一些概念。
欧盟能源委员西姆森:欧盟正在准备关于能源、加密货币的提案:金色财经报道,欧盟能源委员西姆森表示,欧盟正在准备关于能源、加密货币的提案。[2022/7/20 2:26:20]
1.cryptographichashfunction(CHF)的安全属性有哪些?
根据论文CryptographicHash-FunctionBasics里的定义可知,CHF对应的安全属性有以下3类:
?preimage-resistance—基本上对于所有预先指定输出,要找到任何散列到该输出的输入,在计算上是不可行的,例如,当给定任意未知输入的y时,要找到使h(x')=y的所有原像(preimage)x'。
?2nd-preimageresistance—要找到与任何指定输入具有相同输出的任何第二输入,在计算上是不可行的,例如,给定x,要找到一个第二原像x'=x,使h(x')=h(x)。
动态 | 尼日利亚启动关于公路运输的区块链计划:尼日利亚公路运输工人联盟(NURTW)和私营部门的一些合作伙伴已经启动了一项旨在改善州际公路运输的基于区块链的计划。该项目的利益相关者表示,该计划将改善公路旅客的安全,记录保存和保险。[2019/9/16]
?collisionresistance—要找到任意两个散列到相同输出的不同输入,在计算上是不可行的,例如,使h(x')=h(x)。
需要注意的是:
a.2nd-preimageresistance可以归约为collisionresistance,即collisionresistance满足,则2nd-preimageresistance必定满足。
b.preimage-resistance不可以归约为collisionresistance,即collisionresistance满足,则preimageresistance未必满足。
动态 | 国信办发布关于《区块链信息服务管理规定》涉安全评估条款说明的公告:国家互联网信息办公室发布的《区块链信息服务管理规定》第九条明确“区块链信息服务提供者开发上线新产品、新应用、新功能的,应当按照有关规定报国家和省、自治区、直辖市互联网信息办公室进行安全评估”。为落实规定要求,指导相关企业开展安全评估工作,现就安全评估的有关要求明确如下:
1.国家市场监管总局所属的中国国家认证认可监督管理委员会,已经在信息安全管理和信息技术服务管理方面建立了完整的认证体系,具备一批已获认定认可的测评机构。2.国家互联网信息办公室未指定或授权任何单位和机构开展区块链安全技术检测和安全评估。[2019/8/9]
2.什么是randomoracle(RO)?
randomoracle(RO)用以下模型来描述:
?有一个黑盒子。盒子里住着一个侏儒,还有一本大书和一些骰子。
历史上的今天 | 七部委发布《关于防范代币发行融资风险的公告》:2017年9月4日,中国人民银行等七部委发布《关于防范代币发行融资风险的公告》。公告指出,近期,国内通过发行代币形式包括首次代币发行(ICO)进行融资的活动大量涌现,投机炒作盛行,涉嫌从事非法金融活动,严重扰乱了经济金融秩序。代币发行融资中使用的代币或“虚拟货币”不由货币当局发行,不具有法偿性与强制性等货币属性,不具有与货币等同的法律地位,不能也不应作为货币在市场上流通使用。
公告发布之日起,各类代币发行融资活动应当立即停止。已完成代币发行融资的组织和个人应当做出清退等安排,合理保护投资者权益,妥善处置风险。有关部门将依法严肃查处拒不停止的代币发行融资活动以及已完成的代币发行融资项目中的违法违规行为。[2018/9/4]
?我们可以向盒子里输入一些数据。
?给定侏儒一些事先没有看到的输入,他用骰子在一些常规空间中均匀且随机地生成一个新的输出。侏儒还会在书中写下输入和新生成的输出。
bi网发布关于交易手续费奖励周期变更公告:bi网发布关于交易手续费奖励周期变更公告,公告称:经过众多用户的建议及团队综合考量后决定,平台交易手续费奖励变更为每半月奖励一次,每月的1日和16日10:00发布公告并分发奖励(以发放时BIC持有量为准),2018年5月16日开始执行。[2018/5/8]
?如果给定侏儒一个已经看到的输入,他就用书来恢复他上次返回的输出,并再次返回。
简单来概括下RO的行为,假设输入为x:
?如果x之前输入过,则直接返回对应的H.
?如果x未曾输入过,则RO会在完全随机的在值域里生成一个由0,1组成的字符串。
需要注意的是:
?这里的完全随机意味着,连RO自己都不知道最终会是一个什么值,它是没有规则可循的,这是和Hash的主要区别,任何Hash都是有自己的计算规则的。
但是在现实的世界中,实现一个真正的RO是很困难的;因此,我们需要为RO寻找一个潜在候选者,需要尽可能的使得输出看起来是随机的。Hash函数是一个不错的选择,一个安全的Hash函数需要满足preimage-resistance、2nd-preimageresistance、collisionresistance。一个可以当做RO的Hash是肯定要满足这三个属性的,但是满足这三个属性的Hash不一定就可以当做RO;它们之间是一种必要不充分关系。更多的细节可以参考Whatisthe"RandomOracleModel"andwhyisitcontroversial?
3.Hash在ECDSA和Schnorr签名算中的要求?
在论文OnthesecurityofECDSAwithadditivekeyderivationandpresignatures和OntheExactSecurityofSchnorr-TypeSignaturesintheRandomOracleModel中提到,ECDSA和Schnorr签名算法里的Hash函数都需要可以被认为是RO,才是安全的。根据前面的描述,则这个Hash需要满足CHF的所有安全属性preimage-resistance、2nd-preimageresistance、collisionresistance。
4.关于Sinsemilla哈希函数?
Sinsemilla哈希函数是由DairaHopwood和SeanBowe一起设计,底层依赖ECDLP(EllipticCurveDiscreteLogarithmProblem)。在固定长度的输入下,Sinsemilla哈希函数满足collisionresistance,不满足preimageresistant属性,原因可以参考DairaHopwood的回答。
根据Zcash协议说明书,设计Sinsemilla哈希函数的初衷是为了在零知识证明算法Halo2的执行过程中,充分利用Lookup-friendly的优势,来提高Halo2的执行效率;因此,Sinsemilla哈希函数是一个Lookup-friendly的哈希函数,它更适合用于承诺的计算和Merkletreeroot的计算。
5.总结
再次感谢DairaHopwood的指导,让我们对cryptographichashfunction(CHF)的使用有了更深的认知。我们将继续广泛听取意见,在高效性和安全性方面对设计方案进行持续优化。
Sinsemilla哈希函数会仍然用于Olavm设计中的其他合适模块;签名部分的Hash函数,我们将会在安全的哈希函数中,择优选择,比如Poseidon哈希函数、ReinforcedConcrete哈希函数等。
关于我们
Sin7y成立于2021年,由顶尖的区块链开发者组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。
微信公众号:Sin7Y
GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。