bitcoin

比特币原理解读

比特币是中本聪2009年提出来的一种点对点的数字货币,它没有发行机构,依据特定算法和大量的运算产生,通过网络中的分布式节点来确认和记录交易,使用加密算法保证各个环节的安全性。比特币最大的特点就是去中心化和匿名性,这些原因也许就是监管部分封杀的原因,据了解比特币总量在2100万枚,随着时间推迟,挖矿难度会增长。

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

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

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

对于第一个问题,可以使用数字签名技术。论文指出“电子货币就是一连串的数字签名,每个人用自已的私钥将上一笔交易和支付对象的公钥一起加密(签名),然后放在电子货币的末尾。这样支付对象就能对签名进行验证来确定货币的归属。”,详细的过程见下图(摘自论文),将上一笔交易和支付对象的公钥一起生成散列值,然后用支付者的私钥签名,这样就能确定货币的归属和支付对象

bitcoin_sig

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

比特币是一种去中心化的货币,没有可信第三方计账,账本是完全是储存于“点对点”网络中的,在这种情况下,比特币要解决的关键问题就是“双重支付”。

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

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

bitcoin_timestamp上面说的“随机数”是通过大量运算计算出来的,这个过程就是“挖矿”,正规点的说法是“工作量证明”,比特币是通过“工作量证明”机制来实现的分布式时间戳服务。具体实现方法是机器通过不断尝试数字,使得上一个块加上该数字生成的散列值满足有N位是0(N根据大小不同,使得记算过程呈指数增加)。这种机制保证了交易无法被修改,如果想修改某一块,那就意味着还要修改之后的每一个块,需要重新做一遍每个块的工作量证明。bitcoin3最后要说的是比特币的发行机制,块中的第一笔交易就是将个新的比特币奖励给这个块的创立者,这就给了参与这个点对点网络的动力,通过这种方式发行货币,因为比特币是去中心化的,没有央行来发生货币,这种情况就像矿工挖矿,不同的是花费的是CPU时间和电力,进行大量动算。

这种发行机制可以激励网络中的结点变诚实,如果他们控制了大量的运算结点的话,与其想办法去修改交易结果,还不如去挖更多的比特币。



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

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

发表评论

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