从比特币了解区块链技术

Connor 比特币中国网 2022-07-07 257 0

区块链技术不同于大数据与云计算等信息技术,它的原理更加复杂且会涉及到密码学原理。为了更清楚地描述区块链技术,我们先从比特币这个区块链技术最初也是最典型的应用实例讲起,其交易机制可以帮助大家更好地理解区块链的运行原理。北京木奇移动技术有限公司,专业的区块链技术开发公司,欢迎交流合作。

其作为一种没有权威机构背书的虚拟货币,若想要保证交易可信,成为被大家认可的货币,必须解决信用背书与发行、交易确认和账户管理三个主要问题。

(1)比特币发行原理

比特币依靠区块链技术原理背书,或者也可以说它不需要背书,因为一切信息公开透明且不可篡改的技术特点使其脱离了需要信用背书以确保可信的约束。比特币交易系统在开始运行后就不再收到创始人的管控,几乎没有人能够改变这个交易系统中的数据,这种奇妙的运行机制还要从它的发行方式讲起。

比特币的发行是通过‘挖矿’来完成的,比特币用户节点参与维护比特币网络的行为需要被激励,激励的手段就是向其发放比特币。而这种激励手段在比特币被认可后变得非常有诱惑力,很多比特币用户节点都会愿意为此做出维护行为,但维护行为的需求是有限的,那么到底挑选谁来进行这次维护呢?挖矿机制由此产生。所谓‘挖矿’其实是一种利用计算机硬件进行数学运算的行为,是比特币网络挑选单次网络维护(记账)节点的一种手段,谁在最短的时间内计算出了正确的结果,谁就拥有此次记账的权利,并将在记账完成后获得比特币作为激励。用户在进行挖矿计算时需要投入很多的成本,包括硬件成本、时间成本、电力成本等,比特币网络使用的这种用‘挖矿’来挑选网络维护节点的机制,被称为POW(工作量证明)机制。

在理解了网络维护人的挑选机制后,比特币网络维护原理也就容易理解了。比特币网络中的每次交易都会带来一条新的交易数据,而同时交易方会在网络中进行广播,当其他用户收到了广播后基于将把交易数据记录在信息池中,当信息池中占用的空间达到1M后,交易数据会被打成一个含有验证签名(数学运算结果)的数据包,即区块。区块中的验证签名是基于POW机制下的计算结果生成的,且包含了对前一区块的验证签名的验证,那么每一个区块都有唯一确定的前一个区块,即所有区块都是有前后顺序的。这些区块按照时间顺序串联记录在每个用户的本地存储空间中,形成链状的数据存储结构,即账本。每段时间新产生的区块由被POW机制选出来的网络维护节点(记账节点)来进行串联操作(记账),并广播给所有用户节点使其验证并添加这个新区块,以保证网络中的所有节点有相同的数据记录。

现在我们互补了解比特币系统的基本交易机制了,即所有用户都拥有相同的链状数据记录,并且新的数据会由pow机制选择记账节点进行记账并广播进行全网同步。那么在这种以算力强弱来决定谁记录数据的交易机制下,若恶意节点想要篡改某一个区块的数据,它必须在很短的时间内,把篡改目标区块以及之后所有的区块都重新计算一遍验证签名,再把新生成的账本同步给其他人。又因为比特币网络中规定最长链才是正确的链,所以恶意节点还必须在赶上现有区块的高度的同时,让自己篡改后的账本成为最长链,误导其他用户节点认为其新账本是正确的账本。而在恶意节点进行这些计算和操作的同时,其他矿工们已经在原链上继续向后记账了,且就算其达到这些要求,其新账本还需要其他节点验证通过才能成功进行账本同步。这几乎是不可能办到的事情,而且即使拥有了绝对优势的算力,那么只需要在比特币网络中进行常规挖矿就可以垄断比特币的发行权,进行篡改等欺诈行为只会使比特币系统崩溃进而导致比特币的信用瓦解,这种行为的收益与付出极度不匹配,因此从技术角度之外的效用角度来讲,比特币系统也是安全、不可篡改、不需要第三方背书的。

