5月21日,以太坊ethresearch论坛上一位名为“Rbchi1”的开发者发起了一个提问:我们什么时候需要在区块链空间使用密码学?
随后以太坊创始人Vitalik对这个问题进行了回复。其对话正好总结了在以太坊中应用密码学的范围,对话整理如下:
我想确认一下我们什么时候需要在区块链字段中使用密码学。我在这里列出了我所知道的:
共识的算法
签署交易(包括数字签名的不同种类)
第2层对第1层的验证
验证交叉链tx
具有不同数字签名的汇总
跨分片
有什么我漏掉的吗?
共识层:
梅克尔树的哈希
交易签名
PoS中的块签名
可能,作为梅克尔树替代的多项式承诺(polynomial commitments)
zk - snark /STARKs以实现更高效的客户端验证
用于保护隐私的light客户端的私有信息检索(Private information retrieval)
应用层:
用于压缩的ZK-SNARKs(例如,ZK rollup)
用于隐私的ZK-SNARKs(例如,Tornado Cash)
用于保护隐私的其他形式的密码学(机密交易、防弹、ring签名……)
隐身地址的同态组和确定性钱包
用于隐私的多方计算(在某些情况下,ZK-SNARKs是不够的)
未来的模糊化:模糊化如何帮助以太坊
在共识层中,密码学最重要的似乎是硬编码。Ewasm能帮上忙吗?
应用层是否可以在编程上获得更大的灵活性?例如,zk rollup很难与Eth上的通用智能合同交互,所以他们需要发明新的lang,比如Zinc。
是的,这是个问题。EVM对于生活在zk - snark(或STARKs、MPC或FHE)这样的加密系统中不是很友好。Ewasm稍微好一点,但是最好的是专门为zk友好性设计的VM。
Ewasm可以用于更有效地编写加密,尽管在许多情况下并不需要它;相反,EVM所需要的是获得对大整数操作的更好支持,因为这是大量加密操作成本的主要来源。
明白了,谢谢。什么是大整数操作?我会对此进行更多的研究。
针对Zk的虚拟机是一个解决方案,但是虚拟机有可能以特定的代码格式读取不同类型的密码?
明确支持某些加密操作的vm是完全可能的。
基本的算术运算(加、乘、除、除)都是非常大的数字,通常是80-2000位。