主页 > imtoken安卓最新版 > 区块链教程系列:比特币问题

区块链教程系列:比特币问题

imtoken安卓最新版 2023-05-05 07:32:25

介绍

比特币网络是由中本聪作为实验网络提出并运营的。 没想到,这个实验网络竟然成为了虚拟货币世界的领跑者。 这个结局恐怕是中本聪自己都没有想到的。

既然是实验网络,那么比特币网络到底隐藏了哪些痛点呢? 来看看吧。

攻击比特币网络

比特币网络基于 P2P 架构。 整个比特币网络可能有数以万计的节点。

那么问题来了,这么多节点的网络还会被攻击吗? 它将是什么类型的攻击?

以下是三种攻击方式:

共识攻击(51%攻击):如果一个人的算力超过全网算力的51%,他就可以任意决定虚拟货币网络区块的内容,比如撤销交易或者创建虚拟交易等。这意味着整个虚拟货币网络崩溃比特币的来历,所有虚拟货币资产将掌握在掌握51%算力的人手中。 自私挖矿攻击:所谓自私挖矿是指当“自私矿池”挖出新区块时,他们将这些新区块保密,直到必须提交给网络节点。 该理论的基础是“自私矿池”保留了区块的隐私性,让网络剩余的算力可以浪费资源来挖矿,从而使“自私矿池”在挖下一个区块时先占先机。堵塞。

“自私矿池”还必须监控其他矿池,预测它们何时会找到新区块。 当“诚实矿池”广播寻找新区块时,“自私矿池”也必须发起女巫攻击(sybil attack),抢先让自己偷挖的区块被网络识别。 区块头当然有时间戳,而且“自私矿池”也必须有足够的Sybil节点报告“自私矿池”先找到区块,这样网络才会接受报告并奖励“自私矿池”水池”。

拒绝服务攻击:发送大量小额交易,造成网络拥塞。 我们要知道,比特币网络的处理能力是非常非常弱的。 每10分钟出一个块,一个块的大小是1M(当然,现在实现了隔离见证,好像容量变大了),块的大小是有限的,最终交易在块是有限的。 这限制了比特币网络的交易处理速度。

如果此时网络收到大量的小交易,那些真正的大交易就会被阻塞。

更多精彩内容请看:

空块问题

空块意味着该块不包含任何交易。

那么空块是怎么产生的呢? 假设我们有两个矿池 A 和 B。

矿池 A 生成一个区块后,需要时间将新区块传播到整个网络。

B矿池收到A矿池新区块的基础数据后,为了充分利用算力,不等待新区块中的交易数据传输完毕,就开始计算下一个街区。

在交易数据传输过程中,矿池B有一定的概率计算出下一个区块。 此时B矿池并不知道A矿池已经将哪些未确认的交易打包到之前的区块中,如果发生冲突导致该区块被拒绝,B矿池将不会打包任何交易。

这就是空块进来的地方。

如果查看比特币区块链的历史,可以发现(从区块 364188 到区块 345469)一共 18,720 个区块,其中 422 个只有一次交易(即 coinbase 交易)。

扩展问题

比特币区块链是一个全球性的、分布式的、容量有限的、昂贵的系统。 每笔交易的价值内容是不同的。 当区块容量不够时,我们应该确保高价值的交易被包含在区块中。 高价值交易有意愿也有能力支付足够高的网络费用以获得足够高优先级的区块。

随着比特币的繁荣,交易的数量会越来越大,而有限的区块容量会让低价值的交易(比如发送 1 美分)永远不会进入区块,因为低价值的交易无法支付高额的网络费用。

然后网络退化为清算系统,低价值内容的交易被驱逐出去,这些交易被第三方记账系统所取代。

在闪电网络出现之前,第三方记账系统主要是链下钱包提供商。 用户信任第三方钱包平台并在其中存入比特币。 同一平台用户之间的转账只会带来账户余额的变化,不会产生比特币交易。

现金系统意味着所有的交易都应该进入区块,所以当区块容量不够时,应该及时增加区块大小限制来扩展系统。 交易的阻塞可能会在短时间内发生,但从长远来看,所有的交易都应该能够进入区块。 每个人都享受着比特币系统带来的巨大便利和优势。

为解决区块链容量问题,比特币于2017年8月24日引入隔离见证。

比特币区块和比特币的区别_比特币每十分钟产生多少个比特币_比特币的来历

我们先回顾一下上图中比特币在区块链中的交易结构。

每个交易的输入都包含一个 ScriptSig。 这个ScriptSig主要用于交易验证,只对需要验证交易的矿工有意义。 对于普通用户来说,这个ScriptSig是完全没有必要的。

而Segregated Witness就是将这个ScriptSig排除在交易之外。 从而扩大了可容纳的交易数量。

同时,从交易中排除 ScriptSig 的另一个好处是它避免了交易延展性。

可延展性意味着某物发生变形,但其本质保持不变。 对于交易,ScriptSig 中包含的签名实际上是可以更改的。 这导致整个交易发生变化,最终导致交易ID发生变化。

