Ed25519 是一个基于椭圆曲线的数字签名算法,它高效,安全且应用广泛。TLS 1.3, SSH, Tor, ZCash, WhatsApp 和 Signal 中都使用了它。本文主要讲解以下几点:
1. 介绍一点群论知识,目的是让大家对 Ed25519 和其可延展性问题的原理有一种直觉。若想深入理解,还需参考其他资料;
2. 针对 rust 库 ed25519-dalek 的 1.0.1 版本讲解 ed25519 的实现;
3. 针对该库的延展性问题做出解释。
数学要点回顾
群的定义与性质
群论是抽象代数研究的内容,但抽象代数的一些思想是程序员非常熟悉的。面向对象中的继承就是一个很好的例子,我们都知道子类继承了父类后,就能使用父类中定义的方法。可以将抽象代数理解为对一个抽象的数据结构定义了一些性质,由这些性质推导出来的定理对于所有的子类都成立。
慢雾:DOD合约中的BUSD代币被非预期取出,主要是DOD低价情况下与合约锁定的BUSD将产生套利空间:据慢雾区情报,2022 年 3 月 10 日, BSC 链上的 DOD 项目中锁定的 BUSD 代币被非预期的取出。慢雾安全团队进行分析原因如下:
1. DOD 项目使用了一种特定的锁仓机制,当 DOD 合约中 BUSD 数量大于 99,999,000 或 DOD 销毁数量超过 99,999,000,000,000 或 DOD 总供应量低于 1,000,000,000 时将触发 DOD 合约解锁,若不满足以上条件,DOD 合约也将在五年后自动解锁。DOD 合约解锁后的情况下,用户向 DOD 合约中转入指定数量的 DOD 代币后将获取该数量 1/10 的 BUSD 代币,即转入的 DOD 代币数量越多获得的 BUSD 也越多。
2. 但由于 DOD 代币价格较低,恶意用户使用了 2.8 个 BNB 即兑换出 99,990,000 个 DOD。
3. 随后从各个池子中闪电贷借出大量的 BUSD 转入 DOD 合约中,以满足合约中 BUSD 数量大于 99,999,000 的解锁条件。
4. 之后只需要调用 DOD 合约中的 swap 函数,将持有的 DOD 代币转入 DOD 合约中,既可取出 1/10 转入数量的 BUSD 代币。
5. 因此 DOD 合约中的 BUSD 代币被非预期的取出。
本次 DOD 合约中的 BUSD 代币被非预期取出的主要原因在于项目方并未考虑到 DOD 低价情况下与合约中锁定的 BUSD 将产生套利空间。慢雾安全团队建议在进行经济模型设计时应充分考虑各方面因素带来的影响。[2022/3/10 13:48:45]
沿用刚刚的比喻,来看看群(group)这个数据结构是如何定义的。
慢雾:2021年上半年共发生78起区块链安全事件,总损失金额超17亿美元:据慢雾区块链被黑事件档案库统计,2021年上半年,整个区块链生态共发生78起较为著名的安全事件,涉及DeFi安全50起、钱包安全2起,公链安全3起,交易所安全6起,其他安全相关17起,其中以太坊上27起,币安智能链(BSC)上22起,Polygon上2起,火币生态链(HECO)、波卡生态、EOS上各1起,总损失金额超17亿美元(按事件发生时币价计算)。
经慢雾AML对涉事资金追踪分析发现,约60%的资金被攻击者转入混币平台,约30%的资金被转入交易所。慢雾安全团队在此建议,用户应增强安全意识,提高警惕,选择经过安全审计的可靠项目参与;项目方应不断提升自身的安全系数,通过专业安全审计机构的审计后才上线,避免损失;各交易所应加大反监管力度,进一步打击利用加密资产交易的等违规行为。[2021/7/1 0:20:42]
慢雾:BTFinance被黑,策略池需防范相关风险:据慢雾区情报,智能DeFi收益聚合器BT.Finance遭受闪电贷攻击。受影响的策略包括ETH、USDC和USDT。经慢雾安全团队分析,本次攻击手法与yearnfinance的DAI策略池被黑的手法基本一致。具体分析可参考慢雾关于yearnfinace被黑的技术分析。慢雾安全团队提醒,近期对接CurveFinance做相关策略的机池频繁遭受攻击。相关已对接CurveFinance收益聚合器产品应注意排查使用的策略是否存在类似问题,必要时可以联系慢雾安全团队协助处理。[2021/2/9 19:19:41]
由此可以推出许多有意思的定理:
举几个例子:
动态 | 慢雾:2020年加密货币勒索蠕虫已勒索到 8 笔比特币:慢雾科技反(AML)系统监测:世界最早的知名加密货币勒索蠕虫 WannaCry 还在网络空间中苟延残喘,通过对其三个传播版本的行为分析,其中两个最后一次勒索收到的比特币分别是 2019-04-22 0.0584 枚,2019-09-01 0.03011781 枚,且 2019 年仅发生一次,另外一个 2020 还在活跃,2020 开始已经勒索收到 8 笔比特币支付,但额度都很低 0.0001-0.0002 枚之间。这三个传播版本第一次发生的比特币收益都是在 2017-05-12,总收益比特币 54.43334953 枚。虽然收益很少,但 WannaCry 可以被认为是加密货币历史上勒索作恶的鼻主蠕虫,其传播核心是 2017-04-13 NSA 方程式组织被 ShdowBrokers(影子经纪人) 泄露第三批网络军火里的“永恒之蓝”(EternalBlue)漏洞,其成功的全球影响力且匿名性为之后的一系列勒索蠕虫(如 GandCrab)带来了巨大促进。[2020/2/23]
拉格朗日定理
现在介绍一个非常有意思的定理,这个定理的推导在文末引用的视频中。
“群的阶能被子群的阶整除。”
为什么说这个定理有意思呢,不仅仅因为它的证明过程串起了刚刚介绍的许多知识,还因为下面的结论:
Ed25519 的实现
现在我们来讲 Ed25519,它是 EdDSA 算法的其中一种。EdDSA 有 11 个参数(https://datatracker.ietf.org/doc/html/rfc8032#autoid-3),这些参数的具体选择对于算法的安全和性能有很大的影响。Ed25519 的具体选择请参看链接(https://datatracker.ietf.org/doc/html/rfc8032#autoid-9)。
另外,值得一提的是这套算法用到了一个叫 Curve25519(https://datatracker.ietf.org/doc/html/rfc7748#autoid-5)的椭圆曲线。对于椭圆曲线,我们只需知道,它上边有很多很多点,这些点相加能得到新的点,新的点还是在曲线上。这些点和这个加法能形成一个群。注意这里的椭圆曲线加法(https://www.wikiwand.com/en/Elliptic_curve_point_multiplication)是有特殊定义的。
我们约定如下记法:
这是个交互式的算法,但是没关系,有一个技巧叫做 the Fiat – Shamir heuristic(https://link.springer.com/chapter/10.1007%2F3-540-47721-7_12),它可以把任意的交互式算法转化成非交互式的算法。最终我们会用非交互式算法。
数字签名算法都会给我们如下 API:
代码地址(https://github.com/dalek-cryptography/ed25519-dalek/blob/97c22f2d07b3c260726b90c55cd45f34ec34a037/src/public.rs#L322-L355)
密码学算法的实现和使用都有非常多要注意的地方。当我们说一个数字签名算法是安全的,一般指的是即使在攻击者能够获得任意消息的签名(Chosen Message Attack)的情况下,攻击者仍然不能伪造签名。Ed25519 满足这个性质,但不代表 Ed25519 是绝对安全的。在原始的论文中也提到,可延展性问题是可以接受的,且原始的算法就有这个问题。
慢雾科技
个人专栏
阅读更多
区块律动BlockBeats
Foresight News
曼昆区块链法律
GWEI Research
吴说区块链
西柚yoga
ETH中文
金色早8点
金色财经 子木
ABCDE
0xAyA
共识机制(Consensus Mechanism)是区块链事务达成分布式共识的算法。区块链节点共识过程中,所有节点都需要对整个区块进行签名,并将区块数据、节点公钥、签名数据等数据存储在区块中.
1900/1/1 0:00:00近期随着多个LSDfi协议的爆发,比如Lybra Flnance TVL及其代币LBR一个月40倍的上涨表现,很多人都在说LSDfi Summer来了.
1900/1/1 0:00:00零知识证明技术应用越来越广,隐私证明,计算证明,共识证明等等。在寻找更多更好的应用场景的同时,很多人逐步发现零知识证明证明性能是个瓶颈.
1900/1/1 0:00:00StarkNet凭借其独特的技术特性,如zk-STARK技术和自定义开发环境,处于技术领先地位。这使得StarkNet在处理高吞吐量、低成本和隐私保护等方面具有优势.
1900/1/1 0:00:00作者:Helene Braun,CoinDesk;编译:松雪,金色财经如果其他国家允许加密行业发展并最终取代传统银行业.
1900/1/1 0:00:00作者:Bankless 编译:Mary Liu, 比推BitpushNews过去几个月,人工智能(AI)热席卷了科技行业,甚至以加密货币为中心的风险投资家也嗅到了机会.
1900/1/1 0:00:00