比特币是一种数字货币,是没有第三方机构支持的电子现金,不需要依托实体货币而存在,拥有自己的发行机制,能实现所有权和使用权的转让。
它跟微信、支付宝所用的电子货币不同。
微信、支付宝所用的电子货币是依赖于实体货币存在的。所有的交易都要依赖第三方,也就是银行系统。
这样的系统有几个缺点。
首先,它要受第三方控制。如果第三方机构认为这笔交易有争议,它可以将这笔交易撤回。
其次,因为第三方机构要存活,所以,交易就需要成本,也就是你要给银行支付费用,那一些小额的交易就不能够进行了。比如你去取款机取1块钱,要支付2块的手续费,所以取款机取钱都得100元起。
最后,如果第三方机构数据库被攻击,或者它主动想要更改数据,普通用户一点办法都没有。
为了解决这种问题,中本聪开发了一种点对点的电子现金系统。
在这个系统中,不存在第三方的中央机构,所有的交易节点都是平等的。
01 交易
对于两个节点之间发生的每一笔交易,都会广播发到网络中的每一个节点上去,发送的这个信息包里面,有这个币之前的所有交易记录,还有付款方的私钥签名(证明这个币确实是他的)以及收款方的公钥(收款地址)。
对于每一个用户来说,它最主要的密码是一个“种子”,这个种子是12个字符组成的一串字符。
拥有这个字符串就可以在任何一台电脑上把钱包里的比特币转移走。所以是最核心的钥匙。所以一般都是手抄保存,强烈不建议记在任何电子设备中。
种子文件可以生成私钥,私钥通过一些曲线运算可以得到公钥,公钥再通过运算得到收款地址。
整个运算的流程是不可逆的,也就是说你拿到公钥是不可能倒推出私钥,即使知道了私钥也是不可能得到种子文件的。
由于在交易中,网络知道的只是公钥(即地址)信息,而且交易者可以对每一笔交易启用一对新的公私钥(这些公私钥都是从同一个种子文件通过一定算法得来的)。
公众可以看到某某向某某转账了一定的金额,但是没有任何信息指向某个确定的人。
就像股市交易那样,只有时间和各个交易的金额被公布,但是没有人知道交易双方是谁。所以整个的交易是匿名的。
02 安全性
由于所有的信息都会发到所有的节点上。如果有人想要篡改数据的话,它就必须要控制50%以上的计算机算力。
首先,目前的比特币系统,想要控制50%以上的计算能力几乎是不可能的。
其次,即使真的有人能够控制50%以上的计算机能力,那么他可以有两个选择。
一个选择,是篡改比特币数据,拿到更多的比特币。
但是因为篡改数据必然导致其它节点对于比特币的信任崩溃,比特币将沦为一串数据,不具备任何价值。
另一个选择是用绝对优势的算力,去开发更多的比特币(即挖矿)。
很明显,第二个是一个优越的多的选项。
因为信息的不可篡改,所以比特币的交易是非常安全的,也是不可逆的。
所谓不可逆就是,你支付完的交易,不能因为反悔,而不经过对方的同意即将其追回。
03 挖矿
那这些存储信息的节点,凭什么会提供计算机设备来供用户使用呢?
比特币系统设置了一个奖励政策,提供了设备的人会有机会得到奖励,也就是所谓的“挖矿”。
比特币系统每隔一段时间(比如10分钟),会把这一段时间的交易记录打成一个包(也就是一个区块)。
每一个节点都可以申请打包的权利,获取打包权利的那个节点就能够同时获得系统的奖励(比特币)。
那怎么才能获得这个权利呢。
在介绍节点怎么获得打包权之前,得先介绍一下比特币所使用的一种加密算法,即哈希算法。
哈希算法,是一套加密程序,可以把任意长度的输入字符串转变成固定长度的输出字符串,且不可逆转。
你输入1个数字,和一段长文字,经过哈希计算之后得到的是相同长度的一段数字。
但是你根据转换之后的数字,得不出加密之前的字符串是什么。
而且,哪怕是输入字符串有一点点微小的改变,比如加个空格,改个标点,得到的输出值也是完全不同的。
被打包的区块里面,有三部分内容,第一部分是之前所有交易经过哈希计算之后得到字符串,第二部分是需要打包的所有交易记录,第三部分是一串随机数。
对这个需要打包的区块进行哈希计算,会得到另一串字符串。通过调整区块里面的随机数,就可以得到不同的哈希输出值。
比特币系统规定,谁能计算出符合特定规则的哈希输出值(比如前面10位数字是0),谁就可以获得打包这个区块的权利。
因为他无法从输出值倒推回输入值,因此,为了取得这个打包权,运算节点就只能是不停的随机修改区块里的随机数,这就是“挖矿”的过程。
找到那个随机数的节点,就可以获得奖励的比特币。然后它把这个打包好的区块发送给所有其他的节点,使这个区块加入到区块链中去。
04 竞争
那如果有两个或者多个节点同时找到了符合要求的随机数,且同时向其他节点广播了这一个区块信息,就会有一些节点先后收到几个区块。
这个时候就发生了“分叉”现象。这个节点会同时容纳这两个区块存在,等到下一个打包结点的时候,不同的节点会以不同的区块为最终区块计算哈希值,进行运算。
这个时候最先算出来的那个节点会产生出一个最新的区块链,而没有包含在这一个区块链中的节点就会被当作“孤块”而被抛弃掉。
只有那一条最长链是系统中公认的有效的区块链。
05 双重支付
为了防止双重支付,比特币系统会为每一笔交易打上时间戳。
时间戳就是这笔交易发生的时间。
因为每一笔交易都有时间戳,收款方只要确认这个币在此之前没有给别的人付过,也就可以确认这个币在他这里不存在双重支付的问题。
如果一个人在接收到一个比特币的时候,发现有更早的交易记录,他就不会再接收这个币。
05 数据量
随着比特币发币数量的增加,交易记录的增加,这个比特币系统中的交易记录,也就是区块链就会越来越长,数据量会越来越大。
截止2018年,全节点钱包数据已经超过100G。对于大型的交易机构,他当然需要把所有的记录都下载下来保证系统数据的安全性。
但是对一些小额交易的“散户”来说,他只需要知道最近的节点就可以了。
他只需要下载很小的一部分数据量就行。
如果系统存在被攻击或篡改的风险,系统会向这些“散户”发出警告,他可以暂停交易,或者把所有的数据量下载下来进行校正。
06 总结
总结一下,比特币是一种不需要第三方平台的点对点数字货币。
因为没有层级的干扰,它在跨境交易上面有一定的速度优势。
因为它交易的匿名性,也被用于一些地下非法交易。
但是比特币因为十分钟才能确认一次,所以对于一些小额的,便捷性交易是不适合的。
网友评论