第一段 & 图 1
比特币采用非对称加密算法对交易记录进行加密,非对称加密算法的特点就是有公钥(public key)和私钥(private key)之分。
公钥与私钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
举个例子:
Bob和Alice各有自己的盒子。Alice要跟Bob秘密通信,她先让Bob把开着的盒子通过邮局发给她。Alice拿到盒子后放入信息锁上,然后发给Bob。Bob就可以用他自己的钥匙打开了。回复的话就用同样的方法。
即只需要保存好自己的私钥就好,而公钥就是公布出去给别人用的。
对比特币系统来说,公钥常说是比特币钱包地址,公布出去让所有人知道(比特币钱包会对公钥重新编码,但不影响实质)。“张二麻子付给李云龙2块钱”这条交易记录就是张二麻子用李云龙的公钥进行了加密,其内容只有李云龙用私钥才能解开,也就是李云龙拥有了这条“记录”。
那么,如何证明这条交易记录是张二麻子发来的?
通过白皮书,我们知道张二麻子在创建这条交易记录的时候用自己的私钥对这条记录进行了签名(一串 hash 数据),同时也在交易末尾公布了自己的公钥,通过张二麻子的公钥进行计算,如果得到的值和签名一样,那么这就是张二麻子用自己的私钥创建的数据了,因为别人不知道张二麻子的私钥。
原文中第一句定义 an electronic coin as a chain of digital signatures. 即一枚数字货币就是一串数字签名(加密的数据)。也就是说你拥有的交易记录就是你的数字资产,也就是拥有一定数量的比特币。而每一条记录在每次交易的时候都会记录新的信息(收款方的公钥,付款方的签名,时间戳…),如此循环往复形成交易链条。
理论上,公开公钥就可以知道这条记录的来源,甚至是追踪到最初的所有者(有些改良的数字货币为了强调匿名交易和不可追踪,修改了交易结构,让这个过程无法进行),这个就是上下文相关。此时,要篡改这样一条交易记录也是很困难的,要修改所有这个链条上的交易,而这些交易记录都是加密的,而且是循环相关的。
第二段
这一段依旧是在说双重交易的问题。上一段提到,根据这个交易链条,我们可以知道之前的美味所有者,但是我们不能知道某位记录的拥有者是否同时创建了两条或多条新的记录,来将他的比特币再次花出去(二重支付)。依旧指出通常的办法是引入信得过的第三方权威机构,这显然是中心化系统,此方案 pass。
第三段
显然,比特币的交易是一个时间序列的链条,而我们每次交易,只需关注本交易之前发生的那一笔交易。即使是二重支付,也是有先后顺序的,而我们只需证明其中一条是有效的即可,并将其记录到交易链上,那么其他交易就是无效的了(这也就是比特币的交易确认原理,而交易确认是需要时间的)。
而如何证明有效又不允许中心化机构介入?白皮书中提到“be publicly announced”,发动所有人参与证明,进行“多数人的证明”。
即有人说“张二麻子给李云龙2块钱。”现在大多数人都表示同意并将其记录下来,并将记录复制,每人一份,这样就有了唯一受到认可的记录了,如果张二麻子还想把这 2 块钱给其他人,会被反对,导致二重支付失效。
网友评论