区块链网站|NFTS 比特币地址 区块链深度解析(二):比特币到底是什么?

区块链深度解析(二):比特币到底是什么?

广告位

深度解析区块链(二):比特币究竟是什么?

本期重点介绍比特币白皮书,对其有所了解的读者可以跳过。

最后,上一期提到中本聪在2008年发明了比特币(次年正式推出创世区块),那么比特币到底是什么?我们先来看看中本聪自己在白皮书中的说法:完全由点对点技术实现的电子现金系统。它使网上支付能够由一方直接发起,支付给另一方,中间不经过任何金融机构。综上所述,比特币是一个去中心化的P2P支付系统。重点是点对点的电子支付系统已经存在很久了,比特币和传统P2P支付系统的核心区别是“去中心化”。

在传统的财务体系下,记账是由一个可信的第三方机构进行的。比如你在银行存100元,你存款的数据只记录在银行的数据库里,只有银行维护交易记录。这是典型的集中记账。那么比特币是如何实现支付过程去中心化的呢?中本聪巧妙地利用分布式存储、链式数据结构、密码学(非对称加密)和POS工作量证明机制(共识算法)构建了新的操作系统,从而实现了“去中心化记账”;简单来说,比特币产生的每一笔交易,都会被所有节点记录下来,也就是每个人都有一个完整的账本。然而,这也引出了一系列问题:如何保证交易记录的真实性?如何保证交易记录的顺序(防止双花)?如何保证所有账本的一致性?如何保证账本不会被篡改?

为了解决记账的真实性,需要向所有节点公开交易记录,每个节点可以反向验证任何交易。中本聪通过引入非对称加密解决了这个问题。系统中的每笔交易都被定义为一段加密数据(记录)。在交易过程中,需要用收款人的公钥(具体来说就是基于公钥生成的钱包地址)创建新的交易记录(其中包含从最后一个付款人处收到的信息),用付款人的私钥在记录中添加数字签名(其他人可以通过付款人的公钥验证签名),这样比特币的所有权就转移到了收款人身上(因为收款人的私钥可以解锁这个加密数据),从而形成了一个交易链。

那么如何确定交易完成的顺序呢?中本聪给出的解决方案是用“时间戳服务器”随机散列一组块形式的数据,然后打上戳。每个块的时间戳将被添加到其随机哈希值中的前一个块的时间戳中,从而形成时间序列上的数据链。从而确保交易的清晰顺序。

同时,交易发起过程中会广播全网(基于P2P网络协议),每个节点会将收到的交易信息包含到一个块中。那么谁有权利记录这些数据呢?这里使用了前面提到的工作量证明机制(POS)。简单来说,在进行随机哈希运算时,引入一个数学解问题(比如SHA256,消耗大量CPU时间和功率),最先找到这个解的节点获得记账权。这个解决方案需要很多操作,但是验证只需要一次。而且在分块中加入了一个随机数(Nonce),可以自动调整求解难度。

这个方案一旦被大多数节点确认,这个块的信息就不能更改了。由于后面的块都是在这个块之后链接的,所以如果要更改这个块中的信息,就要更改后面的所有块,这就需要很大的计算能力(但如果只是更改最后一块,难度就会小很多,所以一笔交易只有在连续确认了6块之后才会被认为是基本不可逆的),这样就增加了node的作恶成本,大大降低了账簿篡改的风险。但是,这并不能保证绝对的安全。如果有人掌握了全网51%的计算能力,那么从概率的角度来看,他会更容易优先考虑计算成功,这样他就可以伪造一个假链来代替主链,交易就会被篡改。也就是传说中的“51%攻击”。攻击者计算能力的比例越高,攻击成功的概率越大。

由于网络环境的复杂性,总会有多个节点同时广播不同版本的新块,因此其他节点接收这些块的时间也不同。此时,它们将在第一个接收到的块的基础上工作,但它们也会保留其他链(分叉),直到找到下一个工作负载,并且其中一个链被证明是更长的一个,那么在分支链上工作的节点将切换到更长的链上继续工作(合并),其他分叉将被放弃。比特币中的区块链是一个不断分支、合并、分支、合并的过程,最长的是系统认可的区块链。

