这篇文章本来是发在简书,发出去的一刻,直接被锁,只能自己可见,估计是文章关键字扫到了,看来目前国内对这个管控还是挺严。 话说很早就开始玩币了,从17年开始,从来没有赚过钱,当时是在网上冲浪发现这个东西,下了个火币来玩一玩,买了500块eos,事实证明eos到现在还是那个鸟样。这几天心血来潮,想要系统性地学习一下区块链的知识,再好好去研究一下别的项目,区块链的知识量真的是太大了,先总结第一篇,方便自己后续回顾。
比特币的交易、挖矿原理
现实生活中当A给B转钱的时候,一定会产生一条记录,不管任何的金融系统都需要记录这一条记录。但众所周知虚拟货币的第一大亮点就是去中心化,什么是去中心化?
在支付宝中A给B转钱,支付宝的系统会负责完成这一笔交易并且记录这一条记录,这就是中心化,中心化的特点就是A跟B的交易需要支付宝这个第三方来介入,否则这比交易将无法完成。银行转账一样的道理。
那么比特币是如何完成这一笔交易的,并且记账的呢?
这里先引出一个概念,比特币客户端本质上来说是一个应用,跑在计算机上的应用,类似于在centOS上起了一个JavaWeb程序,目前世界上有上百万台计算机运行着这个应用,就是我们俗称的矿机。
当A通过比特币客户端(钱包,轻应用)给B转钱,客户端会广播这条信息到全网的比特币客户端,所有的节点一起来记账,把这条记录先记录到自己的内存中,每台计算机都会把最近一段时间收到的交易进行打包形成一个区块,拼到上一次打包的区块上,类似于链表结构,形成了一个区块链。
1.因为记账只有唯一一台机器可以记这几分钟的账,第一个问题,那么多节点同时计算,谁说了算?
打包的过程是将 最近有效的交易 + 时间戳 + 随机数 通过sha256
计算出一个hashcode
,当这个值符合前几位为0的时候,这台机器就有资格进行打包,把最近这些交易进行打包记账,那么相应的,系统会给予奖励,这个奖励是打包过程中,节点自动同时会把这笔交易加入到计算当中,这就是挖矿。系统会动态地调整计算难度,确保在10分钟左右出一个块,截止到目前是必须符合前19个是0。
2.这么多机器,一台客户端广播得过来吗?
据不完全统计目前的全网节点只需要12秒就可以同步90%的节点,广播的效率相比于打包的过程还是相当快的,相比与真正耗时的是计算那个hashcode。而且不需要全节点广播,只需要广播就近几个节点,通过传递很快可以广播到全网。
3.关于余额的计算
在比特币的网络中没有余额的概念,而是通过纯计算得出。假如我想知道某个钱包的余额,只需要计算在链条上所有关该钱包的收款记录就能动态计算出我目前的余额了。每条交易的模型在BTC中称为UTXO。有一个输入一个输出。每个UTXO中输入方是花费方,输出方是消费方,每一个输出都犹如现实中的一张纸币,他只有两种状态,属于你或者不属于你。未花费就是该张纸币属于你,已花费就是该张纸币不属于你。每一个 UTXO 和纸币一样,只可能有两种状态,要么是没有被花费的,要么就是已经被花费,所有权变成了其他人或者地址,成为其他地址的 UTXO。如果A有10个BTC,转给B10个,那么就是一个UTXO。如果转5个那么就是两个UTXO,因为存在找零操作。一个UTXO是A->B 5个BTC ,一个是UTXO是A->A 5个BTC .
4.为什么说不可篡改
这就是公有链的价值所在,假设说中心化的金融系统是可以随意篡改的话,那么去中心化的区块链相对来说是非常安全的。首先在中心化的系统中,改一条数据神不知鬼不觉,参考蚂蚁的员工把自己的余额后面加了两个0。在区块链中,每个区块的整个所有的信息都会有个hashcode。每个块都会保存前一个块的hashcode。又因为记账是大家一起记,假设你在你的节点把其中几个块改了,庞大的系统是不认可你的,因为剩下99.9999…%的节点记是正确的数据,只有你一个是错误,你这条链是不会有人继续往下写的,这就是共识的力量。在公有链中,除非你有绝对的实力可以改掉一半以上的机器数据,当然能做到这一点的人也不屑于做修改数据来增加自己的财富。
5.BTC的劣势
一.因为由于系统设计的问题,导致BTC的交易TPS相当慢,一秒钟只能发起7笔左右的交易,这在当今这个高速的互联网是根本无法满足需求的。
二.由于BTC挖矿的机制是POW,所以就造成了电力和资源的浪费,多个矿池都在做同样一件事,而真正生产的价值的只有那么几台。
关于交易所
交易所本质是一个中心化的系统,他只有唯一一个钱包地址。所以其实在里面所有的交易,都是基于他自己的数据库,你的挂单,你的买币其实都是他数据库里的加加减减。这也就是解释了,为什么BTC这么慢的TPS,在交易所每秒却有成百上千的挂单成交。
因为每个钱包余额都是透明的,所以你可以看到头部的钱包基本都是交易所的钱包。
交易所其实是个很坑的东西,首先挂单交易都需要手续费,你划转到钱包需要手续费。而且你在交易所的币实际上都在他的钱包里,理论上他可以拿你的钱做任何的事。
总结
系统地了解完BTC的整个机制之后,感叹这确实不像十多年前设计的东西,思路真的太超前了,当我们还在拼命寻求一个公平公开透明的中心化机制的时候,设计者已经开创了一个这样的自由公开透明的国度。虽然我觉得设计者在设计之初一定没想到在十几年后的今年,BTC会对世界产生这么大的影响。现如今在加密货币的世界中,所有的项目都是在此基础之上进行搭建改造的。这真是一门另人着迷的技术啊。