了解比特币分叉:演变与分歧

2024-03-15 18:28

本文主要是介绍了解比特币分叉:演变与分歧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、分叉的定义
    • 1.1 软件分叉
    • 1.2 共识分叉
  • 二、货币分叉类型
    • 2.1 软件分叉
    • 2.2 Blackcoin
  • 三、共识分叉和扩容争论
    • 3.1 比特币软分叉
    • 3.2 扩容辩论和硬分叉提案
    • 3.3 1 MB 块限制的起源
    • 3.4 早期对区块大小的不满
    • 3.5 展开辩论
  • 四、三剑客——BTC、BCH 和 BSV
    • 4.1 比特币(BTC)
    • 4.2 比特币现金(BCH)
    • 4.3 比特币 SV (BSV)

免责声明:观点来自原文作者,与本人无关,文章仅供参考学习,请自行辨别真伪,切勿跟风,风险自担。
翻译原文:https://www.blockpit.io/blog/what-are-bitcoin-forks

比特币是加密货币世界的先锋力量,但它的发展历程并非一帆风顺。其历史上最重要的事件之一是“分叉”现象——协议中的分歧导致新的加密货币或原始加密货币的变体的创建。

虽然“分叉”一词可能会让人产生分歧的印象,但它证明了去中心化系统固有的灵活性和适应性。本文深入探讨了比特币分叉的本质,解释了它们的原因、影响以及它们绘制的不同路径。

寻找有关比特币本身的更多见解?查看我们的权威指南:什么是比特币以及它如何运作?

一、分叉的定义

在区块链和加密货币的背景下,分叉可以被视为道路上的一个裂缝。这是加密货币的原始代码可以分支的途径,导致两条潜在的路径。

1.1 软件分叉

这让人想起许多区块链项目的开源性质。通过获取项目的原始开源代码,开发人员可以调整、调整或重新利用它来创建新的加密货币。这些分叉可能与其祖先有相似之处,但在功能、理念和目的方面也可能存在巨大差异。

1.2 共识分叉

从设计上来说,区块链是去中心化的。因此,系统或规则的改变需要达成共识。当提出变更时,可能会导致潜在的分歧,具体取决于它们的兼容性。

  • 软分叉:想象一下一台旧机器在新的软件更新后仍然可以运行。这种向后兼容性是软分叉的特征。虽然系统中添加了新规则,但旧规则仍然可以运行。但是,如果旧版本尝试引入新功能,则更新的节点可能无法识别它。

  • 硬分叉:这是一种更加严格、明确的分叉。一旦硬分叉被激活,整个网络都需要更新到新规则。如果没有,它们就会被留在一个完全独立的区块链上。结果?两种不同的加密货币在分叉点之前具有共同的历史。

二、货币分叉类型

2.1 软件分叉

  • Tenebrix 和莱特币:在莱特币出现之前,就有 Tenebrix。然而,由于潜在的“预挖矿”,它引起了争议。这促使查理·李 (Charlie Lee) 在 2011 年推出了莱特币。莱特币不仅仅是一个克隆品;它是一种加密货币。它的区块生成时间加快了四倍,并实施了 Scrypt 哈希算法,使使用 CPU 和 GPU 的个人矿工更容易使用它。

  • Peercoin:Sunny King 和 Scott Nadal 推出了 Peercoin,旨在解决比特币的能源消耗问题。Peercoin 的新颖之处在于其混合 PoW/PoS 系统。Peercoin 不仅仅依赖矿工,还允许代币持有者“铸造”新代币,从而减少能源足迹。

2.2 Blackcoin

作为下一个进化步骤,Blackcoin 完全放弃了 PoW。它于 2014 年推出,是向节能区块生成的一次飞跃,为未来的 PoS 货币开创了先例。

三、共识分叉和扩容争论

当谈到比特币的演变时,共识分叉发挥了关键作用,反映了管理系统的规则的变化或提议的变化。这些不仅仅是软件升级,而是参与者商定的基本原则的转变。让我们更深入地研究一下。

3.1 比特币软分叉