展开全文

(2)交易确认

现实中的转账交易都是有由银行这个核心节点来进行交易确认的,那么在比特币这个依靠所有节点共同进行维护的系统网络中,交易的确认就成了比特币交易的一个技术重点。

在比特币网络中,只有最终记录在主链上的交易才是有效的交易。每一笔交易都需要进行全网的确认,验证失败的异常交易数据会被直接丢弃,而通过验证的交易数据则会被节点记录在信息池中,然后形成区块。但由于复杂的网络拓扑结构,每个节点新生成区块中的交易顺序或交易集合可能不同,基于前文关于挖矿的介绍可知,只有记账节点可以进行记账操作,以确定唯一的区块。但有网络延迟的情况下,还有可能出现节点同时收到两个有效区块的情况,这时节点的账本将呈Y字型分叉,同时在这两个分叉上记录后面的数据,直到一条分叉先达到一定的长度的被选为主链,而另一条分叉将自动被舍弃。

在经历了反复的确认与筛选后,交易数据才会最终出现在主链上,完成交易确认的过程。这往往会经历比较长的时间,包括数据传输、数据验证等的较短时间与挖矿计算与分叉筛选等的较长时间,平均在十分钟左右。因此交易确认时间过长的是比特币的一个缺点,它使比特币难以进行实时支付,而缩短交易确认时间也成为了区块链技术发展的重要方向。

(3)账户管理

纸币不存在账户管理的问题,因为它是有实体的,谁持有纸币实体,纸币就自然归属于谁,但在电子信息时代,账户管理是一个复杂的问题。对于银行来说,每个账户都与客户的身份信息联系在一起,客户通过身份核验后作为该账户唯一对应的所有人,通过银行卡、信用卡、手机银行等媒介发起这个账户的支付指令,而这个账户的余额、交易记录等信息一般被存储在银行的多个数据库中进行备份,以免出现意外的情况。而对于比特币来说,账户与用户的真实身份无关,账户也不包含任何交易或余额信息,只有一对公钥和私钥。公钥与私钥的概念涉及到密码学知识,这里只需知道私钥可以计算出公钥,公钥不能反推私钥,但可以验证私钥是否与自己匹配。

比特币网络在进行登录与交易时,需要验证的就是账户的私钥,私钥是用户对账户所有权的唯一证明。那么一个人可以拥有多个比特币账户,只要记住每个账户的私钥即可。而账户名又称账户地址,是由账户的公钥进行运算推导后,得出的一串数字地址,有了对方的账户地址后就可以对其发起交易,或是查询其交易记录等。这么看来,可以将比特币账户的公私钥理解为用户名和密码,只是用户名可以由密码计算推导出来,用户名又可以独立对密码进行验证,而对外公开的账户名又是依据用户名推导出来的。

除了账户验证方式不同之外,比特币并不单独记录账户余额,每次查询账户余额都基于之前的交易记录重新计算得出。因为一个用户可以拥有无数个比特币账户,那么比特币账户的总量可能是无限大的。而如果想要保存每个账户的余额,基于前面所讲的比特币网络运行原理,就需要在每个用户节点的账本中都实时记录所有账户的余额,也就是说每一个区块里都要有当前所有账户余额的数据。这将占用区块的很多空间,且在验证区块的时候需要对每个账户的余额进行追溯验证,这将大大降低区块的验证效率。既然比特币网络中的每一个节点都有相同的全部交易记录,那么只需在本地对此账户的全部交易进行追溯和计算,就可以得到其当前的账户余额信息。当然基于节点本地的交易记录可以测算出很多信息,但这并不代表比特币的隐私安全出现问题,因为这些账户是完全匿名的,很难通过一个账户的交易记录锁定现实中的人,当然这种匿名的信息安全性也为洗钱等非法活动提供了温床,这是比特币的一大社会问题。

评论