CoinGeek社论关于比特币的开源

本文首次发表于克雷格·怀特博士(Dr. Craig Wright)的博客,https://craigwright.net/

CSW483x290

我们对开源软件的真实需求被一些利益集团的宣传(政治作秀)所左右。我把比特币作为一个开源的软件来创造,并非因为我认为软件应当是免费的。相反,作为眼下最有资质的、最顶级的安全专家之一,我非常了解开放式算法中加密的基本规则。我创造比特币的方式是为了让它更安全。

从1883年的奥古斯特·柯克霍夫(Auguste Kerckhoffs)开始,在通信协议的编码分析和保密领域就形成了一套开放式分析的原则。柯克霍夫原则(Kerckhoffs’ law)指出,一套设计良好的加密系统,应当只有密钥是需要保密的,而加密系统的算法部分可以不需要保密。与之相反的,则包括那些受所有权保护,或是通过隐晦方式确保加密的软件。说得通俗一点,这些都是无用的偏方。由于缺少公开的评估,这些软件产品的安全漏洞使攻击者能够对系统造成损害。

不幸的是,许多政治作秀颠覆了公众对开源软件的需求的认知,让人们觉得开源只跟免费的软件有关。对于软件来说,免费和开源有一个很大的不同。开源意味着任何人都可以分析软件的源代码,确保在接下来数年中该软件系统的完好性。那些参与政治作秀的人用一种极权的方式,在该系统的各类著作权或所有权受到攻击时,颠覆了这一本质。(译者注:这些人称,代码公开容易导致被侵权,所以开源并不好,而实际上开源不代表免费,而是会使代码更安全)

如果软件的作者决定自由地发布软件,那么把它作为免费软件,这么做仍是软件作者的权利。但是很重要的一点在于,通过这种公开的方式,软件可以经过更多的分析,漏洞也将更快被发现。我曾经为好几家公司工作过,其中不乏一些反病毒公司。这些公司雇佣我,对自解压安装包和恶意代码做逆向工程。源代码本身不可能被完全隐藏。因此,在不开放源代码时,不仅自己的开发效率会变低,也并不会组织他人对系统漏洞的分析,反而这会更加激励攻击者。当代码公开可读时,用正当手段对代码漏洞来进行分析才是最有效的。

当代码作为专有系统的一部分来发布时,由于人们看不到源代码,这个系统就将会是脆弱且易受攻击的。并且,开发者需要对更多的东西进行保密,才能确保系统的安全。比特币则是一个开放的协议。基础的系统需要具备开放性,这是为了使它能经受广泛的分析,并让人们在其之上构建更多的内容。开放并不意味着它是非商业性的。相反,它允许商业组织参与构造应用。

柯克霍夫的原则并不局限于开源软件,因为它在软件得以被实现之前就出现了。相反,它要求算法是公开的,并且它可以被分析。话虽如此,为了使安全性独立于密钥的保密性,我们需要允许同行审查。密码学很难。比特币本身也很难。几乎每一个被创建的密码系统都是不安全的,并且会有漏洞。为了解决这个难题,我们需要密码学社区来分析系统,并发现漏洞。如果无法轻松地获取并审计代码,我们只会碰上那些受到激励来恶意攻击我们代码的人。移除源代码并不能阻止这类个人和组织,它只会让使用正当手段的分析师更难保护系统。一个系统拥有的秘密越少,它就越安全。

比特币设计的初衷不是为了成为免费软件,而是成为一种开放的协议,任何组织都可以在此基础上,构建和创造商业应用。它的设计遵循开源软件的使用方式。比特币绝不是反资本主义的。比特币与法律一并运作,并且不允许反政府和无政府主义者眼中的崩塌社会的存在。

您是比特币新手吗?请查看CoinGeek的比特币新手入门栏目,这是了解更多关于(中本聪最初设想的)比特币与区块链的终极资源指南。

更多社论新闻

社论十二月 09, 2022
代码真的就是法律吗?

代码真的就是法律吗?

“代码即法律”这个观点仅仅源于一小部分开发者或企业试图通过一种从未存在过的去中心化的错误谬言来施加控制。代码不会自己编写出来。更重要的是,代码可以被更改。

社论十二月 02, 2022
研究者的作用

研究者的作用

在研究者于博士阶段的学习过程中发展自身时,找到能够帮助提供反馈和支持的学术同行支持小组是至关重要的。

社论十二月 01, 2022
宪法的设计方案

宪法的设计方案

尽管美国宪法的基础及其《权利法案》为人民的自由与保护提供了坚实的基础,但这样的法案也不可能是为了预测未来而创造的。