比特币经历了多次软分叉

  • P2SH(Pay to Script Hash):P2SH于2012年引入比特币网络,旨在简化比特币交易流程。在 P2SH 出现之前,发送到脚本(一组锁定条件)要求发送者了解脚本的详细信息。使用 P2SH,接收者创建脚本并向发送者提供相应的地址,从而简化交易。

  • 签名的严格 DER 编码:于 2016 年实施,这更像是一个注重安全的软分叉。在推出之前,比特币的签名存在一个小的延展性问题。此更新确保每个签名都遵循严格的格式,减少潜在的漏洞。

  • OP_CHECKLOCKTIMEVERIFY (CLTV):这本质上是一个时间锁定功能。CLTV 允许用户创建只能在特定时间戳或区块高度后才能使用的交易输出。这是更复杂的智能合约的垫脚石,并且对于支付渠道和闪电网络的发展发挥了重要作用。

  • SegWit(隔离见证):SegWit 于 2017 年推出,是比特币历史上争议最多的软分叉之一。它通过将见证信息与交易数据分离来解决交易的可延展性。作为副产品,它还有效地增加了块大小,而无需硬分叉,为交易腾出更多空间。

  • Taproot:2021 年 11 月,比特币进行了期待已久的更新,提高了可扩展性、增强了隐私性并添加了额外的智能合约功能。除了添加 Schnorr 签名(可以减少比特币交易的大小,从而可以向区块添加更多交易)之外,还引入了 Merklized 抽象语法树(MAST),它可以实现额外的隐私功能。还添加了 Tabscript,这是比特币序数的基础。

3.2 扩容辩论和硬分叉提案

决定比特币发展轨迹的核心争论之一是它的区块大小以及每个区块可以容纳多少交易。这场争论的起源可以追溯到比特币的早期。

3.3 1 MB 块限制的起源

块大小并不总是固定为 1 MB。比特币的早期版本的区块大小在500-750kB之间。这对于初始用户群来说是足够的规模,因为比特币仍处于起步阶段,并未得到广泛采用。

2010 年 7 月 15 日,在一个名为“修复 openssl 链接问题”的看似无害的提交中,秘密引入了 1 MB 块限制。直到 2010 年 9 月 30 日,在承诺“在获得 1 次确认之前不要计算或支出付款”中,这一限制才被强制执行。此上限的引入是比特币版本 0.3.13 版本的一部分。

一种流行的理论认为,比特币的神秘创造者中本聪引入了这一限制作为临时的反 DoS 措施。鉴于比特币仍然是一个新颖的概念,它很容易受到垃圾邮件攻击,攻击者可以用微小的交易淹没网络,从而使区块链膨胀并使其难以管理。1 MB 块大小限制被视为防范此类潜在攻击的措施。

3.4 早期对区块大小的不满

值得注意的是,对区块大小限制的担忧在比特币历史上很早就出现了。0.3.13 版本发布仅两天后,比特币早期开发者之一 Jeff Garzik 就表达了增加 MAX_BLOCK_SIZE 参数的愿望。这一刻通常被认为是区块大小争论的开始。

虽然中本聪引入限制可能是一种保护措施,但即使在早期,随着比特币的增长,可扩展性也将成为一个紧迫的问题。尽管该限制背后的最初目的是确保网络的安全性和稳定性,但它无意中为加密社区中最持久和最分裂的辩论之一奠定了基础。

3.5 展开辩论

随着比特币的普及,1MB 的区块大小开始显示出其局限性。由于交易数量超过了区块所能容纳的数量,交易验证时间增加,导致延迟和更高的费用。许多人认为这违背了比特币的精神——一种快速、去中心化的点对点支付系统。

Bitcoin Unlimited、SegWit2x 等提案被作为潜在的解决方案提出。然而,社区内部存在分歧,不同派别主张不同的解决方案,很难达成共识。这种分歧最终导致了硬分叉,催生了比特币现金和比特币 SV 等新的加密货币,每种货币都体现了对比特币未来的不同愿景。

区块大小的争论凸显了去中心化治理的挑战。虽然它提出了技术和哲学挑战,但它也展示了比特币社区的韧性和活力。当不同派别提出他们的愿景时,权力下放和共识驱动决策的核心精神仍然是讨论的核心。

四、三剑客——BTC、BCH 和 BSV

比特币的进化历程催生了多个分叉,每个分叉都为加密货币的未来呈现了独特的愿景。其中,最引人注目的是三种:BTC(原始比特币)、BCH(比特币现金)和 BSV(比特币中本聪愿景)。这些加密货币通常被称为“三姐妹”,它们具有共同的传统,但具有不同的目标和技术特征。

4.1 比特币(BTC)

作为鼻祖,比特币不仅作为一种数字货币,而且作为一种价值储存手段,通常被比作“数字黄金”。多年来,BTC 主要致力于确保安全性、稳健性和去中心化。

虽然它仍然是最广泛认可和最有价值的加密货币,但块大小仍保持在 1 MB(应用 SegWit 后实际上为 4 Mb),可扩展性通过闪电网络和 SegWit 等提案得到解决。

