解密比特币:Russell Yanofsky拆解古老的加密代码

  要理解Yanofksy的过程分离技术,首先必须明白,Bitcoin Core软件是由许多不同的部分以及两个所谓的“过程”组成的,有些人认为,它们是以一种随机的方式集中在一起。

  据火币区块链研究中心编译,开发人员经常使用“庞大”、“繁杂”和“令人费解”等词来描述比特币之下的代码。

  这些词正说明了理解并运用这些代码有多么困难,而对于一个涉及610亿美元投资的网络体系来说,这并不是一个令人欣慰的想法。这并不是说比特币毫无作用——它确实有用——但代码库的现状确实留有一些让人期待的进步空间,无论是对于希望获得更多灵活性的用户,还是想要改进它的开发人员。

  因此,像代码优化方案隔离验证(SegWit)和所谓的“硬分叉”升级原理之类的变革方案已经引起了广泛关注,并且几位比特币开发人员也在低调地开展工作,以解密比特币的繁杂架构。

  “比特币是一个古老的代码库。随着时间的推移,它改变了很多。面对很多部分的代码,如果我们从头开始写,我们可能会有不同的做法。但由于我们面对的是代码遗留问题,我们必须找到方法来它。”

  要理解Yanofksy的过程分离技术,首先必须明白,Bitcoin Core软件是由许多不同的部分以及两个所谓的“过程”组成的,有些人认为,它们是以一种随机的方式集中在一起。

  第一个过程被称为“bitcoind”,根据Yanofsky的说法,它的组成部分有:点对点代码,用于连接网络中的节点;验证代码,用于检查节点接收的交易和区块是否有效;以及钱包代码,用于存储用户的私钥。

  第二个过程是“bitcoin-qt”,它通过添加一个用户界面来运行所有这些东西,这样毫无技术经验的用户就可以在不使用命令行的情况下运行一个完整的节点。

  Yanofsky认为在某些方面最好将这些代码分开。为此,他创建了一个新流程“bitcoin-walletd”,它将钱包代码从bitcoind中分离出来。并且,从bitconqt删除了所有的代码,仅保留用户界面。

  这样看起来,各个比特币过程似乎在很大程度上已经完全分离了,但在编码术语中却没有。所以,Yanofsky在不同的组成部分之间建立了障碍。

  用户可以像拼图一样移动Yanofsky所说的各个组成部分,可以进行混合和匹配。例如,在没有绑定到节点的钱包中,用户也可以使用钱包,并使用任何比特币节点。

  Yanofsky说,“也许,当你使用的是一个不支持新功能的旧钱包,而你不想放弃它,或者你不想把钱转移走,”把钱包移动到一个不同的节点这一选项可能会十分有用。

  以同样的方式,用户可能希望在不同的bitcoind节点上使用bitcoin-qt的用户界面。

  他说:“你基本上可以在任意一个服务器上运行一个比特币节点。也许你只是想运行GUI来检查它的带宽容量或者它的点对点连接。”

  这为用户创造了更多的选择。比特币爱好者特别关注的是,为什么Yanofsky致力于此。

  虽然他承认他的改变可能会使运行变慢,或者让开发人员更难调试代码,但该项目得到了GitHub平台上一些Bitcoin Core开发者的支持,其中包括运行长官Wladimir j. van der Laan和开发者Daniel Cousen。

  尽管Yanofsky说他几乎已经完成了主要升级组件的代码,但在正式添加至Bitcoin Core之前还需要做很多事情。

  由于一些开源的比特币开发人员必须在添加之前审核每一个代码变更,并且具有审核代码变更的专业知识的开发人员数量有限,所以审核过程可能会很漫长。

  Yanofsky还希望在其他方面进行改变,比如Cory Fields的点对点代码组件和他在Chaincode的同事Matt Corallo的钱包代码变更,这将比他的过程分离更重要。

  Yanofsky说:“现在,重点肯定不在这个领域,我们现在最优先要做的就是获得更好的SegWit支持。过程隔离这一特性还需等待机遇。“

  尽管目前还没有被列入优先考虑的名单,但这项工作仍将是一个很重要的改变,正如Blockstream首席技术官Greg Maxwell对Yanofsky的Github所做的评论: