比特币和非对称密码简析

1. 非对称密码

非对称密码是相对于对称密码而言的,所以在讲非对称密码之前,我们有必要了解一下对称密码。

对称密码是一种比较成熟的密码算法。对称密码的使用最早可以追溯到古罗马时期,据罗马帝国早期著名历史作家苏维托尼乌斯记载,为了避免信息泄露,凯撒大帝对其重要的军事信息均采取字母顺序替代的加密方式,即,所有的字母A替换成字母D,字母B替换成E,以此类推,字母X替换成A,字母Y替换成B。两千多年来,对称密码演化出众多的版本,其中不乏有我们耳熟能详的,比如,二战时德国军队使用的英格玛加密机器,上世纪70年代在各个领域使用二三十年之久的Data Encryption Standard (DES),还有21世纪初符合新一代安全标准的Advanced Encryption Standard (AES),等等。但是,这些对称密码有一个通病,就是密钥传输的不安全性问题。换句话说,对称密码的明文加密和密文解密都采用同一个密钥。举个例子,Alice和Bob加密通信。Alice用密钥Y给Bob加密数据,加密处理完毕之后,Alice不仅需要将密文发送给Bob,还另需附带密钥Y。一旦密钥Y在传递过程中被中间人截获,用该密钥加密的密文将被一一破解,这就是传统的密钥传输的不安全性问题

非对称密码是为了解决对称密码的密钥传输的不安全性问题而提出的一个新的加密体系。1976年由密码学家Whitfield Diffie和Martin Hellman博士联名发表的论文”New directions in cryptography” [1]通常被认为是非对称密码的开端。该论文首次提出了基于”离散对数问题“ [2] 进行密钥对 (一个密钥对由一个公共密钥和一个私有密钥都成)构造的方法。这种密钥对的构造方法实现了用公开密钥加密后的密文只能由相应的私有密钥进行解密,同样地,用私有密钥加密后的密文只能由相应的共有密钥进行解密。更重要的是,基于”离散对数问题”[2] 的计算求解复杂度当然计算求解复杂度大的数学难题不止离散对数,这是后话密码学家可以构造相应的非对称加密算法,使得通过公钥计算出私钥的时间代价(比如1000年)和计算力代价为人们所不能接受,这是非对称密码的安全基础。在用户只需要严格保密自己的私钥的前提下,非对称密码的密钥对方法解决了对称密码的密钥传输的不安全性问题。

数字签名是非对称密码的一个非常重要应用。故名思义,数字签名是纸质签名的数字化实现。数字签名和纸质签名的出发点是相同的:其一,确定是签名者的亲手签名;其二,不能涂改,也就是原始信息没有被恶意修改。具体来讲,一种实现方法是在原始信息的基础上捎带上数字签名。举个例子,Alice给Bob发送信息,为了保证信息的完整性不可抵赖性,Alice通常会被要求用自己的私钥加密该信息的哈希值,生成数字签名。然后将信息和数字签名一同发送给Bob。Bob在接收到信息和数字签名之后, 用Alice的公钥解密该数字签名,并和信息的哈希值作对比。如果两者一致,则说明Bob收到的却是是Alice的数字签名,而且,基于非对称密码学的安全假设,且在私钥没有丢失的前提下,Alice是没有抵赖依据的。这个例子告诉我们两个要点:其一,单向哈希算法确保原始数据是完整的,没有被恶意修改的 [3]。其二,数字签名确保数据的不可抵赖性 [4],即,签名者没有合理依据抵赖基于非对称密码签名的数据。

2. 比特币

比特币的安全性极大地依赖椭圆曲线算法[5],一种基于离散对数问题的非对称密码算法。假如椭圆曲线算法被破解,那么比特币用户的私钥的安全性也就岌岌可危了。不过仅仅只是假设而已,毕竟魔高一丈道高一次,数十年来关于密码学本身的研究也从未停止,总体上,相信安全性还是有保证的。

加密货币是比特币和其他代币的另一个名称。接下来我们以比特币为原型,聊聊加密货币的密码学原理。首先聊聊通过挖矿的区块奖励所产生的比特币的交易(coinbase transaction),要知道,比特币的总量为2100万个,这2100万个比特币全部来源于挖矿的区块奖励。比特币挖矿的区块奖励机制为:以50BTC奖励为起点,每隔210000个区块,奖励自动减半。更加精准的数学化表示为:假设挖到第N个区块,不妨令N除以210000的下取整为D,则第N个区块获得的区块奖励为50乘以(1/2的D次方) [6]。举个例子,假设中本聪先生挖到了第0个 (N=0)比特币区块,问:根据比特币的奖励机制,中本聪先生应该获得的区块奖励是多少个比特币?答案显然的,当N等于0的时候,根据比特币的奖励机制,第0个区块所获得的区块奖励为50乘以 (1/2的0次方)等于50BTC。挖矿所得的区块奖励会自动生成一笔交易,该笔交易以区块的第一笔交易的身份被区块创建者所创建和接收。通常,我们把这笔交易称为coinbase transaction。和普通交易的最大的不同在于,coinbase transaction是没有输入的,而普通的交易既需要输入,又需要输出。这意味着,普通的交易可以被任何一个区块成功验证和接收,而coinbase transaction的验证和接收是带有条件的,即,只有在区块创建者所创建的区块被成功接收之后才能被其他区块成功验证和接收。举个例子[7],假设中本聪先生的公钥地址为:1HUBHMij46Hae75JPdWjeZ5Q7KaL7EFRSD,中本聪先生在挖到了第0个区块后,根据比特币的奖励机制,他获得了50个比特币的奖励。中本聪先生将信息”1HUBHMij46Hae75JPdWjeZ5Q7KaL7EFRSD:50BTC”,连同该信息的数据签名一道写入区块0的coinbase transaction。一旦区块0被比特币网络成功接收,人们才能知道人们就可以知道中本聪先生的公钥地址拥有50个BTC这一事实,相应地,这笔coinbase transaction才能被其他矿工正式验证/接收

