Sin7y团队解读:关于Sinsemilla哈希函数在OlaVM中的应用_RES:IST

很高兴,我们在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)。为了能更好的理解,我们需要先了解一些概念。

1.cryptographichashfunction(CHF)的安全属性有哪些?

根据论文?CryptographicHash-FunctionBasics里的定义可知,CHF对应的安全属性有以下3类:

??preimage-resistance?—基本上对于所有预先指定输出,要找到任何散列到该输出的输入,在计算上是不可行的,例如,当给定任意未知输入的y时,要找到使?h(x')=y?的所有原像(preimage)x'。

Beosin:另有约1亿美元加密资产已从Multichain转至新地址:7月11日消息,区块链安全审计公司Beosin监测显示,另有1.03亿美元加密资产已从Multichain转至0x1eed开头的新地址,其中包括约2400万美元USDC、2965万美元fUSDT、213万美元WBTC、1716万美元WETH、1010万美元ETH、300万美元DAI。其中资产来自多个链,涉及大量私钥,传输间隔时间长,表明攻击者可能已经控制了所有的资产,并且不急于转移它们,根据之前的分析,推测可能是内部操作。[2023/7/11 10:47:52]

??2nd-preimageresistance?—?要找到与任何指定输入具有相同输出的任何第二输入,在计算上是不可行的,例如,给定x,要找到一个第二原像x'=x,使?h(x')=?h(x)。

??collisionresistance?—要找到任意两个散列到相同输出的不同输入,在计算上是不可行的,例如,使h(x')=?h(x)。

需要注意的是:

a.2nd-preimageresistance可以归约为collisionresistance,即collisionresistance满足,则2nd-preimageresistance必定满足。

b.?preimage-resistance不可以归约为collisionresistance,即collisionresistance满足,则preimageresistance未必满足。

Beosin:CS (CS)token遭受到攻击,损失金额截至目前约71.4万美元:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,2023年5月24日,bsc上链的CS(CS)代币项目遭受攻击。原因是代币的_transfer函数中sellAmount没有及时更新。Beosin安全团队将简析分享如下:

1、攻击者利用闪电贷借入BSC-USD兑换成CS代币。

2、攻击者开始卖出3000 CS代币,这一步会设置sellAmount。

3、攻击者通过给自己转账,会触发sync(),在这个函数中使用了上一步的sellAmount并且这个函数会销毁pair的中CS代币数量。Sync后sellAmount会置为0。重复2,3步持续减少pair中的CS代币数量,拉升CS代币的价格,使得后续一步可以兑换出更多的BSC-USD。

借入80,000,000 BSC-USD,兑换出80,954,000 BSC-USD,偿还80,240,000 BSC-USD,获利约714,000 BSC-USD。[2023/5/24 15:22:35]

2.什么是randomoracle(RO)?

randomoracle(RO)用以下模型来描述:

?有一个黑盒子。盒子里住着一个侏儒,还有一本大书和一些骰子。

前FTX工程总监Nishad Singh对美国刑事指控认罪:金色财经报道,据路透社发文称,前FTX工程总监Nishad Singh对美国刑事指控认罪。此前消息,Alameda首席执行官Caroline Ellison和FTX首席技术官Gary Wang分别承认了七项和四项刑事指控。[2023/3/1 12:34:58]

?我们可以向盒子里输入一些数据。

?给定侏儒一些事先没有看到的输入,他用骰子在一些常规空间中均匀且随机地生成一个新的输出。侏儒还会在书中写下输入和新生成的输出。

?如果给定侏儒一个已经看到的输入,他就用书来恢复他上次返回的输出,并再次返回。

简单来概括下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?

Beosin:2022年全年Web3领域因各类攻击造成的总损失达到了36亿384万美元:金色财经报道,2022 年全年,Beosin EagleEye 安全风险监控、预警与阻断平台共监测到 Web3 领域主要攻击事件超 167 起,因各类攻击造成的总损失超 36 亿美元,较 2021 年攻击类损失增加了 47.4%。其中单次损失超过一亿美元的安全事件共 10 起,1000 万至一亿美元的安全事件共 21 起。[2022/12/29 22:14:40]

3.Hash在ECDSA和Schnorr签名算中的要求?

在论文OnthesecurityofECDSAwithadditivekeyderivationandpresignatures和OntheExactSecurityofSchnorr-TypeSignaturesintheRandomOracleModel中提到,ECDSA和Schnorr签名算法里的Hash函数都需要可以被认为是RO,才是安全的。根据前面的描述,则这个Hash需要满足CHF的所有安全属性preimage-resistance、2nd-preimageresistance、collisionresistance。

Beosin:Gnosis Omni Bridge跨链桥项目存在合约层面的重放漏洞:金色财经报道,Beosin 安全团队发现,在以太坊合并并分叉出 ETHW 后,Gnosis Omni Bridge跨链桥项目,由于合约代码中固定写死了chainID,而未真正验证当前所在链的chainID,导致合约在验证签名时能够在分叉链上验证通过。攻击者首先在 ETH 主网上通过omni Bridge 转移 WETH,随后将相同的交易内容在 ETHW 链上进行了重放,获取了等额的 ETHW。目前攻击者已经转移了 741 ETHW 到交易所。

Beosin 安全团队建议如果项目方合约里面预设了chainID,请先手动将chainId更新,即使项目方决定不支持ETHW,但是由于无法彻底隔绝通过跨链桥之间的资产流动,建议都在ETHW链上更新。[2022/9/19 7:04:46]

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哈希函数等。

参考

1.OlaVM:https://ethresear.ch/t/whitepaper-olavm-an-ethereum-compatible-zkvm/13144

2.DairaHopwood:https://twitter.com/feministPLT

3.Zcash协议:https://zips.z.cash/protocol/protocol.pdf

4.ECDSA:https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm

5.Schnorr:https://en.wikipedia.org/wiki/Schnorr_signature

6.SinsemillaHash:https://zips.z.cash/protocol/protocol.pdf

7.CryptographicHash-FunctionBasics:

https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=C7364E9082B2726A10E1C712B476C82A?doi=10.1.1.3.6200&rep=rep1&type=pdf

8.randomoracle(RO):https://en.wikipedia.org/wiki/Random_oracle

9.Whatisthe"RandomOracleModel"andwhyisitcontroversial:

https://crypto.stackexchange.com/questions/879/what-is-the-random-oracle-model-and-why-is-it-controversial

10.OnthesecurityofECDSAwithadditivekeyderivationandpresignatures:

https://www.shoup.net/papers/2021-1330.pdf

11.OntheExactSecurityofSchnorr-TypeSignaturesintheRandomOracleMode:

https://eprint.iacr.org/2012/029.pdf

12.ECDLP(EllipticCurveDiscreteLogarithmProblem):

https://link.springer.com/referenceworkentry/10.1007/978-1-4419-5906-5_246

13.回答:https://twitter.com/feministPLT/status/1551856467145269249

14.Poseidon:https://eprint.iacr.org/2019/458.pdf

15.ReinforcedConcrete:https://eprint.iacr.org/2021/1038.pdf

关于我们

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

微信公众号:Sin7y

GitHub:Sin7y

Twitter:@Sin7y_Labs

Medium:Sin7y

Mirror:Sin7y

HackMD:Sin7y

HackerNoon:Sin7y

Email:contact@sin7y.org

来源:金色财经

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

金智博客

XMRPoS 是谎言么_KAI:WEB

在8月31日发布?ForkIt#22:PoWvsPoS?之后,被大家戏称为“年更”的中文播客节目ForkIt赶在以太坊合并前夕.

[0:15ms0-5:545ms