您当前的位置:首页 > 当代文学 > 公式之美

椭圆曲线方程:比特币的基石

23 椭圆曲线方程:比特币的基石

人会说谎,但数学不会骗人。

2009年1月3日,中本聪一直从下午忙到黄昏,在赫尔辛基的一个小型服务器上创建、编译、打包了第一份开源代码。尽管这份代码非常简陋,至今仍被很多程序员嘲笑,然而它还是正常运行了SHA256算法 1、RIPEMD-160算法 2、Base58编码 3。在2009年1月3日18点15分,比特币世界的第一个区块(block)被创建。

这一天被比特币信徒称为“创世日”,而这个区块也被称为“创世块”,中本聪则成了“创世主”。这一天标志着比特币的诞生!

比特币诞生的前夕

20世纪90年代,互联网的浪潮席卷全球,全世界都为之狂欢。唯有部分密码朋克沉默不语,这个天生与计算机为伍的极客团体,集结了大批计算机黑客、密码学者。

他们拥有敏锐的大脑,没有人比他们更熟悉代码世界。

作为互联网世界最早的原住民和创世者,除了了解互联网对人类未来社会的引领力外,同时也对互联网可能带给人类的负面影响警惕万分,特别是隐私领域被侵犯,这是最让人头痛的地方。在互联网世界,隐私保护问题不仅仅是社会治理结构的问题,如果没有强大的技术力量作为支撑,根本不可能成功保护隐私。

如果互联网世界中的企业日益做大,而后它们成长为虚拟世界的“中心节点”,最后一定会成长为权力中心,成为互联网自由世界的“噩梦”。而其中最让人担心的就是支付体系问题,这里面涉及个人财富的稳私,那如何来保护自己的互联网财富?

早在1990年,大卫·乔姆就提出注重隐私安全的密码学网络支付系统,其具有不可追踪的特性,这就是后来的E-cash,这是真正意义上的第一代电子货币。

1992年,以蒂莫西·梅为发起人,美国加州物理学家和数学家秘密汇聚。出于对FBI(Federal Bureau of Investigation,美国联邦调查局)和NSA(National Security Agency,美国国家安全局)的警惕,这帮技术自由主义派偷偷成立了一个密码朋克小组,主要目的是捍卫数字世界公民隐私,讨论的议题包括追求一个匿名的独立电子货币体系。

他们都有着这样的共识:如果期望拥有隐私,我们必须亲自捍卫之,使用密码学、匿名邮件转发系统、数字签名及电子货币来保障公民的隐私。

正如印刷技术改变了中世纪的行会及社会权力结构一般,他们相信密码技术方法也将从根本上改变机构及政府干预经济交易的方式。

由此,利用密码学开发一种可以不受任何政治力量或金融力量操控的电子货币摆上了密码朋克小组的议程。

1998年,戴伟提出了匿名的、分布式的电子加密货币系统——B-money。

2005年,尼克·萨博提出比特金的设想,用户通过竞争性地解决数学难题,再将解答的结果用加密算法串联在一起公开发布,构建出一个产权认证系统。

从乔姆的E-cash,到戴伟的B-money,再到萨博的比特金……几代密码朋克怀着对自由货币的向往,像堂吉诃德一般偏执而骄傲,试图成为互联网货币的铸币者,却最终都功亏一篑。

尽管这些理论探索一直并未真正进入应用领域,也长期不为公众所知,但这些研究成果极大地加速了比特币的面世进程。

数字货币的诞生历程,就像是一次接力赛。非对称加密 4、点对点技术 5、哈希现金(Hash Cash)6这些关键技术没有一项是中本聪发明的,而他站在前人的肩膀上,创造出了比特币。

支撑比特币的数学共识

乔姆、戴伟、萨博三人是冲在前锋的排头兵,非对称加密、点对点技术、哈希现金这三项关键技术则是在货币自由道路上披荆斩棘的利器。

前两项技术使分布式交易账簿 7得以建立,避免了数据被篡改,哈希现金算法则在2004年经过哈尔·芬尼改进为“可复用的工作量验证(Reusable Proofs of Work,RPOW)”后,成功被中本聪用来攻克加密货币的最后关键难点——拜占庭将军问题 8,即双重支付问题。

汇集加密圈先驱们的奋战经验,以及累积数代人的技术成果,中本聪借助数学力量建立起区块链世界:以ECC椭圆曲线为钱包基础,以去中心化为精神内核,以SHA256算法为最后的数学堡垒,力图对抗互联网世界中的商业巨头和国家垄断!

2008年11月1日,在美国金融危机引发全世界经济危机之时,论文《比特币:一种点对点的电子现金系统》被发布。

