2015这漫长而炎热的夏天,已经暴露了一些比特币社区,惊人的东西:很多人对于块链算法如何实际运行的技术原理,实际上是一个奇怪的。
最终,Bitcoin.org和比特币(Marquardt迈克尔),比特币,禁止所有关于XT的讨论,并威胁要从文本服务的使用消除比特币的官方网站的使用。他的理由是,XT的比特币是一个副本的小屋,因为它引发的硬分割。另一方面,他认为,“软软”(叉)是完全可以接受的。
这一立场,从技术角度看,根本就不站,在这篇文章中,我将解释原因。
并;
软、硬枝
并;
你可能看不到这2个字在比特币论坛上,在我的随机与比特币爱好者们聊天,发现很多人都会在背后的背后。我见过的人谁不明白的含义的话,一次又一次,但我认为他们应该清楚。
那“软分叉”是相对较新的概念,这并不奇怪,似乎已经在IRC的现行汇率,而不是BIP或其他规范性文件。奇怪的是,即使是开发商也会错误地定义这个词。
硬叉,是当比特币协议规则变化时,老节点拒绝接受新节点所创建的情况。违反这些规则的人将被忽略,矿工们将按照他们的规则,在最后的见证人的见证下创造出一块块。
软分叉是当比特币协议规则变化时,老节点没有意识到规则是不同的,他们会遵循改变规则集合,继续接受由块创建的新节点。矿工们可能在一个块上工作,他们根本不理解,或者已经被证实了。
这通常被描述为“向后兼容”的一些核心开发人员,但这是不正确的,可能会导致混乱。向后兼容性是指接受数据由旧的软件或代码生成新的软件,如Windows 10可以运行XP的Windows应用程序,这是向后兼容。所需的双叉类型是向后兼容的,或新的节点是无法验证的块链从零开始。
正确的说法应该是向前兼容的:旧的软件继续接受新的软件所产生的数据和代码。当你保存一个单词2013的副本时,你仍然可以用2011个单词来打开它,这是向前兼容的。
值得一提的是,在从自己和不使用“分叉”这句话,大概是他以前从来没有遇到过的分岔,分岔的概念软不在吗?,对,因为这个概念本身是一个杰出的缺陷:在一个正常的比特币网络,软叉应该永远不会发生。
这似乎是一个大胆的命题,让我们进一步分析它。
并;
你为什么说软叉是坏的?
并;
有可能是老软件,继续处理数据,而不需要升级的情况:为什么你要它?现实是,软件工程师们都喜欢向前和向后移动,如果你的新应用程序和旧版本的程序可以操作,这将是一个双赢的局面。
向前兼容是比较常见的比向后兼容,因为如果你添加一些新的功能,你的文件或协议,旧版本的软件是不能够理解它。有时候,你可以让新功能是可选的:意味着老软件忽视了新功能是好的,这就是所谓的功能退化,这是一种流行的技术,特别是当网站已经使用了新的功能,和一些用户希望使用旧的浏览器访问。
向前和向后兼容的软件工程,它已被广泛使用,它是什么是不同的?原因很简单:
向前兼容,将使整个目标运行一个节点故障。
原因很容易解释,XT /核心的两个版本的下载,以及每一块的处理,我们必须从创建进程的开始,目的是做的特殊货币块链审计过程。每增加一个数字,并且他们检查每个签名。当审核完成后,您可以确保使用编写到该软件的一般规则。
这是比特币到中心的一个关键部分:使用你自己的副本的总分类帐和计算机计算,然后根据总分类账,只接受付款有效的比特币是你在增强比特币的关键经济政策。
这种情况很简单:没有人,甚至大多数有多数的工人,可以被欺骗,以接受违反规则的钱。
或与# 8230;与# 8230;他们会吗?
这是一个软叉的问题。
在软的,协议的变化是做好准备的,在本质上是有效的,以陷阱的旧节点相信某件事是有效的,但它可能不是这样。
这里是一个比喻,认为大型公司与核数师团队和交易团队。交易员要做一个新的交易,但公司不允许:审核人员会执行公司的政策,检查哪些交易员。和改变政策可能是一个非常缓慢的工作。突然有一天,一个交易者,灵感,“嘿,伙计们,”他说。我有一个想法,我想提交一些衍生品交易,我打算把它写在一张纸上,当你看到它,它看起来像是一个正常的交易,但事实上不是,核数师没有找到!
核数师,它是运行的人的全部节点,和服务,交易商是那些谁想要改变规则,不管这个规则变化是否是一个好主意或不,事实上,这里是不相关的:重要的是,他们交叉检查每笔交易,但他们的计算可能会得出错误的答案,因为他们不理解交易的真正本质。
这项技术是如何工作的?我们可以看一个比特币的模型称为P2SH,P2SH是一个非常有用的模型,它可以使多个签名更容易使用,但在块链会看起来很奇怪:
https://blockchain.info/tx/f837ca5c1a15fa6c2e5c7380386bacba10e936fe8625e12d9fa6c177a8f605c1
OP_HASH160 6af7caf9b09224af8a171318f69d254c1756e54e OP_EQUAL
这是一个比特币的脚本,意思是:“谁知道密码可以把这个钱花谁”,翻译过来就是“谁知道密码,可以拿这笔钱。”
问题是它不安全:因为没有签名,所以当你广播一笔,一笔交易,提供给任何人“密码”,其他人也可以输出交易,因为密码现在打开了,所以这纯粹的土地变成了一场比赛,看看谁先传递给矿工。
P2SH是可行的,因为比特币协议进行修改,其中包括一个新的规则:当你看到其实输出脚本,上述形式,不要把它当作一个脚本,但一直是一个特殊的方式:密码其实是“真实的”。所以P2SH实际上是安全的,别担心。但为什么要用这种迂回和奇怪的方式呢?
你猜到了,软分叉是问题。这种结构的设计一直被认为对于不懂规则是有效P2SH老节点。如果有一个协议,把钱花在比特币规则的旧版本,但不满足的P2SH新规则,审查人员无法对此进行验证,将计算正确,不正确的分类。
然而,为了防止这种情况的发生,是你第一次运行一个完整节点的全部原因!哦
并;
发生了什么事?
并;
让我们想象一下,在一个不同的方式:通过硬P2SH分裂,脚本会是这样:
OP_HASH160 6af7caf9b09224af8a171318f69d2... OP_EQUAL OP_RUN
注意最后的op_run:这是一个操作码,不存在于当前的比特币的指令集。正确定义,脚本将是这样:
OP_HASH160 6af7caf9b09224af8a171318f69d2... OP_EQUAL OP_???
当他们到达的时候????一,他们会停止和拒绝交易和阻止,因为他们会意识到,他们不知道什么交易手段。
我应该指出的是,有一个相对的建议P2SH目前的做法,即op_eval,是非常令人兴奋的,我不记得这场辩论的细节,我不想在这里重复一下。这只是一个例子。
好的,所以你的节点已经拒绝了一个块,因为它不理解。怎么办?在我们公司,核数师会打电话给首席执行官(即你),做出决定,你是决策者。在比特币的情况下:你会被一些方式提醒,比如短信或电子邮件,然后你就必须做出决定。你可以和# 8230;
- 阅读有关的规则,然后你认为它的确定,然后升级和继续。
- 阅读有关的规则,然后你认为你不能,需要更多的考虑。
- 很显然,你要相信任何你无法理解的脚本输出,如果你觉得该节点的正常运行,更重要的比正确的审计结果,那么你可以去这样做。
最后的选择是有风险的,但你会发现,软叉已经发生!不同的是,你被明确要求,你的选择不会影响其他人。你只会冒一个错误的帐户。比特币核心和XT的比特币不支持第三的选择,但如果有人想,给它一个开关使它容易启动。
我的观点?知识就是力量。当你知道规则已经改变时,你可以使用这些信息来更好的决策。和软叉,你将不知道的规则已经改变,似乎是在盲目飞行。
并;
选择
并;
最近,Bitcoin.org已经采取了新的政策,它说:
争端很难分割对比是一件坏事。在最好的情况下,一个有争议的硬分公司会做出失败的选择,感觉有权选择被剥夺。而最坏的情况是,它将使比特币的价值永远不会失去它的价值。
这是一个非常奇怪的说法,因为这意味着比特币的转型,而不引起所谓“选择被剥夺”的可能。
在比特币的任何变化,都被大多数人接受改变的规则,它是这些人的权力,谁不想要改变。硬或软的,软的分支,无论是哪一种技术,如果交易使用新的规则,那么它将进入一个广泛的传播,那么迟早你会收到付款的钱,并追溯到一个新的交易规则。然后你有2个选择,你可以验证新的规则,或不验证。而不是验证的问题是,以减少您的安全:这就像是削减你的脸。因此,在实践中,所有的人都会选择升级。多数人不同意的软,和大多数人不同意硬拆并没有什么区别,如果你不喜欢新的规则和# 8230;与# 8230;这是一个坚定的选择。
我们可以看到,P2SH本身证明了这一点,而且这种竞争已经由一些工人和开发商的支持,但最终接受我们的当前版本的。在这个问题上,他们没有选择,或者,他们选择接受改变,并继续使用比特币,和一个软叉是没有区别的。
因此,在硬、软与分叉的问题上,这是一个伟大的个人权利的斗争,在技术上说是不合理的。他们是完全不相干的。
并;
矿工和商人意味着什么?
并;
这篇文章有点长,所以我会尽量简单的描述它。如果你是一个矿工或一个商人,你应该选择改变的方式,理由如下。
商业:你的想法是,这笔交易是尽可能多的验证,你希望它更快。这意味着你的节点需要运行的主要规则集,如果你被留下,你可以被欺骗。如果你不是主要的外链,你需要知道的很快,然后你就要忽略这个交易你无法验证的。
请注意,我提出了一些问题的核心开发人员,他们调整的代码,这使得一些软,更接近于硬叉:核心将忽略这些交易,似乎使用未知(这是我们想要的!)8230、#;直到他们出现在块。因此,这一调整是否会在很大程度上取决于你的时间。
矿工:如果你是矿工,大多数人都选择了这一规则,你就会被这一链条的分叉和失去的经济回报所使用。然而,努力或好。首先,它是可检测的,所以一个正确的配置节点,通过电子邮件/短信/电话,可以让你知道,你的节点是过期的。它还可以自动关闭采矿作业,那么你就不会浪费资源去挖掘无效的块。第二,如果你认为对方的外链是错误的,那么你认为他们会同意你的观点,你可以继续尝试去挖取弱链试试他的运气。然后在某一个时间,每个人都回到你的外链,那么你将得到所有其他矿工,可爱的Coinbase。当然,这个策略是很危险的,我不会推荐。但从技术上讲,有可能。
在一个软叉的情况下,你会挖掘你认为是一个有效的块,但它实际上是一个块的其他矿工。然后,当他们在你的街区,你认为它只是普通的坏运气,并试图建立一个无效块和# 8230;与# 8230;然后再次块。如果你只是一个不产生阻碍的小矿工,你需要了解它,它可能会让你很长时间。但你的口袋,它只是一个洞。
并;
硬叉会毁掉比特币吗?
并;
不,如果有这样的情况,那么从字面上讲,任何人都可以用不同的规则来挖掘一个或2个区块来杀死比特币。块链算法的根本目的是确保它不会做任何破坏性的事情。
据认为,争端的努力将导致比特币的价值损失,一个Bitcoin.org政策理念。要求任何变化的货币需要100%(或99%)的人同意,或至少有一个核心开发商的比特币身份,这意味着任何人都可以维护整个社会,他们可以通过拒绝同意,除非他们得到他们想要的,没有人是如此的基本设施。如果它像比特币,它将永远不会发展,最终将成为不值得一发。
我
正文:HTTPS作者:/ /中。COM / @ octskyward / on-consensus-and-forks-c6a050c792e7
:迈克赫恩
编译:洒脱如
责编:洒脱如
释放源(翻译):巴比特信息
本文是独立于作者的观点,不代表巴比特的位置。