4.2 比特币现金(BCH)

比特币现金(BCH)的支持者诞生于 2017 年 8 月激烈的扩容辩论中,他们支持链上扩容解决方案。他们相信比特币作为日常使用的交易货币的愿景。

为了促进这一点,BCH 增加了区块大小限制,从 8 MB 开始,并有可能进一步增加。这允许每个区块进行更多交易,旨在提供更快的确认时间和更低的费用,从而使其成为常规交易的更可行的选择。

在撰写本文时,最大 BCH 块大小为 32 MB。

4.3 比特币 SV (BSV)

BCH 社区内的分歧仍在继续,并在 2018 年 11 月的另一个分叉中达到顶峰:Bitcoin SV。BSV 代表“比特币中本聪愿景”,反映了支持者的信念,即他们的方法与他们所认为的比特币神秘创造者中本聪的初衷密切相关。

BSV 在区块大小增强方面取得了积极进展,在成立后不久将区块大小升级到 128 MB,后来完全取消了区块大小上限。BSV 的重点是从原始比特币协议中恢复某些协议功能,并大规模扩展网络以容纳大量交易。

在撰写本文时,最大 BSV 块大小为 4 GB。

这篇关于了解比特币分叉:演变与分歧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/812868

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

PHP: 深入了解一致性哈希

前言 随着memcache、redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取模运

Weex入门教程之1,了解Weex

【资料合集】Weex Conf回顾集锦:讲义PDF+活动视频! PDF分享:链接:http://pan.baidu.com/s/1hr8RniG 密码:fa3j 官方教程:https://weex-project.io/cn/v-0.10/guide/index.html 用意 主要是介绍Weex,并未涉及开发方面,好让我们开始开发之前充分地了解Weex到底是个什么。 以下描述主要摘取于

Java了解相对较多!

我是对Java了解相对较多,而对C#则是因工作需要才去看了一下,C#跟Java在语法上非常相似,而最初让我比较困惑的就是委托、事件部分,相信大多数初学者也有类似的困惑。经过跟Java的对比学习,发现这其实跟Java的监听、事件是等同的,只是表述上不同罢了。   委托+事件是观察者模式的一个典型例子,所谓的委托其实就是观察者,它会关心某种事件,一旦这种事件被触发,这个观察者就会行动。   下

使用WebP解决网站加载速度问题,这些细节你需要了解

说到网页的图片格式,大家最常想到的可能是JPEG、PNG,毕竟这些老牌格式陪伴我们这么多年。然而,近几年,有一个格式悄悄崭露头角,那就是WebP。很多人可能听说过,但到底它好在哪?你的网站或者项目是不是也应该用WebP呢?别着急,今天咱们就来好好聊聊WebP这个图片格式的前世今生,以及它值不值得你花时间去用。 为什么会有WebP? 你有没有遇到过这样的情况?网页加载特别慢,尤其是那

初步了解VTK装配体

VTK还不太了解,根据资料, vtk.vtkAssembly 是 VTK库中的一个重要类,允许通过将多个vtkActor对象组合在一起来创建复杂的3D模型。 import vtkimport mathfrom vtk.util.colors import *filenames = ["cylinder.stl","sphere.stl","torus.stl"]dt = 1.0renW

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展,不仅预训练所用的算力和数据正在疯狂内卷,后训练(post-training)的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法,其中的数据管理风格和规模似乎已经过时。近来,Meta、谷歌和英伟达等AI巨头纷纷发布开源模型,附带发布详尽的论文或报告,包括Llama 3.1、Nemotron 340

了解elementUI的底层源码, 进行二次开发

Element UI 是一个基于 Vue.js 的桌面端组件库,广泛用于构建美观、交互友好的用户界面。要深入理解 Element UI 的底层源码并进行二次开发,你需要掌握以下几个关键点: Vue.js 原理 Element UI 是基于 Vue.js 构建的,因此首先需要熟悉 Vue.js 的核心概念和机制,包括: ● 组件系统:Vue.js 的组件化思想,如何定义组件、使用组件、传递属性和事

【JavaScript】在循环体中了解定时器工作机制

for (var i = 0; i < 5; i++) {setTimeout(function() {console.log(i);}, 1000);}console.log(i);   如果我们约定,用箭头表示其前后的两次输出之间有 1 秒的时间间隔,而逗号表示其前后的两次输出之间的时间间隔可以忽略,代码实际运行的结果该如何描述?会有下面两种答案: A. :5 -> 5 -> 5 ->