bitcoin

比特币原理解读

最近勒索病毒爆发,凡是中毒的电脑,文件都被加密,需要向黑客支付一定量的比特币赎金才能恢复文件。现实生活中绑匪都要现金,黑客们则要求使用比特币支付赎金,可见比特币有很强的匿名性,还具有一定价值。原来比特币是中本聪2009年提出来的一种点对点的数字货币,它没有发行机构,依据特定算法和大量的运算产生,通过网络中的分布式节点来确认和记录交易,使用加密算法保证各个环节的安全性。比特币的价值目前处于疯涨状态,上周曾一度涨到18000多,由于比特币的数量有限,估计以后价值会越来越大。

现在不光比特币火爆,还有比特币的底层技术“区块链“,它是结合了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,可以保证交易的可靠性和不可修改性。为了真正弄明白比特币,下面就对中本聪论文《比特币:一种点对点的电子现金系统》进行简单地解读,通过读文献,来了解比特币产生的背景、要解决的问题和实现的技术细节。bitcoin2

现实生活中使用货币交易,使用的货币都是实物,不会有什么问题,比如甲用20块钱购买乙的一个火龙果,甲将20元钱给乙,己将火龙果给甲,交易就完成了。但是使用虚拟货币就不一样了,虚拟货币本质上是一串字符,不是实物,因此在进行交易时不可避免得会出现两个问题:

1,该虚拟货币是甲支出的,支付的对象是乙;
2,甲没有将该虚拟货币复制,再支付给其他人,即”双重支付“的问题。

对于第一个问题,在比特币产生之前已经有解决方案,那就是使用数字签名技术。论文指出“电子货币就是一连串的数字签名,每个人用自已的私钥将上一笔交易和支付对象的公钥一起加密(签名),然后放在电子货币的末尾。这样支付对象就能对签名进行险证来确定货币的归属。”,详细的过程见下图(摘自论文):

bitcoin_sig

第二个问题,即“双重支付”,在比特币之前也有解决办法,就是通过货币发生机构或者可信第三方来记账,交易的记录和顺序都有详细记录,因此不可能出现“双重支付”问题,但是这种依赖于可信第三方机构的模型也有缺点:可能的货币超发、可信第三方被攻击等等。比特币是一种去中心化的货币,即没有可信第三方,完全通过点对点进行交易和记账,在这种情况下,比特币要解决的关键问题就是“双重支付”。

比特币解决”双重支付”问题的方法是将交易记录公开发布,建立一种机制,让参与者对交易记录达成共识,确定一个单一的交易历史记录。为了记好账,确定交易的先后顺序,收款人需要知道每笔交易的时间,而且大多数节点能够确认每笔交易发生的先后顺序。

为了确定交易顺序,比特币使用的是点对点分布式的时间戳服务来实现的,就是将一个块和一随机数一起生成散列值,然后加时间戳,并将该散列值广播,下一次将该散列值置入一个新的块中,再加上随机数生成散列值,加时间戳,… …,通过这种方式形成一个交易的时间链条,以确定交易的顺序,实现分布式记账。

bitcoin_timestamp上面说的“随机数”实际上是通过大量运算计算出来的,这个过程就是“挖矿”,正规点的说法是“工作量证明”,比特币是通过“工作量证明”机制来实现的分布式时间戳服务。具体实现方法是机器通过不断尝试数字,使得上一个块加上该数字生成的散列值满足有N位是0(N根据大小不同,使得记算过程呈指数增加)。这种机制保证了交易无法被修改,如果想修改某一块,那就意味着还要修改之后的每一个块。bitcoin3在隐私方面,比特币虽然将交易信息通知其他节点,但是由于公钥是匿名的,所以大家只能知道某时间有一量的货币进行了交易,但是无法知道参与交易的双方是谁。这个过程类似股票交易,人们能在大厅看到交易的信息,某个时间卖出多少、买入多少,但是无法看到是谁在买、卖。另外,公钥虽然是匿名的,但是还是能过交易记录指向一个共同的所有者,为了防止这种情况发生,比特币对每次交易使用一组新的密钥对。

5 thoughts on “比特币原理解读”

  1. 确实比较费资源,但是这是一种比较好的工作量证明机制啊,要是有人想改变数据,就得把工作量重来一遍;另外挖矿也能获得一定的奖励。

发表评论

电子邮件地址不会被公开。 必填项已用*标注