2009年1月3日,中本聪打包了第一份开源代码,比特币世界的第一个区块被创建。

此后,比特币市值一路水涨船高,虽然过程中也曾多次面临绝境,但一直受到更多人的支持与拥护,因为他们坚定地相信比特币背后的最大支柱——数学。

纵观比特币的方方面面,都与数学密不可分。

(1)哈希算法。

有比特币“安全之链”之称的哈希算法,是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。这种哈希函数有一个单向性,任何东西进去,出来都是一串随机数,这串随机字符串就是哈希值,也称散列值。

在比特币系统中,主要使用了两个哈希算法:SHA256和RIPEMD160。它们的应用会组合成两个函数:Hash256和Hash160。Hash256主要用于生成标志符,如区块ID、交易ID等;而Hash160主要用于生成比特币地址。

(2)工作量证明机制。

在比特币节点里,任何人都可以争取记账权,谁最先解决一道数学题,谁就能获得记账的权力。这种数学题有一个特点——解起来很难,验证很容易,这就是比特币的工作量证明机制。

“假设解题是在扔4个骰子,谁扔出小于5的点数就对了,扔出来比较困难,但是验证却很简单。”这就是比特币的哈希碰撞,也是区块链的工作本质。

(3)椭圆曲线加密算法。

非对称加密公钥与私钥的组合建立在一个更高层的数论之上,称为椭圆曲线。

这个数学方程虽然看起来很简单,但它却是证明世界三大难题之一费马大定理的关键。1955年,日本数学家谷山丰洞察天机,提出了谷山-志村猜想,建立了椭圆曲线和模形式之间的重要联系,为后来英国数学家怀尔斯寒窗10年苦证费马大定理指了一条明路,也为中本聪发明比特币协议开启了一扇智慧大门。

比特币通过椭圆曲线选取密钥对,由私钥计算出公钥,公钥加密,私钥解密,利用椭圆曲线对数据进行签名验证。这个过程,使交易、签名和认证变为了可能,保证了比特币的安全。

椭圆曲线方程比特币的基石

相比于其他数学应用,椭圆曲线方程在比特币中扮演着关键角色。可以说,没有椭圆曲线方程,就没有比特币的安全性,没有安全性,比特币就不可能建立货币信用。

能建立起这么一套强大的加密系统其实并不容易,这背后充满了博弈与阴谋。

NSA(National Security Agency,美国国家安全局)是加密世界里最大的“魔鬼”,在20世纪90年代末以前,非对称加密技术被视为军用,均在NSA的严密监视下。虽然在这之后,NSA表面放弃了对加密技术的控制,使这些技术得以走进公众领域,并使其广泛应用于网络通信。但实际上NSA仍在干涉加密领域,通过对加密算法置入后门,然后将被置入后门的算法推广为标准算法,轻而易举地获取使用者的信息。

有趣的是,中本聪并不信任NSA公布的加密技术。2013年9月,爱德华·斯诺登 9曝料NSA采用秘密方法控制加密国际标准,加密货币采用的椭圆曲线函数可能留有后门,NSA能以不为人知的方法弱化这条曲线。所幸,中本聪使用的不是NSA的标准,而是选择了Secp256k1椭圆曲线,如图23-1所示,它是一条随机曲线,而不是伪随机曲线。

图23-1 Secp256k1椭圆曲线

由此,依靠Secp256k1椭圆曲线,全世界只有极少数程序躲过了这一漏洞,比特币便是其中之一。

不过,想要弄清Secp256k1椭圆曲线,我们首先要了解椭圆曲线是什么。

Math World线上数学百科全书给出了一个完整的定义,椭圆曲线是一个具有x和y两个变元的魏尔斯特拉斯方程 10:

数学上一般简单表示为:

判别式为∆=−4 a 3 c+a 2 b 2−4b 3−27 c 2+18 abc≠0 ,其具有两个重要特性。

(1)任意一条非垂直的直线与椭圆曲线相交于两点,若这两点均不是切点,那该直线必与该曲线相交于第三点。

(2)过椭圆曲线上任意一点的非垂直切线必与该曲线相交于另一点。

常用于密码系统中的椭圆曲线则是基于有限域 11GF(p)上的椭圆曲线,方程表示为:

Secp256k1椭圆曲线指的是比特币中使用的ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)曲线的参数,它总共包含以下六个参数:a、b、p、G、n、h,下面分别进行介绍。

参数a、b,是椭圆曲线方程y2 =x3+ax+b中的a和b。这两个参数决定了Secp256k1所使用的椭圆曲线方程。在Secp256k1椭圆曲线中,它们的值分别是a = 0和b = 7。

