主页 > imtoken转账手续费 > 比特币并没有你想象的那么“去中心化”

比特币并没有你想象的那么“去中心化”

imtoken转账手续费 2023-09-18 05:14:09

我们看过很多区块链文章,但发现大部分文章的作者可能不懂技术,不懂代码,对区块链和数字货币的理解仅仅停留在“跟风”。 数字货币和区块链最早是由技术极客发明的。 这一次,我们有幸邀请到群风社CTO刁伟宏,一个真正看懂代码的人,来给我们通俗易懂的讲一讲数字货币和区块链。 比特币可能没有你想象的那么“去中心化”。 ,“坚不可摧”。

审查

一系列拆解文章的最终目的是回答我们研究提出的问题:数字货币和区块链是否具有投资价值,如何判断其投资价值?

拆解1:《最通俗易懂的比特币原理讲解》,以及拆解1《比特币基本技术原理》的补充。 在我们讨论它之前,我们必须了解比特币的机制和概念以及底层的区块链技术。

拆解2:“比特币对我们好人来说基本没用”。 我们讨论了比特币目前在我们普通人现实生活中的使用价值。 结论是比特币并没有解决我们好人的痛点,但是比特币底层的区块链网络在未来会有一些真正的应用,是有价值的!

拆解3:“比特币要成为真正的货币,你一辈子都见不到”,我们讨论了比特币的货币属性,我们在讨论之前明确定义了当前信用货币时代的货币定义,不是在不同的定义框架下,进行“鸡同鸭讲”的讨论。

首先不属于比特币设计初衷,让我谈谈与技术无关的事情。 很多人讨论比特币的货币性质,但比特币目前的价格波动太大,我认为它不具备作为货币、经济活动的协调工具和价值尺度的能力。 然而,在某些情况下,比特币可能是最有效的支付方式。 所以我在这篇文章中谈到比特币的可信度,主要是指它作为一种支付手段的可信度。

要理解以下内容,您需要了解比特币网络的一些基础知识。 可以看我们的拆解1:《最通俗易懂的比特币原理讲解》和拆解1补充:《比特币的基本技术原理》。

根据上一篇文章(《比特币的基本技术原理》),我们知道组成比特币网络的节点都是从各自的利益出发,如何在没有任何中心化组织协调的情况下把账目放在一起。

由于比特币网络是一个开放的网络,没有进入门槛,没有人能保证参与的节点是诚实的、没有恶意的。 如果有节点想干坏事,他们能干什么坏事呢? 做坏事要付出多少代价,又能得到什么好处? 这些坏事会对比特币网络造成多大的破坏?

这些问题的答案也是对比特币网络可信度的考察。

比特币网络中的不良行为者可以做什么?

比特币交属于现货吗_发明比特币的初衷_不属于比特币设计初衷

如果比特币网络是一个存在于纯净环境中的网络,由一个可靠的组织管理,那么就没有必要讨论了,因为我们是在给这个组织信任,类似于使用所有传统金融机构的互联网服务.

但是,比特币是一个开放的网络,任何人只要有一台可以上网的电脑都可以参与。 从比特币网络协议的角度来看,所有参与者都是平等的。 他们都可以创建交易,都可以挖矿(竞争记账)。

在这个开放的环境中,我们无法保证网络上的所有节点都是诚实的。 他们可能不会以上述方式行事。

坏节点要想干坏事,首先要赢得记账权,也就是说要能够成功挖出区块。 我们假设它很幸运,找到了一个新区块。 让我们看看它可以在这个块上做些什么坏事。

它能把别人的比特币据为己有吗? 才不是。 因为从理论上讲,目前的算力无法突破比特币使用的非对称加密算法,无法伪造他人的数字签名。

如果它硬着头皮在新交易中插入无效的数字签名,则将新交易放入其候选块中,并成功将其挖出。 这个新区块不会被比特币网络上的其他诚实节点识别,因为它们会验证新区块上的所有交易以确保交易有效。 这个坏块被发送到网络后,收到它的诚实节点将直接忽略它。 因此,坏节点无法窃取他人的比特币。

同样,坏节点不能在新区块中添加超过规则规定数量的奖励,因为这样的区块也会被其他诚实节点认为是无效区块。 坏节点不能随意给自己加比特币。

既然交易无法伪造,那么坏节点是否可以拒绝特定的交易呢? 假设坏节点的拥有者不喜欢大雄,是否可以拒绝大雄部分地址的所有交易? 它可以这样做是因为在挖矿时,选择构成区块的交易的策略由节点自行决定。 坏节点可以拒绝任意交易。

但是,即使坏节点在自己的新区块中拒绝了某笔交易,由于这笔交易会扩散到整个比特币网络,只要其性价比达到要求(交易手续费足够高),其他诚实节点就会还在下一轮的挖矿中,将这笔交易放入候选区块。

除了“拒绝服务”这种看似无利可图的坏事,坏节点还可以双花。 如上所述,双重支出的行为是有利可图的。