因为 Transaction ID 是整个交易的一个 Hash。

为什么可以更改签名?

因为对于某种签名算法,可能有多种签名方法,所以各种签名方法都是正确有效的签名。 但是最终会导致交易id发生变化。

假设有这样一种情况。 小明在火币网发起提现交易。 当交易被广播到网络并且还没有被包含在区块中时。

小明听取了这笔交易,并对这笔交易的签名进行了微调,从而生成了一笔新的交易,并将其发送到比特币网络。

最后,比特币网络接受了小明修改后的交易。

不过这时候小明可以向火币投诉没有收到交易。 火币网客服会根据之前的交易id查看这条记录,当然查不到了。 最终,火币网将对小明进行一定的费用补偿。 所以小明攻击成功了。

区块链膨胀问题

比特币区块链的规模一直在增加。 其实不只是比特币,所有的区块链网络都存在这个问题,因为每个区块链节点都需要保存链上的所有信息。

比特币区块和比特币的区别_比特币的来历_比特币每十分钟产生多少个比特币

让我们看看区块链的大小。 2020年全节点规模将超过250G!

竞争社区

对于比特币来说,挖矿本身就是一种投票。 最初的想法是以CPU为单位,用算力进行投票,以保证系统的安全。 但随着“聪明”的技术人员把CPU换成GPU,再到FPGA,再到ASIC矿机,这条路也渐渐偏离了初衷。

比特币社区的任何人都会发现,持有比特币的人和挖矿的人变成了两个完全不同的人群。 比特币矿工似乎已经完全脱离了社区。 很多矿工可能根本不了解比特币的生态比特币的来历,甚至不关心比特币的未来。

因此,每年都能看到一些奇异的景象。 持有比特币的社区不得不谴责和呼吁一些矿池降低算力,以免严重影响比特币的发展。

而这些矿池也会说他们减持是基于道德和意识。 任何拥有比特币的人,看到比特币的命运掌握在不一定关心比特币命运的人手中,不会感到奇怪。

这似乎有点类似,一个公司的命运不是由那些持有公司股份的股东决定的,而是由那些可能根本没有股份而只有钱的人决定的,也就是那些持有公司股份的人。金融世界。 “门口的野蛮人”。 持有比特币的人完全无法对比特币的未来做出自己的决定。 我们似乎已经从一个CPU、中本聪一票的文明世界,变成了纯粹靠蛮力比拼谁强的原始社会。

失败的演化机制

比特币发展初期,主要依靠以中本聪为核心的技术团队制定相关技术标准,开发比特币钱包。 但随着中本聪退出比特币社区,这方面的工作逐渐转移到比特币基金会。

比特币基金会是一个负责协调比特币发展的非盈利组织。 除了开发比特币钱包外,他们还参与推广比特币概念和应用、教育市场以及与政府沟通。 由于基金会本身是非营利组织,只能靠捐款来运作。 但比特币世界的大量资金都投入到矿机上,开发者很难从比特币的开发中获利。

开发人员经常面临两难境地。 因为比特币在全球范围内获得了一定程度的认可,其客户端在全球范围内被数百万人使用,但其早期的核心开发人员已经销声匿迹,使得后续的开发人员不敢更改核心代码,只能进行一些修复在外围。 因为一旦核心代码被修改,任何一个小问题都可能导致全球比特币网络瘫痪(比特币发展过程中就出现过这种情况),愿意冒这样风险的开发者并不多。 但是,如果能够成功改版并稳定运行,除了社区的掌声之外,开发者将无法获得任何实际收益。

而是否使用新版客户端的决定权在比特币矿工手中,所以任何对矿工不利的修改都不可能通过,连比特币基金会也无能为力,所以开发者没有足够的积极性调整。 在这种情况下,比特币客户端经过多年的发展还处于非常原始的状态,不仅不适合普通人使用,而且一点也不像互联网时代的软件。 中本聪原本设想社区中有很多开发者在不断修改系统。 像Linux一样,社区共同努力推动系统适应时代发展的情况并没有出现。

解决这个问题

所以对于区块扩容的问题,现在其实有两个更好的解决方案。

首先是闪电网络:

比特币区块和比特币的区别_比特币每十分钟产生多少个比特币_比特币的来历

闪电网络可以看作是一个临时记账系统。 比如A和B直接有很多笔交易,可以先在区块链上建立通道。

所有后续交易都在这个通道中进行(以智能合约的形式),只有当通道关闭时,两者之间的交易才会正式更新到比特币网络中。

这为A和B节省了大量的交易成本。

还有一种技术叫侧链

比特币每十分钟产生多少个比特币_比特币的来历_比特币区块和比特币的区别

侧链技术实际上在比特币网络之外构建了另一条链。 比特币网络仅用于清算。

当然,为了解决比特币的问题,第二代甚至第三代区块链技术平台应运而生。 感兴趣的朋友可以继续关注我的后续更新。

总结

本文介绍了区块链网络中的困境和一些解决方案,希望大家喜欢。