所以方程是y2 x= 3+7 ,在实数域上画出来如图23-2所示。

图23-2 实数域上的椭圆曲线

参数p,由于密码学上使用的椭圆曲线都是在有限域上定义的,因此对于Secp256k1椭圆曲线来说,它使用的有限域是GF(p),即它的曲线方程实际上是y2 =x3+7(mod p) 。

参数G,是椭圆曲线上的一个点,称为基点。

参数n,是使nG=0的最小正整数。

参数h,一般取h=1。h是椭圆曲线群的阶 12与由G生成的子群的阶的比值,是设计Secp256k1椭圆曲线时使用的参数。

作为基于GF(p)有限域上的椭圆曲线,Secp256k1椭圆曲线由于其构造的特殊性,优化后可比其他曲线的性能提高30%,明显表现出以下两个优点,即占用很少的带宽和存储资源,密钥的长度很短,以及让所有的用户都可以使用同样的操作完成域运算。

当然,更重要的还是它保障了密钥对生成和签名验证的安全,为比特币树立起了一面强有力的天然屏障。

私钥是唯一的证明

比特币客户端中的核心是私钥,拥有私钥就拥有私钥对应比特币的使用权限,所以,加密钱包的核心对象显而易见,就是私钥。

在解读整个比特币的加密体系前,先来看一些名词的含义。

(1)密码:从外部输入的,用来加密和解密钱包的字符串。

(2)主密钥:一个32字节的随机数,直接用于钱包中私钥的加密,加密完后立即删除。

(3)主密钥密文:根据外部输入密码对主密钥进行AES-256-CBC 13加密的结果,该加密过程为对称加密。

(4)主密钥密文生成参数:主要保存了由主密钥得到主密钥密文过程中参与运算的一些参数。由该参数配合密码可以反推得到主密钥。

(5)私钥:椭圆曲线算法私有密钥,即钱包中的核心。拥有私钥就拥有私钥对应的比特币使用权,而私钥对应的公钥只是关联比特币,没有比特币的使用权限。

(6)私钥密文:主密钥对私钥进行AES-256-CBC加密的结果,过程为对称加密。整个加密解剖图如图23-3所示。

图23-3 加密解剖图

根据加密解剖图,我们把加密过程解剖如下。

程序生成32字节随机数作为主密钥,然后根据外部输入的密码结合生成的主密钥密文生成参数一起对主密钥进行AES-256-CBC加密,加密结果为主密钥密文。将主密钥对钱包内的私钥进行AES-256-CBC加密,得到私钥密文,待加密完成后,删除私钥,保留私钥密文。同时,删除主密钥,保留主密钥密文和主密钥密文生成参数。这样,钱包的加密就完成了。

以下是对加密过程的输入/输出的总结。

(1)输入:密码。

(2)中间生成:主密钥、主密钥密文生成参数、主密钥密文、私钥密文。

(3)最终保留:主密钥密文生成参数、主密钥密文、私钥密文。

(4)内部输入:私钥。

比特币使用椭圆曲线算法生成的公钥和私钥,选择的是Secp256k1曲线。SHA-256十分强大,它不像从MD5到SHA-1那样增强步骤,而是可以持续数十年,除非存在大量突破性攻击。也正是因为这样一套非常完备的加密体系,比特币在初期就得到了很多极客、技术派、自由主义者和无政府主义者的信赖。他们相信数学,而不是相信中本聪。

当然,比特币钱包的加密体系虽然非常安全,但整个比特币生态并非无懈可击。在算力争夺战争中,比特币的中心化早已远远超出了法币的中心化。一次次利益纷争的背后,实际是一场场权力与利益的博弈。

在这一过程中,总有人试图成为权威,同时也让数学构建货币信任机制的发展充满了层层阻碍。

结语比特币本质是一种数学

从诞生初衷上看,比特币以解决双花问题 14及拜占庭将军问题为目标,试图以建立点对点的电子现金系统让一切回到货币发展的本质。从实现基础上看,比特币就是建立在已有的数学理论之上;从安全保障上看,无论密钥对生成,还是私钥签名和签名验证,都离不开椭圆曲线函数的加固保障。将这三者浓缩为一点,数学就是比特币的基石。

虽然自由主义者认为比特币承载了“此物一出天下反”的理想,但实际上比特币仍然只是数学在互联网世界的一种延伸。无论赋予它多少荣耀与光环,它仍然只是一段开源程序、一种密码算法、一个P2P的电子支付系统、一台世界性的计算机、一个人类新的底层操作系统。与TCP/IP15、支付宝、P2P一样,其最大的意义就是为人类服务,否则最终只会沦为科技先验者的实证游戏。

