HTT:慢雾:Ed25519 实现原理与可延展性问题_区块链

Ed25519 是一个基于椭圆曲线的数字签名算法,它高效,安全且应用广泛。TLS 1.3, SSH, Tor, ZCash, WhatsApp 和 Signal 中都使用了它。本文主要讲解以下几点:

1. 介绍一点群论知识,目的是让大家对 Ed25519 和其可延展性问题的原理有一种直觉。若想深入理解,还需参考其他资料;

2. 针对 rust 库 ed25519-dalek 的 1.0.1 版本讲解 ed25519 的实现;

3. 针对该库的延展性问题做出解释。

数学要点回顾

群的定义与性质

群论是抽象代数研究的内容,但抽象代数的一些思想是程序员非常熟悉的。面向对象中的继承就是一个很好的例子,我们都知道子类继承了父类后,就能使用父类中定义的方法。可以将抽象代数理解为对一个抽象的数据结构定义了一些性质,由这些性质推导出来的定理对于所有的子类都成立。

金色晨讯 | 12月16日隔夜重要动态一览:21:00-7:00关键词:比特币总市值、USDT增发、灰度、CBOE

1.比特币总市值突破3600亿美元;

2.灰度资产管理总规模升至131亿美元;

3.Tether在以太坊网络增发2亿枚USDT;

4.比特币衍生品未平仓合约创历史新高;

5.日本金融巨头SBI子公司收购加密货币做市商B2C2;

6.美股三大指数集体收涨 区块链概念股普遍收涨;

7.灰度BTC信托增持606枚ETH信托持仓量减少201枚;

8.CBOE将在2021年初推出加密货币市场相关指数;

9.外媒:Ruffer多策略基金在11月将投资组合的2.5%分配至比特币。[2020/12/16 15:20:27]

沿用刚刚的比喻,来看看群(group)这个数据结构是如何定义的。

金色午报 | 5月27日午间重要动态一览:7:00-12:00关键词:海南、示范区、比特大陆、波卡、TROY

1.海南新政策:支持龙头企业探索数字资产交易平台建设。

2.广州获批创建首个区块链发展先行示范区。

3.宁波印发“三年行动计划” 打造区块链发展高地。

4.韩国计划修改现行所得税法对加密货币、采矿业及ICO征税。

5.网传詹克团签署文件 解除高管刘路遥比特大陆职务。

6.以太坊2.0多客户端测试网Witti上线。

7.波卡创始人撰文:目前还不是最终主网 或推出更多候选链。

8.MoneyGram与Uber合作 为Uber司机提供数字货币转账服务

9.ErisX推出加密现货及期货OTC大宗交易平台。

10.TROY回应质疑:项目是独立运营与投资者关系有待优化。[2020/5/27]

独家 | 金色财经2月26日挖矿收益数据播报:金色财经报道,据印比特数据显示,按照BTC参考价格64800元、电价0.38元/kWh计算,当前在售主流BTC矿机的市场价格及回本周期为:神马M20S-68T(全新现货12200元,285天回本)、芯动T3+-57T(全新现货9500元,330天回本)、阿瓦隆1066-50T(全新现货6100元,252天回本)、蚂蚁S17+-67T(3月份期货12800元,272天回本)。[2020/2/26]

由此可以推出许多有意思的定理:

举几个例子: 

金色晨讯 | 讲话中指出释放数字经济增长潜能 泰国民主党通过区块链进行初选:1、:释放数字经济增长潜能 增强数字经济可及性;

2、赵长鹏:富达入场表明加密市值将会增长更多;

3、斯里兰卡中央银行行长:区块链可能改变银行的商业模式;

4、伊斯兰金融专家确认加密货币是“清真货币”;

5、吴忌寒: DApp长远的发展还是要等待恰当的风口;

6、泰国民主党通过区块链进行初选;

7、世界经济论坛研究确定应对环境问题的区块链技术用例超过56个;

8、加拿大众议院财政委员会:总结三种防范条例;

9、美国证券交易委员会对加密货币公司和前局长展开调查。[2018/11/19]

拉格朗日定理

现在介绍一个非常有意思的定理,这个定理的推导在文末引用的视频中。

“群的阶能被子群的阶整除。”

为什么说这个定理有意思呢,不仅仅因为它的证明过程串起了刚刚介绍的许多知识,还因为下面的结论:

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

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

大币网

[0:0ms0-7:347ms