在从事开源工作的10多年中,我参与了一些具有创新思想的小型项目,这些创意后来发展成为具有牢固社区的大型项目。我还见证了功能失调的社区如何从项目中汲取能量。
我最近还通过编写项目并为项目做出贡献而活跃于区块链。我注意到,区块链项目就像具有开放开发和开放业务模型的初创公司。因此,要成功,区块链初创企业必须学习如何以开源方式构建社区。
区块链的基本前提之一就是去中心化-将控制权和数据回馈给用户。没有透明度和开放性就不可能实现权力下放。如果区块链的源代码是封闭的,则与昨天的集中式封闭系统没有什么不同-除非它是开放的,否则无法读取和确认系统正在执行其应做的工作。
即使是试图避免开源的项目也必须承认代码必须处于最低水平。例如,HederaHashgraph(这不是一个区块链项目,而是一个类似的软件类别)将不会自由分发用于fork的代码,而是将其打开以供审查。根据开源倡议的定义,我们是否可以将其归类为开源尚有待商bat。底线:如果源代码不可读或不可验证,则在不受信任的区块链平台上运行某些内容是没有意义的。
区块链是一个共识机制,这意味着这种参与者必须是透明的,也就是说,这种运行的代码必须是开源代码,所谓开源代码,就是代码都是可见的。
每个人可以编译并执行自己编译的程序,也意味着每个人都可以修改其中的代码并运行,现在机制下,可以做到不管如何修改代码,只要这些修改代码的人没有超过51%,那这种修改是没有意义的,反而浪费自己的算力。
从理念角度去看,将区块链项目比作机器的话,本身的工作机制是透明的,是一个可以信任的机器。对此是这样理解的,第一,开源是区块链项目的一个必选项,而不是可选项,不论是公有链还是联盟项目都需要进行开源;第二,开源和交付源代码,是两个不同的概念,交付源代码并非是公开、透明,大家共同参与的一个过程。
比如在以太坊中,曾经因为在其平台上运行的某个平台币,存在漏洞,需要进行修改,这种修改是直接体现在代码上的,阅读代码的过程中,就发现有多处出现该币的相关代码,就是用于处理一旦碰见了这个问题,节点应如何处理,这些处理方法都是开源代码里写的,每个人都可以阅读,如果节点的负责人认可这种解决方案,他就会运行这个程序,相当于支持这种代码的决定,事实上区块链也就是通过这种机制来实现。