2010年12月12日,中本聪在比特币论坛上发布最后一个帖子,随后活动频率逐渐降低。

2011年4月,中本聪发布最后一项公开声明,宣称自己“已经开始专注于其他事情”。

此后,中本聪消失,再未现身。

传奇也好,传说也罢,起源于数学世界的比特币,已经开启了它的创世之旅。

1 SHA256算法:SHA-2下细分的一种算法。SHA-2的名称来自安全散列 算 法2(Secure Hash Algorithm 2)的缩写,是一种密码散列函数算法标准,由美国国家安全局研发,属于SHA算法之一。

2 RIPEMD-160算法:对输入字符 实 现RIPEMD家族四种消息摘要算法。RIPEMD为 RACE Integrity Primitives Evalua-tion Message Digest”的缩写,是基于MD4算法原理并弥补了MD4算法缺陷而开发出来的,RIPEMD-160是 对RIPEMD-128的改进,也是最常见的RIPEMD系的算法。

3 Base58编 码:一种二进制转可视字符串的算法,主要用来转换大整数值。比特币就使用了根据Base58编码改进的Base58算法。

4 非对称加密:区别于对称加密只使用同一密钥进行加密和解密,非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公钥(public key)和私钥(private key)。由此,加密和解密的过程被分开,只有参与加密和解密的人才能够通过公私钥进行加密和解密,这保证了数据传输的安全。

5 点对点技术:又称对等互联网络技术,是一种网络新技术,其依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时还对网络上的其他节点充当客户端和服务器,是一个完全去中心化的架构。

6 哈希现金:比特币采用的工作量证明机制,本质上是利用了单向信息摘要算法,如SHA,由此计算出一个带随机数的字符串的哈希值,并且指定哈希值符合一定规律。

7 分布式交易账簿:一种在网络成员之间共享、复制和同步的数据库,没有中心管理员或集中数据存储。分布式交易账簿记录网络参与者之间的交易,如资产或数据的交换。这种共享账本降低了因调解不同账本所产生的时间和开支成本。

8 拜占庭将军问题:由莱斯利·兰伯特提出的点对点通信中的基本问题。其含义是,在存在消息丢失的不可靠信道上,试图通过消息传递的方式达到一致性是不可能的。因此,对一致性的研究一般假设信道是可靠的,或不存在本问题。

9 爱德华·斯诺登:前CIA(Central Intelligence Agency,美国中央情报局)技术分析员,后供职于国防项目承包商博思艾伦咨询公司。2013年6月,斯诺登将美国国家安全局关于PRISM监听项目的秘密文档披露给了《卫报》和《华盛顿邮报》,随即遭美国政府通缉,事发时人在香港,随后飞往俄罗斯。

10 魏尔斯特拉斯方程:由魏尔斯特拉斯函数而来,在数学中,魏尔斯特拉斯函数是一类处处连续而处处不可导的实值函数。历史上,魏尔斯特拉斯函数是一个著名的数学反例,说明了所谓的“病态”函数的存在性,改变了当时数学家对连续函数的看法,具有重要意义。

11 有限域:也称伽罗瓦域(Galois field),是仅含有限个元素的域。它是伽罗瓦(Galois)于18世纪30年代研究代数方程根式求解问题时引出的,有限域的特征数必为某一素数p。

12 阶:群论术语。在群论中,阶有两个可能的含义:一个群G的阶是指它的势,即其元素个数;类似于数论里的定义,设a是 群G里的元素,e是单位元,我们把使an=e成立的最小正整数n称为a的阶,并记作ord(a)或|a|。如果这样的n不存在,则把a的阶当作无限大,即|a|=∞。

13 AES-256-CBC:AES全称Advanced Encryption Stand-ard,即高级加密标准,在密码学中又称Rijndael加密法。AES的基本要求:采用对称分组密码体制,区块长度固定为128bit,密钥长度则可以是 128、192 或256bit。CBC 全称 Cipher Block Chaining,即密码分组链接,适合传输长度长的报文。

14 双花问题:“双花”即双重支付,指的是在数字货币系统中,由于数据的可复制性,系统可能存在同一笔数字资产因不当操作被重复使用的情况。

15 TCP/IP :互联网 协 议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。这些协议最早发源于美国国防部(United States Department of Defense,DoD)的ARPA网项目,因 此 也 被 称 为DoD 模 型(DoD Model)。这个协议族由互联网工程任务组负责维护。

上一章 封面 书架 下一章