主页 > imtoken苹果版下载官网怎样下载 > 区块链教程系列:比特币问题

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

文章目录

简介

比特币网络是由中本聪作为实验网络提出并运营的。没想到100T算力变成比特币流程,这个实验网络已经成为虚拟货币世界的领头羊。这个结局大概是中本聪自己从来没有想过的。

既然是实验网络,那么比特币网络中隐藏着哪些痛点?快来看看吧。

攻击比特币网络

比特币网络基于 P2P 架构。整个比特币网络可能有数千个节点。

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

描述以下三种攻击方式:

共识攻击(51%攻击):如果一个人的挖矿算力超过全网算力的51%,则可以任意确定虚拟货币网络区块的内容,比如反转交易或者创建虚拟交易等.,这意味着整个虚拟货币网络崩溃,所有虚拟货币资产将由这个拥有51%算力的人持有。里面。

自私挖矿攻击:所谓自私挖矿是指当一个“自私矿池”挖出新区块时,它们会被私下保存,直到必须提交给网络节点。该理论的基础是“自私矿池”将区块保密,让网络的其余算力浪费自己的资源进行挖矿,让“自私矿池”在挖掘下一个区块时占据上风。

“自私矿池”还必须监控其他矿池,以预测它们何时会发现新区块。当“诚实矿池”广播一个新的区块时,“自私矿池”也必须发起一次女巫攻击(Sybil Attack),抢先获得他们挖出的区块才能被网络识别。区块头当然有时间戳,而“自私矿池”也必须有足够多的Sybil节点来报告“自私矿池”首先发现了该区块,这样网络才会接受举报并奖励“自私矿池”池”。

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

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

100T算力变成比特币流程

空块问题

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

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

矿池A出块后,需要一定时间才能将新块散布到全网。

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

在交易数据传输过程中,B池有一定概率计算下一个区块。此时B池不知道哪些未确认的交易已经被A池打包到了上一个区块中。为了避免打包执行相同的交易,导致交易冲突和区块拒绝,B池不会打包任何交易.

这就是空块的来源。

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

缩放问题

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

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

100T算力变成比特币流程

然后网络退化为清算系统,小额交易被淘汰,这些交易被第三方记账系统取代。

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

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

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

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

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

Segregated Witness 将 ScriptSig 排除在交易之外,从而扩大了可以容纳的交易数量。

同时,将 ScriptSig 排除在事务之外还有避免事务扩展 Transaction Malleability 的优点。

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

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

100T算力变成比特币流程

p>

为什么可以更改签名?

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

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

小明监控交易并微调交易的签名100T算力变成比特币流程,从而生成新的交易并将其发送到比特币网络。

最终比特币网络收到了小明修改后的交易。

不过,此时小明可以向火币投诉他没有收到交易。火币网客服会根据之前的交易id查看这条记录,当然查不到。最后,火币会补偿小明一笔费用。于是,小明攻击成功了。

区块链扩展问题

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

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

100T算力变成比特币流程

反对社区

对于比特币来说,挖矿本身就是一种投票。最初的想法是以CPU为单位,用算力投票,保证系统的安全。但随着“智能”技术人员将 CPU 替换为 GPU,然后是 FPGA,然后是 ASIC 矿机,这条路已经偏离了初衷。

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

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

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

这好像有点类似,一个公司的命运,不是由持有公司股份的股东决定的,而是可能根本不持有股份的人,而只取决于有钱的人,那就是,金融界的那些“门外汉”。那些持有比特币的人完全没有能力对比特币的未来做出自己的决定。中本聪设定的一个CPU、一张票的文明世界,似乎一下子变成了一个纯粹靠蛮力看谁更厉害的原始社会。

失败的进化机制

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

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

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

而且是否使用新版客户端的决定权在比特币矿工手中,所以任何对矿工不利的修改都是不可能通过的,即使是比特币基金会也无能为力,所以开发者做没有足够的热情去修改。在这种情况下,比特币客户端经过多年的发展,仍然处于非常原始的状态,不仅不适合普通人,而且完全不像互联网时代的软件。正如中本聪最初设想的那样,社区中的许多开发人员继续修改系统。像Linux一样,通过社区的共同努力推动系统适应时代发展的情况并没有出现。

100T算力变成比特币流程

解决问题

所以对于块扩展的问题,其实有两种更好的解决方案。

首先是闪电网络:

Lightning Network 可以看成是一个临时记账系统,比如 A 和 B 直接有很多交易,那么他们可以先在区块链中建立一个通道。

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

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

还有一种技术叫侧链

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

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

总结

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