接着,我们聊聊非挖矿所得的比特币交易(non coinbase transaction)。我们假设一个场景:中本聪先生想要将其公钥地址 (1HUBHMij46Hae75JPdWjeZ5Q7KaL7EFRSD) 下的50个比特币全部转给到作者的公钥地址(1gdaHMij46HBHMiawZ25Q7Ka45Q7KaL7Ea)。 在这个过程中,non coinbase transaction交易中有两件事是非常重要的:其一,对交易发起方而言,矿工需要验证交易发起方口袋里确实有50个比特币;其二,对交易接收方而言,交易接收方需要验证交易对方是否将50个比特币转移到自己的账户下,而不是错误地转到别人的账户下。为了实现这一个目的,non coinbase transaction由两部分构成,一个是输入部分,用于证明交易发起方口袋里确实有50个比特币,另一个输出部分,用于交易接收方查询交易发起方确实将50个比特币转移到自己的账户下。具体来讲,中本聪先生需要起草的交易如下:在输入部分,填写自己的比特币的公钥地址(1HUBHMij46Hae75JPdWjeZ5Q7KaL7EFRSD),证明自己拥有50个比特币;在输出部分,填写作者的公钥地址(1gdaHMij46HBHMiawZ25Q7Ka45Q7KaL7Ea),并输入交易金额50个比特币;最后,中本聪先生需要用他的私钥对整个信息的哈希值进行加密得到数字签名,然后将这笔交易发送给比特币网络,等待被矿工验证接收。

小结一下,首先,哈希算法及其衍生算法(e.g.,数字签名,Merkle Tree) 保障了交易信息的数据完整性。这意味着当收到一笔比特币的交易信息的时候,用户自己可以通过数字签名验证该笔交易数据的完整性。同样地,当收到一个区块信息的时候,用户自己可以通过MerkleTree验证该区块数据的完整性。其次,数字签名算法保证了交易数据的不可抵赖性。这是因为一笔交易被确认的前提是用户使用自己的私钥对交易进行了最关键的数字签名操作。基于非对称密码安全性成立的假设下,只有拥有相关私钥的拥有者才能进行签名操作。这意味着在用户私钥没有泄密的前提下,只有私钥拥有者本能可以执行这笔交易。所以交易执行过后,私钥拥有者无法抵赖且没有任何后悔余地。其三,矿工的交易数据验证工作分为两部分,一部分是验证该笔交易的数字签名,即验证该笔交易是否完整;另一部分是验证该笔交易的输入是否在区块链中有效。其四,矿工区块数据验证工作主要是验证Merkle Tree是否正确,即区块中的相关信息 (比如,交易信息,创建者,前驱区块,后继挖矿难度值等等) 的完整性。

参考文献
[1] Diffie,Whitfield,and Martin Hellman. “Newdirections in cryptography.” IEEE transactions on informationTheory 22.6 (1976): 644-654.
[2] Nyberg,Kaisa,and Rainer A. Rueppel. “Messagerecovery for signature schemes based on the discrete logarithmproblem.” Workshop on the Theory and Application of of CryptographicTechniques. Springer,Berlin,Heidelberg,1994.
[3] Gassend,Blaise,et al. “Caches and hash trees forefficient memory integrity verification.” High-Performance Computerarchitecture,2003. HPCA-9 2003. Proceedings. The Ninth International Symposiumon. IEEE,2003.
[4] Merkle,Ralph C. “A certified digitalsignature.” Conference on the Theory and Application of Cryptology.Springer,New York,NY,1989.
[5] Wiles,Andrew. “Modular elliptic curves andFermat’s last theorem.” Annals of mathematics 141.3 (1995):443-551.
[6]https://www.cryptocompare.com/coins/guides/what-is-a-coinbase-or-generation-transaction/
[7]https://github.com/stequald/bitcoin-sign-message

最后,欢迎关注作者的微信公众号 “BlkchainPlus”,

相关文章

财联社10月10日讯(编辑 赵昊)当地时间周二(10月8日),美...
PANews 9月29日消息,币安前首席执行官赵长鹏在X平台发文称:...
凤凰网科技讯 3月11日,比特币报价突破71000美元,创历史新高...
赵长鹏 凤凰网科技讯 北京时间9月28日,据彭博社报道,美国当...
“前华人首富”赵长鹏的出狱时间或再提前。 Binance(币安)...
财联社5月24日讯(编辑 史正丞)当地时间周四盘后,根据一份...