在币圈听到很多不同的声音,这也是经历币圈中各种起起落落等事情后,对比特币、区块链这种新兴事物出现一些反思的必然结果。
经历过这么多事情以及各种观点的冲击,我想大部分人包括我自己对区块链及比特币理解还只是停留在表面。
故通过寻找资料来获得进一步的学习,一来可加深自己对区块链技术出现的前因后果、技术上的优势及局限性有更深层次的理解。二来也是对未来区块链世界到来带来的变化,提前了解和探索从而找到符合自身发展的契机。
基于此,以下是对比特币白皮书整理后以问答形式的内容解读。
对于比特币发展历史可以参看前文小白也能看懂的区块链。
什么是比特币网络?
比特币网络是一个基于点对点的分布式记账系统,它依据交易发生的先后顺序,对交易进行打包,在进行记录的同时加入工作量证明,只要比特币中诚实节点能够控制整个网络的算力,即诚实节点提供的算力所占席位超过比特币网络整体算力的51%,那么这个分布式记账系统就是安全值得信任的。
比特币网络对交易按时间先后顺序记录的同时,加入工作量证明解决了交易可逆问题,这些就是比特币所解决的传统电子支付的痛点。下面我们会分别介绍比特币系统的各个特性,来了解它具体是采用了哪些技术来支撑这个去中心化和交易不可篡改的网络系统的。
使用比特币系统是如何进行交易的?
一个人拥有一个比特币,并非像在你银行卡账户中记录的一笔数字资产那样,事实上我们说的比特币是比特币系统中的交易。
一个币事实上是一个签名链,链末端的数额表示某个地址拥有币的数量,任何一个币向上追溯都会到达链的起始端,即比特币矿工挖出新币时的一个签名点。
一个币的所有者通过交易将币转移给另外一个地址,这时需要对前一个交易及接收地址进行签名来实现,前一个交易里的接收地址得是这个币所有者的地址,换句话说只要这个比特币属于你,你就能对这个币有签名处置权,交易的验证者会用前接收者的公钥验证这个签名的合法性,从而确定这个签名的真伪。
在比特币系统中,交易被打包进一个区块,区块被按一定的次序进行排列,这间接也说明了交易是有次序的。交易有了顺序,加上网络上的一致记录,这样交易的验证者根据这个唯一的交易排序记录就能确定发给自己的币是否已经被支付给了其他人。
那比特币系统又是如何按照一定的次序或规则来记录发生的交易呢?
这个时候就需要引入一个概念“时间戳服务”,比特币系统中对交易进行了按发生的先后顺序记录并排序,这时候引入时间戳来标明交易的发生时刻。
那么比特币系统交易中流程是怎样的呢?
先对发生的一组交易进行打包,形成一个区块,同时在这个区块上添加这个时刻的时间戳,然后计算出此区块的区块头的哈希值,再把这个哈希值广播到网络中。
每次打包加上时间戳后计算出的区块头哈希值都具有唯一性,只要区块中的数值被篡改,哪怕更改一个字节,重新计算出的哈希值也会发生巨大的变化。比特币通过哈希的方式来保证区块内容的真实性,也就意味着某个交易确实在某个时间发生了。
接下来生成的每一个区块都会记录前一个区块的哈希值,从而串成一个区块链。这也就提示了比特币网络事实上就是一个区块链系统,比特币就是区块链中一个很好的应用。
但要知道在比特币网络中并非只有一个节点在计算区块,那么这就涉及到一个竞争抢占的问题,谁的跑到最快,就用谁的。
那这些节点是如何进行工作的呢?
新的交易向全网进行广播 → 节点把新的交易收集进一个区块 → 节点为每一个区块进行工作量证明计算 → 若一个节点为某个区块生成了合法的工作量证明,将向全网进行广播 → 节点收到区块,对其进行校验,区块合法,就要接收这个区块为有效区块 → 节点在这个区块的基础上构建下一个区块。
那如此多的节点,在面对如此多接受到的合法区块,怎么才被认定为有效区块呢?
所有的节点都有一个共识:最长的那个链是正确的链,同时基于这个链工作并进一步延长它。这时节点会基于先收到的那个区块进行工作,同时会保留后收到的那个区块。
这时链就有两个分支,哪一个是最长链,是不能下定论的,等收到下一合法区块时,前向指针指向哪个分支,哪个分支就被认定为最长的链。若此时偏离最长链工作的话,那就需切换进行工作的基础区块,因为这时最长的链条已经自动切换了。
在交易广播过程中,比特币网络不要求交易到达全部节点,只要交易能达到相对多的节点,就会很快被记到区块中。 如果一个节点与特定区块未成功匹配,就会向其它的节点吆喝一嗓子,发起获取该区块的请求。
我们通过这次对比特币白皮书的学习了解比特币网络中的交易过程、交易广播中节点是如何工作并连接好下一个区块的,下篇我们将学习到比特币的工作量证明机制、比特币网络的激励机制、隐私及抗风险机制,期待你的关注。
大家都在读
也可以成长公众号网络资料整理出品
若侵权,请联系删除
微信号:ykyadolesce
图片来源于网络
网友评论