区块链的最重要的创新是,它是一种新的数据架构框架和去中心化、去信任化的交易平台,它可以让参与者在没有第三方中介的情况下进行交易。所有的区块链技术都是基于一个可信任的、不可更改的、透明的交易记录账簿,它使用密码学保护底层数据结构,底层存储机制、去中心化操作和使用专有的规则同步。这样一个“数据库”是不可更改的,被所有参与的网络节点共享着,被旷工更新着,被所有人监视着,基本上来说没有特定拥有者,不被任何个体控制。
现在很多企业都在进行一些新概念的试验,它们基本上都是基于比特币、以太坊和超级账簿框架,新的有潜力的区块链平台(像KrypC平台)已经非常多。这些平台都是用各自专有的算法来实现目标,在底层使用不同的数字货币、数据存储机构和发展机制。
由于这些平台内部实现的不同,当下的这些平台在相互访问、修改和互动内部数据结构的时候,它们各自的API显示出不同程度的低效率。这严重限制了开发者从不同平台实现创新的能力。当前区块链的发展状况是,区块链从业者都在专注于实现一个供架构师、开发者测试者和商业用户使用的专一平台,这严重削弱了团体创新的能力,增加了选择一个错误平台的风险,而且重新更换到有潜力的平台不是一件容易的事情。
我的观点是,由于当前存在的挑战和现存区块链部署未成熟,所以目前迫切需要区块链社区往区块链技术标准化方向发展,为应用开发提供区块链技术标准化API。区块链创业公司、顾问公司和提供商必须提供一个有能力的团队,来实现一个这样的区块链底层平台,这个平台不需要重新学习新的API,每次尝试加入区块链新的子系统时不必重写他们应用的底层代码。如果不这么做的话,在区块链技术给企业普及时,还会继续面对低效率、痛苦、质疑和企业的抗拒。
换句话说,区块链技术需要被塑造成面向开发者友好且更容易让企业开发团队接受的技术,这种需求非常急迫。我们要让企业更广泛的接收区块链技术,我们就要实施一种区块链系统,这种系统的开发、测试、生产都采用标准化,这样企业在使用区块链系统时能得到更好的支持和故障维护。
理想上,区块链数据层应该被看做当前关系型数据库的替代者,拥有分布式存储、操作、信息共享的特点。它应该拥有和当前数据层平台竞争的能力,最终实现可以在任何时候代替它们。
区块链要实现替代现存的关系型数据库系统的目标,首先要参考当前关系型数据库的设计,实现标准化。何不基于结构化查询语言(SQL)模型来创建区块链查询语言(BQL)呢?比如,在应用层和区块链底层数据框架之间创建标准化和可重复使用的接口,这样就更加容易理解了。
这就意味着,忽略特殊的区块链解决方案中的底层细节,使用底层数据类型和语法来进行标准化BQL操作。举个例子,最可能的设计是这样,我们需要CREATE、INSERT、SELECT和VERIFY这样的BQL命令,来实现这样的功能:创建区块,把区块插入区块链中(包括达成一致),从区块链中选择符合特定条件的区块,验证区块的一致性。当然这只是一个建议,具体的最终语言标准可能会实施不同的或相似的语句来实现不同的语义。
存储于区块内部的底层支付载荷的语法(如对指定和移动公钥间数字资产的描述)也应该标准化,和BQL命令无缝结合。支持密码学操作和语法,集合验证和授权能力,这些都应该包含进BQL标准。
显然,这些可能性仅仅受限于BQL设计者的想象力和底层开发者工具的复杂度,还需要编译器架构,可以把BQL命令的应用层编译进应用商低级别API中(就像“R”指令或其它的)。
就像现存的SQL语言,BQL在应用中可以使用两种方式,静态的(预先编译过的)和动态的。还应该和当下流行的编程语言绑定,如 Java/JavaScript、Python、C/C++、C#,甚至Cobol等等。
这些是公司化的区块链开发社区快速发展的必要条件,这些让实施BQL的区块链应用更加有竞争力。这些标准化的实施,也可以激发软件开发商们对区块链技术创新的潜能,使他们可以提供基于区块链技术的组件框架和各种相关工业的资源库,这些组件框架和资源库不受制于区块链底层平台。希望区块链产业可以认真考虑,严肃对待,让区块链技术大范围普及。