我们来看看坏节点是如何完成双花的:

发明比特币的初衷_不属于比特币设计初衷_比特币交属于现货吗

假设小付从小静那里买了一套珍贵的艺术品,并用 100 个比特币支付。 晓静得到交易确认后,将艺术品交给了晓付。

如果小付控制了一个坏节点,他可以在支付给小静100个比特币后立即在坏节点上创建一个新的交易,并把同样的100个比特币转回给自己。 这个坏节点并没有传播这笔交易,而是立即使用这笔交易进行挖矿,而忽略了支付给小京的原始交易。

原本支付给小静的交易已经传到了网络上。 当一个诚实的节点挖出一个新的区块并确认交易时,小静将艺术品交给小付。

而小付的坏节点会忽略其他节点挖出的区块链,确认支付给小京的交易,继续在原来的工作区块上挖矿:

图:双花区块链

如上图所示,H1包含支付给小静的交易,A1包含小付双杀的交易。 即使 A1 在 H1 之前被挖出,坏节点也不会发布这个新区块。 它等待 H1 发布,以便 Jing 可以看到交易已确认。

如果小付的坏节点有幸在其他诚实节点之前挖出一条更长的链,那么它就可以私下公布自己挖到的区块,让网络上所有的诚实节点都能转向承认它的链。

图:双重支付成功

但是,我们都知道挖矿是一个不确定性很大的事情。 坏节点在下一轮成功挖出区块的概率是多少? 这个概率等于它拥有的算力除以全网算力。

让我们看一下当前比特币网络的估计总计算能力。 根据(),至少要超过20,000,000 TH/s。 主流最新矿机算力13TH/s。 如果一个坏节点使用单台矿机挖矿,下一轮挖矿中奖的概率大概是0.00000065不属于比特币设计初衷,几乎可以忽略不计,而这样的矿机要一万多人民币,即使你投资1000万买数百台矿机只是将小数点后移了两三位。

如果读者想理解为什么这个概率是这样计算的,我可以用一个简化的例子来解释。

不属于比特币设计初衷_比特币交属于现货吗_发明比特币的初衷

前面说过,挖矿就是计算出一个满足特定价值要求的哈希值,这个哈希值计算的结果是随机均匀分布的。

假设hash值范围为0~1024,目标值小于16。长度为1024的区间可以分为64个长度为16的子区间,由于计算结果完全随机且均匀分布,因此它们具有相等的落入这些子区间的机会。 因此,我们可以预期,平均而言,一次尝试将进行 64 次尝试以落入第一个区间。 这个尝试次数是不确定的,有可能命中一次,也有可能需要1009次。

我们现在有8台电脑,每台电脑十分钟内可以进行8次哈希计算。 结合起来,这平均每 10 分钟总共尝试 64 次。 可以预料,这里会有一次成功的尝试。

那么,其中一台计算机成功获得目标值的概率是多少呢? 一台特定的计算机这次获得了8个值,它们均匀分布在总共64个中,所以其中一个落在0到15区间的概率是8 / 64等于0.125。

我们可以把这8台电脑的总算力理解为比特币网络的总算力,其中一台电脑理解为某人拥有的节点。 因此,按照同样的逻辑,节点在十分钟内挖出一个区块的概率大致等于节点自身的算力除以比特币网络的总算力。

以上数字仅供参考。 SHA256的哈希值范围是0到2到256次方,这是一个非常大的范围。

如果你想提高你坏事的成功率,坏人只能聚集在一起取暖:很多节点串通一气,或者一个节点结合很多机器来大幅提升自己的算力。

必须获得多少计算能力才能确保成功? 因为争夺记账权是一个概率游戏,我们可以直观地估计,只要拥有一半以上的算力,就可以保证长期成功。 这就是通常所说的 51% 攻击。

回到上面小付的例子。 他控制的坏节点实际上是在和全网其他诚实节点竞争挖矿。 只要每轮出现坏节点的概率高于全网其他诚实节点的概率,其构建的恶意链就可以在长期竞争中获胜。

理论上,如果合谋的坏节点足够多,甚至可以包围一些诚实的矿工节点(即切断这些节点与网络上其他诚实节点的通信),让这些被包围的节点只能挖矿在坏节点建立的恶意链上。 在这种情况下,坏节点不需要完全依靠自己的算力来竞争。 这种攻击被称为“日食攻击”。

因此,当坏节点的算力超过一半时,比特币支付就不安全了。 坏节点可以随意取消多次确认的新交易。

发明比特币的初衷_比特币交属于现货吗_不属于比特币设计初衷

但是,坏节点即使达到这个算力比例,也只会攻击未来的交易。 比如我们所说的双重支付,应该在攻击发起时悄悄开始构建分叉链,开始竞争。 如果要双花一个在区块链中长期存在的交易,需要重新挖很多块,而且挖矿速度肯定比诚实链快很多。 这些计算支出往往对它来说是无利可图的。 图片。

