首页 > 代码库 > 区块链开发技术路线的思考(二)

区块链开发技术路线的思考(二)

在前一篇文章里讨论了基于 Ethereum 和 Hyperledger 开发区块链项目的优缺点。我的结论是明显的,两者志向远大,假以时日或许会一飞冲天,但现阶段的成熟度都还不够。如果你有心现在投入区块链的开发,那么我的建议是,基于 Bitcoin 自建链,同时关注甚至参与 Ethereum 或 Hyperledger 核心项目,帮它们夯实地基。

Bitcoin 无疑是最成熟、质量最佳、讨论最深入的区块链项目,如果按照关注度来算市场份额的话,在区块链领域,Bitcoin 可能三分天下有其二。它目前的正式发行版本是 0.13,但马上就将发布 0.14。不过因为还有若干重大技术挑战有待解决,因此预期代码还会有不小的变动,1.0 版本何时能问世尚在未知。尽管如此,Bitcoin 核心代码的质量已经非常高,相关文档非常完善,区块链的主要思想蕴藏其中,是一座向任何人无私开放的巨大的技术宝库。目前主流的区块链创业项目,仍然是从 Bitcoin 的 Github 代码库 fork 代码,并且加以修改,实现自己的改进。我们不妨称此类区块链为 Bitcoin 派生链。有些派生链是真的有改进,比如 Zerocoin, Emercoin,Counterparty, Omin Layer, Zcash, BitStream 等等,都是 Bitcoin 的核心贡献者和资深密码学家在扎实的学术研究基础上所做的改进项目,能够在某一个或几个方面显著拓展 Bitcoin 的能力。但大部分这个币那个币的项目,其实就是把 Bitcoin 源代码拿来改几个参数,改头换面就拿到市场上炒作了。当然,不是说这种炒作币并无价值,有些炒作币有其特定应用场景,因为某些参数调整之后,确实有利于某些特定市场特定行业的需求。但大多数炒作币从出生的那一天开始就只有一个目的:骗钱。各种骗钱币在市场上此起彼伏,这也是事实。当今区块链的第一大应用,其实就是货币炒作和投机。所以搞区块链的人,实际上要有一定的道德底线支撑,否则很容易走向邪路。

因此我认为今天切入区块链开发的正途,是从 Bitcoin 派生出一个区块链,然后面向具体应用需求,修改代码,突出特色,并且随时准备与其他的相关链联盟,比如形成互为侧链的关系。于此同时,参与整个区块链社群的技术创新和研究,对 Bitcoin、Ethereum 等核心项目进行力所能及的支持和贡献。

说到派生链,这里特别提一下 Litecoin,也就是莱特币,因为它是一个很典型的 Bitcoin 派生币,了解了 Litecoin 的故事,我们就能大致知道 Bitcoin 派生币的路数。

莱特币诞生于 2011 年 10月,当时几乎是 99% 的代码与 Bitcoin 是完全一样的,其唯一重要改进,就是用 Scrypt 取代SHA-256 作为挖矿难题(mining puzzle)。SHA-256 算法非常适合于硬件实现,因此 Bitcoin 火起来之后,挖矿算力迅速集中,到 2011 年下半年,GPU 矿机已经被 FPGA 矿机打垮,而更强悍的 ASIC 矿机也即将问世。这完全违背了中本聪“让每个人可以用笔记本电脑挖矿” 的初衷,也被视为是 Bitcoin 生态系统中的一个始料未及的严重问题。Litecoin 正是为了解决这个问题而诞生的。 Litecoin选择的 Scrypt 算法原本是密码学里的一个 Key Derivation Function,也就是通过一个密钥生成一个或若干的密钥的算法。与 SHA-256 不同的是,Scrypt 的计算速度主要不取决于 CPU 有多快,而取决于内存有多大。对于企图集中算力的矿主来说,他们很容易可以设计专业硬件,在计算速度上碾压普通电脑数十亿倍,但是要堆积其超过普通电脑数十亿倍的内存,那还是很需要花点银子的。因此在 Litecoin 刚推出来的时候,它主打的点就是拒绝挖矿大鳄,让普通玩家可以用笔记本电脑挖矿。就是这一招鲜,让 Litecoin 在 2013 年升值 1,300 倍。但我们需要认识到,Litecoin 没有在区块链研究和应用上面对于 Bitcoin 做出任何改进,更没有跟任何具体行业应用相结合,相对于 Bitcoin,它提供的额外价值很少,因此它的突然成功,更多是炒作的结果,没有实际的基础。人算不如天算,后来专用的 Scrypt ASIC 硬件的还是推出来了,普通人用 CPU 挖矿已经成为梦呓,Litecoin 唯一赖以为支撑的点也非常虚弱了。所以自 2014 年以来,特别是 2015 年初之后,Litecoin 价格暴跌,开发团队活力尽丧,十个月不发布新版本,明显已经心不在焉了。

Litecoin 最火的时候,出现了一大批 Litecoin 的派生币,比如狗狗币 Dogecoin,其派生链数量之多,甚至超过 Bitcoin。那么问题来了,如果我们今天要派生一个自己的区块链项目,是应该从 Litecoin 派生呢,还是从 Bitcoin 派生呢?

要回答这个问题,去追踪一下 Litecoin 自身的代码演进就知道了。Litecoin 最早派生自中本聪时代的 Bitcoin 源代码,Litecoin的原始开发者 Charles Lee 最初可能只是出于研究 Bitcoin 的目的才开启这个项目的。在很长时间里,Litecoin 甚至都没有修改Bitcoin 代码的生成目标,也就是说,你编译 Litecoin 源代码,生成的是叫 bitcoind 的可执行文件。后来 Litecoin 获得了足够的关注,开始独立发展,就这么走了好几年。但到了 2014 年 年初,Litecoin 的开发者发现 Bitcoin 的技术水平和代码质量已经远远超过了自己当时的水平,因此重新从 Bitcoin 中导入全部代码,然后再加以修改。由此可见,Bitcoin 不但是所有区块链项目之母,而且至今也仍然是开发力量最强、代码质量最高的一个。至于为什么那么多项目选择从 Litecoin 派生出来,无非是为了图简单而已,不足为训。

所以结论很清楚,我们今天搞自己的区块链,一定要站在真正的巨人身上,这个巨人毫无疑问就是 Bitcoin。


<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    区块链开发技术路线的思考(二)