给本体ONT技术社区的第一封公开信-涉及到不少区块链技术知识
共识是区块链的核心机制,在一系列的区块链的发展历史当中,PoW/PoS/BFT等系列的共识算法都在各自的应用场景发挥了不同作用。在本体的第一阶段,结合该阶段的业务特点,本体会以BFT系列共识为基础。在第一阶段的框架中,包括了一个稳定版的dBFT模块,并有一个全新的共识算法模块VBFT,这是一个结合PoS、VRF(Verifiable Random Function)和BFT的全新共识算法模块,第一阶段的测试网也会以VBFT为主进行测试。VBFT可以支持共识群体的规模性扩展,通过VRF保障了共识群体生成的随机性和公平性,同时结合BFT可更快速地达到状态终局性。通过VBFT共识,本体也是首批将VRF集成实现到公有链中的项目。
------------------------------
本体已经对第一批项目进行开源,同时技术社区也同步启动。在此,本体团队给技术社区准备了第一封公开信来描述本体的第一阶段项目结构,以及本体团队对基础性公有链设计和未来战略方向的思考,同时也邀请技术社区共同投入区块链发展的事业当中。
本体是一个规划较为庞大的基础性公有链,但我们不会采用一个封闭开发集中推出的模式,而是以开放、开源的模式与技术社区共同进行快速迭代,也可以较快地将其逐步应用到不同的场景中,并且在应用中不断得到反馈并加强实际应用所需要的功能。因此我们会采用多版本快速迭代的形式,不断推进基础链和相关应用服务的体系。在第一阶段我们会开放开源第一批相关项目,其中包括已接近完成第一版并进入第一版测试阶段的项目,也包括一些在设计开发中的项目,尽早地进行开源模式开发可以让技术社区尽早地选择各自感兴趣的项目进行参与。还有一部分在规划设计阶段的项目在后续会持续开源。在第一版中,包括了以下主要项目和内容。
Ontology
本体的区块链框架,包括完整的分布式账本、P2P网络协议、模块化的共识协议组,模块化的智能合约机制等等。
Ontology DID (Distributed Identity Framework)
ONT ID是一个去中心化的身份标识协议,基于W3C的DID规范。协议支持各类实体——包括人、组织机构、物品及内容的分布式和多样化的确权、识别、认证等协同服务。ONT ID为每个主体建立基于密码学的数字身份,使得数据授权、确权自主化,使身份和数据真正变为用户可以掌控的资产。
ONTO
ONTO是基于本体的综合客户端产品、区块链搜索引擎和区块链体系的入口。ONTO将帮助用户实现包括数字身份管理、数字资产管理、分布式数据交换等综合性功能。ONTO将数字身份与现实身份进行映射关联,用户可以利用这款产品建立自己的数字身份和多维的身份画像,通过密码学算法实现隐私保护。ONTO可以安全可靠地管理数字资产,并将其应用到各种场景中。同时,ONTO通过授权体系和加密算法建立一个对用户来说可靠的、可掌控的数据交易体系。未来,基于ONTO的数字身份和数字资产,将进一步支持各类社交场景和协作需求。
Ontology WASM
基于Go语言的WASM虚拟机。
Ontology Java SDK
本体Java SDK,它是一个综合性SDK,目前支持:本地钱包管理、数字身份管理、数字资产管理、智能合约部署和调用、与节点通信等。未来还将支持更丰富的功能和应用。
Ontology TS SDK
本体TypeScript SDK(支持JavaScript),功能与Java SDK保持同步。
Ontology Crypto
各类密码学基础功能组件。
Ontology EventBus
本体的事务总线模块,可以用于支持区块链底层或其他基础模块的功能服务化协同。
Ontology FPGA
各类计算密集性逻辑的FPGA实现。
Ontology DDXF
去中心化数据交易应用框架 Decentralized Data eXchange Framework。DDXF通过一致性账本、智能合约技术支持数字交易在去中心化模式的点对点信任。同时,ODXF提供了一系列密码学组件,上层应用可以非常方便地实现版权控制、契约式数据分享等场景需求。本体应用开发者可以基于DDXF开发满足各种细分场景需求和各具特色的去中心化数据交易应用。
Ontology Oracle
预言机功能支持对区块链系统接入第三方可信数据。
Ontology OEPs
本体的各类技术发展或改进提案。
各项目的具体内容可以参考在GitHub上的相关文档。在介绍第一批开源项目概况外,我们也想和技术社区沟通我们对公有链设计和技术发展的一些研究和思考,并和技术社区一起推动公有链基础体系的发展。
本体公有链设计的思考
账户体系
区块链的账户体系主要有两个类别的方向,以资产为主的账户体系(如UTXO),以使用者为主的账户体系(如账户余额型),这两种体系各自优势的分析已经很多,在此我们也不多做阐述。在我们团队之前的很多落地项目中,UTXO体系已经稳定运行在了不少项目中。这次的第一版,我们用了账户余额型的智能合约资产来实现ONT/ONG的相关管理,这是因为主要考虑到几个点,包括合约资产可以更好地与其他智能合约进行业务协同,此外,在与本体的DID体系进行结合应用时,使用者账户体系模式在整合上也更自然顺畅。当然,在本体的区块链框架中依然会保留UTXO的模块功能,这样在本体链网不同的业务链当中,可以根据特定的需求*选择不同类型的账户体系。
共识
共识是区块链的核心机制,在一系列的区块链的发展历史当中,PoW/PoS/BFT等系列的共识算法都在各自的应用场景发挥了不同作用。在本体的第一阶段,结合该阶段的业务特点,本体会以BFT系列共识为基础。在第一阶段的框架中,包括了一个稳定版的dBFT模块,并有一个全新的共识算法模块VBFT,这是一个结合PoS、VRF(Verifiable Random Function)和BFT的全新共识算法模块,第一阶段的测试网也会以VBFT为主进行测试。VBFT可以支持共识群体的规模性扩展,通过VRF保障了共识群体生成的随机性和公平性,同时结合BFT可更快速地达到状态终局性。通过VBFT共识,本体也是首批将VRF集成实现到公有链中的项目。
同时本体的区块链框架后续还会加入更多不同类型的共识模块,以支持链网中不同业务链的定制需求,除了BFT系列的共识,团队还实现了PoW为基础的共识模块,后续会逐步放入开源库中。另外还加入了一个方便开发测试的Solo空共识模块。
对于共识机制的发展,跨链共识是一个重要的方向,这部分本体团队也做了较多的研究思考,这部分会在后续的跨链部分做描述。
智能合约
智能合约是区块链底层的重要模块,本体实现了模块化的智能合约机制,可以灵活同步支持不同的智能合约组件。
NeoVM in Golang
本体实现了完整的Go语言版的NeoVM, 在智能合约开发可以支持C#, Java, Python, JS等多种语言,并带来了新的智能合约开发IDE, 后续本体团队会和NEO团队持续协作,共同推进NeoVM和技术生态发展。
Ontology WASM
Go语言版的WASM虚拟机,会完整实现WASM的技术规范,并基于区块链的实际应用场景进行持续优化,以满足部分需要用到基于WASM业务逻辑的智能合约迁移与实现。可支持的智能合约开发语言包括C/C++, RUST, go等。
高性能
性能是区块链3.0致力于解决的问题,本体通过框架,算法,实现各方面的优化,整体性能已经有了较大的提升,能够提供行业领先的性能指标。本体的BFT系列的共识算法(dBFT, VBFT)已经在不使用并行和Sharding的情况下达到了数千TPS的较高性能,但对性能的追求是持续的,因此,本体也会将在几个大的方向上进行持续的探索和性能提升的研究与实现。
并行处理
区块链框架的并行优化可以在业务层,事务层,账本层等多个层次进行。很多链上交易是互不相关的,他们可以在链上被并行地处理,它的难点在于如何更好地跟业务结合,对交易进行合理分组和并行处理。在此,本体结合账户体系和智能合约依赖关系分析,对链上交易做相应的分区与并行处理,在很多处理密集型的场景下,获得较好的性能提升。另外,通过引入事务总线(Event Bus),本体的交易处理流程中各个模块实现了微服务化,实现了多层次更细颗粒的并行化,而且可弹性地进行性能提升。
可扩展性Scalability
分片Sharding、Sidechain侧链、State-channel状态通道是目前在区块链领域对扩展性讨论得比较多的领域,本体团队针对这些领域也做了大量的学术研究和很多的细化思考和设计。通过研究和方案分析,以及与相关专家的深入探讨,初步判断目前能够支持通用业务的可扩展性技术方案仍处于一个探索期,在一些Sharding的应用实践当中,在存储分片和交易分片上出现了技术突破,但是在状态分片等核心领域上依然面临不少挑战。此外,若将分片方案和状态通道方案应用在公有链中,很多设定的经济激励模型也会在实际运营当中带来很多挑战。
本体团队在做了深入的研究探讨和设计讨论后,选择优先开展子链-侧链、存储分片的研发,未来在公有链上全面引入状态分片的方案需要更多的设计尝试与机制试运行。本体在Sharding功能的发展上也会本着务实的态度,逐步在TestNet中测试多种对比方案,同时也积极进行设计与研究,用逐步试用的方式来推进。但也要认识到,行业对Sharding方案的研究依然处于一个探索期,还没有一个通用的完备方案,所以应该稳步推进。
(PS: Sharding概念最早比较完整的阐述是由以太坊团队带来的,现在很多不同项目先于以太坊在推进Sharding方案,许多人认为以太坊显得落后了。但经过我们的深入研究和专家讨论,认为在把Sharding应用到规模化公有链的研究中,以太坊团队依然是目前各方面考虑得最深入的——以太坊团队也认为公有链的规模性Sharding应用方案仍需要更多的深入研究与实验)
FPGA
通过硬件加速,计算密集型的业务逻辑会有很大的性能提升。本体在对相应的硬件加速技术手段作了研究和对比之外,重点考虑了GPU和FPGA方案,最终计划在第一阶段启动本体的FPGA的硬件加速开发。在第一阶段的FPGA开发当中,我们首先是支持核心的签名验证功能,包括了ECC椭圆曲线验签和支持国密算法的sm系列验签。之后的中长期会进一步将通用化的密集计算类业务逻辑用FPGA进行支撑,以获得更快的计算性能提升。FPGA的实现将对本体链网中的某些高性能业务链,或引入超级节点机制的主链带来帮助。
跨链
跨链是目前技术发展的热门方向,大家也进行着各种不同的跨链协议的讨论和比较。我们对跨链的思考是,跨链不是仅由一种通用协议支持的通用性业务,而是有不同协作层次和场景的协议群,跨链业务也很难通过一种协议解决所有的应用场景。基于这一认识,我们对跨链做了多个初步层级划分:
业务层跨链: 如链间的账户体系的映射,数据的交换等等,可以在业务层松耦合地进行跨链的业务协同。在这一层本体会采用本体DID协议、分布式数据交换协议等来支持跨链协作,并在后续根据业务需求持续增强业务层的协作协议。
资产层/事务层跨链: 涉及到数字资产的跨链交换或跨链事务协作的协议,这一层跨链也可以用多种不同的协议来来完成。这一部分本体会先实现一个不依赖于第三方的跨链资产交换和事务协作协议,这也是NEOX的核心协议。同时也会跟踪研究各类得到实践验证的跨链协议,维持和其他跨链协议的兼容,扩展本体使用者的选择。
共识层跨链:需要在共识机制的层面进行跨链写作,进行互相的共识确定性的背书,以及互相的共识流程的集成或整合,这是一个更深层次的跨链机制。在本体的第一阶段,本体会完成基于本体同构链的跨链机制。并在第二阶段在测试网进行异构链共识跨链协议的测试与实验。
在本体的链网中,跨链不是由单一协议完成的,而是在不同层级,结合具体业务的需求,使用不同的协议群完成的。本体也持续地在不同层级提供更多的跨链协议选项,让使用者有更多的灵活选择。
稳定的价值计量体系
区块链通过为其他非区块链业务系统提供区块链服务而创造价值。要更好地服务其它业务系统,我们需要为区块链服务定义一个相对稳定的计量体系。由于区块链系统的特殊性,如何实现稳定的费用计量体系是目前所有区块链系统都面临的一个挑战。在这方面,本体也基于自身的双Token机制启动了对稳定的服务费用计量的探索研究,同时也在研究当前已有的各种稳定价值计量设计机制,因为目前还没有已经证明成功运行的稳定计量机制,本体会进一步跟踪这部分的研究与设计,并与社区及第三方合作团队开展共同研究合作,并在合适时机在测试网进行测试实验。
平台治理的技术方案
区块链平台作为技术结合人文管理的产物,在使用的过程中必然遇到实现缺陷或者设计时预设场景之外的问题。区块链的方案需要承认这类问题并且提前加入发现问题、解决问题的框架。这个框架包含网络异常情况的判断,解决方案的智能建议,问题升级,快速协调权益人,以及网络修正方案快速实施等模块。
一方面,快速发现问题,尝试自动修正,解决问题。
另一方面,任意区块链平台使用者或权益人发现紧急问题,快速协调全网权益人,快速达成一致,快速解决问题。
突发事件可能造成经济损失,如何进一步的减少、避免甚至挽回这部分损失,本体正在持续的进行探索和研究。
区块链的治理和运营是区块链平台设计的一个重要部分,必须是可描述、可量化的,而且可以代码化的。代码化的治理方案以合约的形式运行在区块链网络上。区块链的治理主要是去中心化治理,去中心化治理通过共识体现。治理合约主要通过“共识管理合约”呈现。权益人通过共识管理合约管理共识网络。
链上配置更新。共识管理合约构建共识配置,并在链上完成更新。
当出现紧急情况的时候,通过预设治理框架,可以快速协调权益人,一旦达成一致,即刻解决。
信任协作平台
在区块链平台走向实体应用的支持时,只有底层区块链在数字世界的支持是远不够,在基于技术带来的信任之外,要进一步集成现实世界中法制、社区等等带来的综合性信任,这样区块链的业务流程才能更好地与实体的业务流程融合。本体把这一层基础平台称为分布式信任协作平台。
分布式信任协作平台由一系列支持数字世界与实体业务融合的通用性模块组成,如分布式身份管理框架、分布式数据交换协议、分布式社区框架、分布式声誉评价体系等。在第一阶段,本体会首先推出分布式身份管理框架(ONT ID)和本体分布式数据交换协议(ONT DDXF)两个通用模块。
分布式身份管理框架 (ONT ID)
ONT ID是一个去中心化的身份标识协议,基于W3C的DID规范。协议支持各类实体包括人、组织机构、物品及内容的分布式和多样化的确权、识别、认证等协同服务。ONT ID为每个主体建立基于密码学的数字身份,使得数据授权、确权自主化,使身份和数据真正变为用户可以掌控的资产。ONT ID本身不收集实体数据,而是身份验证与数据信息的连接器,
分布式数据交易协议 (ONT DATA)
针对中心化数据交易的痛点,如数据缓存、隐私数据未经授权、数据版权保护等问题,本体提出分布式数据管理协议ONT Data,并基于此协议推出去中心化数据交易应用框架 Decentralized Data eXchange Framework。DDXF通过一致性账本、智能合约技术实现数字交易在去中心化模式的点对点信任。同时,DDXF提供了一系列密码学组件,上层应用可以非常方便地实现版权控制、契约式数据分享等场景需求。本体应用开发者可以基于DDXF开发满足各种细分场景需求和各具特色的去中心化数据交易应用。
应用层产品
本体聚焦的是提出基础平台,为不同行业的各类应用提供基础服务,因此本体在应用层的产品服务会以各行业的合作伙伴的应用为主。此外,本体会提供一部分通用性的产品进行基础支持。
除了底层的区块链平台和上层的分布式信任协作平台,本体还会在应用层提供系列通用型的应用服务,最基础的服务是一系列的API,可以支撑不同的行业应用,基于本体API可以快速地集成本体区块链服务,开发出各类定制的业务场景和业务应用。此外,本体也会提供一些通用的应用服务,在第一阶段包括了一个通用化的客户端平台(ONTO)集成了资产管理、实体身份管理、数据协同管理等等通用性的功能。
此外,下一阶段还会推出本体信任搜索引擎(Ontology TSE), 可以在一个入口快速地检索本体网络中的人、财、物、事和各类服务,并对搜索结果进行快速自动化的真实性验证与
相关服务调用。
在后续本体团队及合作伙伴会持续推出各类服务层应用,也欢迎技术社区共同来扩展更多的分布式应用项目。
技术社区建设
技术社区是公有链项目的核心力量,本体在技术社区的激励计划中,设置了10% 的ONT 用于技术社区的激励,这是目前公有链项目中技术社区激励的最大比例。随着本体第一批项目在GitHub上开源,技术社区也正式启动了。无论你身处全球的任何地方,你都可以以各种方式参与到技术社区中来。在第一阶段,你可以有以下方式参与:
个人技术贡献者
每个个人技术参与者,可以在本体的项目群中选择感兴趣的项目参与,提交新的Enhancement Proposal (OEP)、实现代码、参与测试等等多种方式。也可以申请提出新的项目。本体基金会会根据不同的贡献参与度进行不同程度的支持。
技术社区小组
技术人员可以根据技术方向的爱好自己组织不同的技术社区小组,来开展更大规模的分布式技术协作,可以设定自己小组的名称、制定自己的小组章程、选择执行委员会、评估和筛选项目、开设自己的GitHub等,本体基金会会根据不同技术社区小组的发展计划评估给予支持。(我们已经收到一些技术社区小组的名字建议,如“雅典学院”、“奥林匹亚山”等)
机构技术贡献者
机构可以与本体合作开展与自身业务相关的技术研究,共同进行底层产品技术和业务通用模块的研究,双方可以共同在技术、经费、资源等各方面进行灵活合作。
Open Blockchain Foundation计划
本体同时也加入由NEO发起的Open Blockchain技术基金计划,这是一个聚焦在区块链、安全、密码学领域的公益性技术研究基金,会与全球的高校和研究团队进行合作,进行相关前沿技术的研究,并且研究成果会向全社会开放,也作为我们对区块链相关技术发展做的绵薄之力。
结语
区块链已经产生了很大的影响,也取得了很多阶段性的成果,作为最早投入到区块链领域的技术团队之一,我们也必须客观地认识到,区块链的基础设施依然并不完善,区块链在走向主流产业和支撑主流产业应用的路途上,仍有许多技术、生态、机制的问题需要去探索,因此在这一阶段,行业的协作远远重要于竞争,本体愿意不断的以开源开放的协作精神和行业的同行以及技术社区充分合作,共同推进区块链技术与产业的发展。
尽管区块链面临的挑战众多,但我们经过过去几年在技术、应用领域的深入探索、实践和思考,确定地认识到区块链在金融、商业协作、人和机构的社会协作上带来的降低成本、提升效率甚至改变现有模式的价值。从人类技术发展的历史来看,任何能真正带来价值的技术,无论在发展的过程中的挑战有多大,最终还是会发展出它实际的价值。
未来已来,它也正在分布均匀。