另外,由于比特币固有的网络延迟,会造成自然分叉。 对于坏节点,他们不需要超过一半的算力,也可以从双重支付攻击中获益。

研究表明,对于拥有近30%算力的坏节点,只要被攻击交易的金额大于新区块的奖励(目前为12.5个比特币),即使允许交易获得双花也是有利可图的1个确认且只要被攻击交易的金额大于13个区块(162.5个比特币)的奖励,即使允许交易获得6个确认,纯粹逐利的不良节点也可能选择进行双重支付攻击.

Arthur Gervais 在他关于 POW 区块链的安全性和性能的论文中,详细分析了具有一定比例算力的坏节点如何使用不同的参数设置在基于 POW 共识的区块链上进行双重支付。 可能性。

至此我们了解到,在比特币网络中,即使存在坏节点,它所能做的坏事也只是通过双重支付攻击来牟利。 它不能窃取别人现有的比特币,也不能给自己创造比特币。 需要足够的算力才能进行双重支付。 如果一个坏节点拥有超过一半的算力,它就可以随意双花。 即使只有接近 30% 的算力,坏节点也可以选择性地双花以获利。

在目前全网总算力很高的情况下,有算力占比这么大的节点吗? 讨论这个问题,我们先来了解一下矿池。

矿池:“去中心化”中的“去中心化”趋势

比特币设计的初衷是创造一个去中心化的市场机制。 在这种“激励相容”的机制下,每个独立的个体都按照自己的利益和喜好行事,使整个网络的价值最大化:分布式节点越多,越难被攻击,越安全,越有价值。

但正如上文所说,挖矿激励的获取具有很大的不确定性。 这种不确定性导致了挖矿权力的中心化。

假设你投入巨资获得十分之一的算力。 预计70天左右挖一个区块,一年5个,收入超过60万美元,而你的设备和电费是40万美元。 (举个例子),预期收益是50%,这是一个相当可观的数字。 但是由于巨大的不确定性,这一年你可能挖了二十个区块发了大财,也可能一个区块都没挖到血本无归。 从投资的角度来看,这不是一个好主意。

对于远小于这个比例的算力,挖矿几乎等同于继续买彩票。 虽然中了彩票可以赚很多钱,但很可能很长一段时间都没有收入。

比特币交属于现货吗_发明比特币的初衷_不属于比特币设计初衷

因此,在今天的比特币网络中,大多数矿工选择取暖加入矿池。

矿池的典型运行模式可以简单描述如下:

矿池的服务器可以看作是比特币网络中的一个节点。 我们把这个节点看成是一个大矿工。 这个大型矿工每天验证并转发收到的交易和区块,并选择交易形成候选区块进行挖矿。 但它并不直接对这个候选区块进行挖矿计算,而是将候选区块分发给所有参与矿池的小矿工。

小矿工不是比特币网络中的节点。 它们只连接矿池的服务器,也就是这里说的大矿机。

这些小矿工既不验证交易也不创建区块,他们只是根据大矿工发送的候选区块进行哈希计算。 任何一个小矿工只要成功找到一个符合要求的值,就会立即发送给大矿工,大矿工再将这个新区块发送到比特币网络。

图:矿池参与者在比特币网络中的位置

因为候选区块是由大矿工决定的,新区块的奖励自然会发送到大矿工指定的地址。 根据每个小矿工的贡献值,大矿工定期给小矿工分配相应的奖励。

由于小矿工的算力差异很大,他们在挖矿上付出的努力也大不相同。 为了判断小矿工的贡献值,大矿工会设定一个相对容易的目标值,每个小矿工只要在挖矿尝试中达到这个小目标,就会将结果发送给大矿工。 大矿工根据小矿工实现小目标的次数来判断这些小矿工的贡献值。

让我们看一个具体的例子来理解贡献值的概念。

再次使用前面0到1024哈希值的简化示例,目标值仍然小于16。现在有两个小矿工一起工作,试图获得目标值。 他们在十分钟内分别进行了 16 次和 48 次尝试。 结合起来,他们的算力预计十分钟一次成功:因为只要有64个随机值均匀分布在0到1024的区间,就有一个可以落入0到16的子区间。

大矿工,也就是矿池的组织者,给他们定了一个相对容易的小目标:小于128。所以弱一点的矿工可以期望在十分钟内实现2次这个小目标,而强一点的矿工可以达到6次。 我们可以预期,在达到小目标的总共 8 次尝试中,有 1 次将达到总体大目标:少于 16 次。哪个矿工进行了这次成功尝试并不重要。

双方小矿工都将自己实现小目标的成果提交给大矿工,大矿工可以根据小目标成果的占比来区分他们的贡献值。 在这个例子中,一比三是一个合理的决定。

这种基于贡献值的分配方式,使得矿池参与者的预期收益与独立挖矿几乎持平。