如前所述,获取记账权需要大量的计算能力,整个系统面临“被攻击51%”的风险。那么如何才能保证比特币系统能够安全有效的运行呢?我不得不说中本聪是一个真正的天才。他通过设计独特的奖励机制,从经济学的角度很好地解决了这些问题。成功记账(挖矿)可以获得大量的比特币奖励(相比转账时收取很少的费用),这就给了节点争夺记账权的动力,保证了交易的正常进行。同时,对于51%的攻击者来说,即使实现了计算攻击,整个系统的价值也会崩溃,因此攻击获得的比特币没有任何意义,攻击过程中付出的大量硬件资源和电费都会成为巨大的损失。对于超级计算能力拥有者(主要是矿池)来说,攻击从经济成本的角度来看完全不经济。他们有更好的盈利方式:通过硬分叉比特币(分叉币)凭空创造财富。而且这种奖励机制巧妙地解决了代币产生和流入市场的问题。谁支付资源谁就获得代币,这也可能是对全球央行货币体系的反击。

中本聪一直认为,货币过量是对公共财富的一种“掠夺”,所以他将比特币的数量定为恒定的2100万(这带来了系统性的通货紧缩)。同时,为了使价值易于组合和分割,交易被设计成包括多个输入和输出。一般来说,是由价值较高的前一笔交易组成的单一输入,或者是由价值较低的前几笔交易组成的平行输入,但最多只有两个输出:一个是支付,一个是找零(如果有的话)。需要指出的是,大量的事务是相互依赖的,但是上述技术方案(链结构、时间戳、公钥和私钥签名、POW等。)保证当前交易数据的真实性,所以没有必要开始测试之前发生的所有交易历史。

随着比特币交易的日益频繁,积累的交易信息越来越多,这显然给数据存储带来了压力,因此中本聪设计了存储空间回收机制。当最新的事务包含在足够多的块中时,可以丢弃事务之前的数据以回收存储空间;同时,为了保证块的随机散列值不被破坏,在对交易信息进行随机散列时,将其构造成一棵Merkel树(Merkle Tree是一种存储散列值的树结构。块中的每个事务计算一个散列值,然后成对连接再次计算散列,一直到顶部根散列),这样,块的随机散列值中只包括根散列。通过拔出树的分支(只保留最后一个事务的Hash和其他非叶子节点),可以压缩旧块,从而大大减少系统占用的存储空间。

由于Merkle算法的特点,轻型节点(SPV节点,不需要存储整个区块链数据,不能记账)也可以检查支付。节点只需要保存最长工作量证明链的块头的数据(没有事务信息的块头的大小只有80字节),它可以不断地向网络查询,直到确信自己有最长的链,并可以通过Merkle树的分支导致它被打上时间戳并包含在块中的事务。这样就可以看出某个节点已经接受了,之后添加的块进一步证明全网都接受了,从而快速检验交易的有效性。

由于交易是向全网广播的,所以必须采取特殊的隐私政策来保护用户:通过保持公钥匿名,公众只能知道有若干比特币从支付地址转移到收款地址,而无法知道具体的收款人,从而保证了用户的隐私。作为额外的预防措施,用户可以要求每个交易生成一个新的地址,以确保这些交易不会追溯到一个共同的所有者。但是,由于平行输入的存在,一定程度的可追溯性是不可避免的,因为平行输入表明这些货币都属于同一所有者。这时候的风险就是,如果一个人的公钥中有一个被确认是属于他的,那么这个人的其他很多交易都是可以追溯的。

坚持在这里的读者应该对比特币系统有了基本的了解。我简单总结一下:比特币是利用分布式存储、链式数据结构、非对称加密、POW共识机制、P2P联网等一系列技术组合而成的去中心化、自运行的金融体系。实现了数字货币的自主发行、匿名交易和公开记账。这一期的内容很多。之后,我将带你了解更多关于比特币及其底层技术——区块链的知识,敬请关注。

(本文来自GetNo。不知道晚上天空的白。下次预览:《“比特币”的价值及其流通》)

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/btb/qianbao/2387.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部