美文网首页@IT·互联网
试着解释一下比特币是怎么回事儿

试着解释一下比特币是怎么回事儿

作者: 何鹿其 | 来源:发表于2019-03-07 09:05 被阅读10次

    比特币是一种数字货币,是没有第三方机构支持的电子现金,不需要依托实体货币而存在,拥有自己的发行机制,能实现所有权和使用权的转让。

    它跟微信、支付宝所用的电子货币不同。

    微信、支付宝所用的电子货币是依赖于实体货币存在的。所有的交易都要依赖第三方,也就是银行系统。

    这样的系统有几个缺点。

    首先,它要受第三方控制。如果第三方机构认为这笔交易有争议,它可以将这笔交易撤回。

    其次,因为第三方机构要存活,所以,交易就需要成本,也就是你要给银行支付费用,那一些小额的交易就不能够进行了。比如你去取款机取1块钱,要支付2块的手续费,所以取款机取钱都得100元起。

    最后,如果第三方机构数据库被攻击,或者它主动想要更改数据,普通用户一点办法都没有。

    为了解决这种问题,中本聪开发了一种点对点的电子现金系统。

    在这个系统中,不存在第三方的中央机构,所有的交易节点都是平等的。

    01 交易

    对于两个节点之间发生的每一笔交易,都会广播发到网络中的每一个节点上去,发送的这个信息包里面,有这个币之前的所有交易记录,还有付款方的私钥签名(证明这个币确实是他的)以及收款方的公钥(收款地址)。

    对于每一个用户来说,它最主要的密码是一个“种子”,这个种子是12个字符组成的一串字符。

    拥有这个字符串就可以在任何一台电脑上把钱包里的比特币转移走。所以是最核心的钥匙。所以一般都是手抄保存,强烈不建议记在任何电子设备中。

    种子文件可以生成私钥,私钥通过一些曲线运算可以得到公钥,公钥再通过运算得到收款地址。

    整个运算的流程是不可逆的,也就是说你拿到公钥是不可能倒推出私钥,即使知道了私钥也是不可能得到种子文件的。

    由于在交易中,网络知道的只是公钥(即地址)信息,而且交易者可以对每一笔交易启用一对新的公私钥(这些公私钥都是从同一个种子文件通过一定算法得来的)。

    公众可以看到某某向某某转账了一定的金额,但是没有任何信息指向某个确定的人。

    就像股市交易那样,只有时间和各个交易的金额被公布,但是没有人知道交易双方是谁。所以整个的交易是匿名的。

    02 安全性

    由于所有的信息都会发到所有的节点上。如果有人想要篡改数据的话,它就必须要控制50%以上的计算机算力。

    首先,目前的比特币系统,想要控制50%以上的计算能力几乎是不可能的。

    其次,即使真的有人能够控制50%以上的计算机能力,那么他可以有两个选择。

    一个选择,是篡改比特币数据,拿到更多的比特币。

    但是因为篡改数据必然导致其它节点对于比特币的信任崩溃,比特币将沦为一串数据,不具备任何价值。

    另一个选择是用绝对优势的算力,去开发更多的比特币(即挖矿)。

    很明显,第二个是一个优越的多的选项。

    因为信息的不可篡改,所以比特币的交易是非常安全的,也是不可逆的。

    所谓不可逆就是,你支付完的交易,不能因为反悔,而不经过对方的同意即将其追回。

    03 挖矿

    那这些存储信息的节点,凭什么会提供计算机设备来供用户使用呢?

    比特币系统设置了一个奖励政策,提供了设备的人会有机会得到奖励,也就是所谓的“挖矿”。

    比特币系统每隔一段时间(比如10分钟),会把这一段时间的交易记录打成一个包(也就是一个区块)。

    每一个节点都可以申请打包的权利,获取打包权利的那个节点就能够同时获得系统的奖励(比特币)。

    那怎么才能获得这个权利呢。

    在介绍节点怎么获得打包权之前,得先介绍一下比特币所使用的一种加密算法,即哈希算法。

    哈希算法,是一套加密程序,可以把任意长度的输入字符串转变成固定长度的输出字符串,且不可逆转。

    你输入1个数字,和一段长文字,经过哈希计算之后得到的是相同长度的一段数字。

    但是你根据转换之后的数字,得不出加密之前的字符串是什么。

    而且,哪怕是输入字符串有一点点微小的改变,比如加个空格,改个标点,得到的输出值也是完全不同的。

    被打包的区块里面,有三部分内容,第一部分是之前所有交易经过哈希计算之后得到字符串,第二部分是需要打包的所有交易记录,第三部分是一串随机数。

    对这个需要打包的区块进行哈希计算,会得到另一串字符串。通过调整区块里面的随机数,就可以得到不同的哈希输出值。

    比特币系统规定,谁能计算出符合特定规则的哈希输出值(比如前面10位数字是0),谁就可以获得打包这个区块的权利。

    因为他无法从输出值倒推回输入值,因此,为了取得这个打包权,运算节点就只能是不停的随机修改区块里的随机数,这就是“挖矿”的过程。

    找到那个随机数的节点,就可以获得奖励的比特币。然后它把这个打包好的区块发送给所有其他的节点,使这个区块加入到区块链中去。

    04 竞争

    那如果有两个或者多个节点同时找到了符合要求的随机数,且同时向其他节点广播了这一个区块信息,就会有一些节点先后收到几个区块。

    这个时候就发生了“分叉”现象。这个节点会同时容纳这两个区块存在,等到下一个打包结点的时候,不同的节点会以不同的区块为最终区块计算哈希值,进行运算。

    这个时候最先算出来的那个节点会产生出一个最新的区块链,而没有包含在这一个区块链中的节点就会被当作“孤块”而被抛弃掉。

    只有那一条最长链是系统中公认的有效的区块链。

    05 双重支付

    为了防止双重支付,比特币系统会为每一笔交易打上时间戳。

    时间戳就是这笔交易发生的时间。

    因为每一笔交易都有时间戳,收款方只要确认这个币在此之前没有给别的人付过,也就可以确认这个币在他这里不存在双重支付的问题。

    如果一个人在接收到一个比特币的时候,发现有更早的交易记录,他就不会再接收这个币。

    05 数据量

    随着比特币发币数量的增加,交易记录的增加,这个比特币系统中的交易记录,也就是区块链就会越来越长,数据量会越来越大。

    截止2018年,全节点钱包数据已经超过100G。对于大型的交易机构,他当然需要把所有的记录都下载下来保证系统数据的安全性。

    但是对一些小额交易的“散户”来说,他只需要知道最近的节点就可以了。

    他只需要下载很小的一部分数据量就行。

    如果系统存在被攻击或篡改的风险,系统会向这些“散户”发出警告,他可以暂停交易,或者把所有的数据量下载下来进行校正。

    06 总结

    总结一下,比特币是一种不需要第三方平台的点对点数字货币。

    因为没有层级的干扰,它在跨境交易上面有一定的速度优势。

    因为它交易的匿名性,也被用于一些地下非法交易。

    但是比特币因为十分钟才能确认一次,所以对于一些小额的,便捷性交易是不适合的。

    相关文章

      网友评论

        本文标题:试着解释一下比特币是怎么回事儿

        本文链接:https://www.haomeiwen.com/subject/gjeqpqtx.html