在2020年即将来临之际,铂链Bottos隆重发布了自己”铂链2020年的研发计划”。一方面,我们坚持透明性原则,以便社区可以整体了解我们下一步走向,但更重要的是,它使我们团队可以对未来进行深入思考,并就前进方向达成共识,从而使后续行动非常一致,以便达到最好的结果。
在铂链Bottos的高效发展的基础上,利用团队在共识算法和智能合约方面的技术造诣,深入实现并优化现有的技术架构。同时和社区紧密结合,利用社区的技术能力,横向发展,拓展出新的功能模块和技术方向。
今后,我们仍将努力做到:深入思考,全面规划,灵活调整。
技术路线总览
用户在社区中的反馈,是Bottos进步的推动力。围绕着社区和产业界的发展路线,我们制定了技术发展的路线规划,在大的技术方向上为团队指出正确的道路。
1. 深耕智能合约和相关基础设施
智能合约经过了多年的发展,已经渐渐成为区块链项目中的核心和标配功能,智能合约的功能强弱与否,易用性以及稳定性都代表了一个区块链项目关键能力。Bottos目前在智能合约上已经取得了长足的进步,但这只是一个好的开始,在智能合约上还需要加开发力度,将智能合约的易用性和稳定性作为未来开发的重中之重。
降低开发者和普通用户使用门槛,缩短合约开发周期做到为用户节省时间是团队的另一项重要任务。为此我们规划了高效易用的一站式合约开发调试部署工具,提供了多种接入方式,并对接测试网,支持快速部署和快速调试。
2. 建立更完善的客户端和用户入口
主要目标是在钱包客户端中加入智能合约创建和部署的入口,为此需要将钱包改造,加入智能合约的本地编译器,并提供易用的UI界面,满足用户只需通过鼠标点击即可达到创建、部署、管理合约的目的。
3. 持续探索分布式存储
分布式存储是未来一年开发中的另一个重点,对于单机存储的性能和可扩展性问题,唯有通过分布式架构的方式才能彻底的解决。适用于区块链的分布式存储需要提供不低于单机的性能、极高的可用性、无单点故障、易于扩展、强一致性事务等特性,这些功能是未来Bottos在分布式存储中开发的重点和难点。
4.加强多方安全计算研发
还有一个很重要的分支是关于隐私计算的,在这个方向Bottos已经投入了大量的时间做研究,产出了很多关于多方安全计算的研究成果,例如技术文章和测试用例等。未来将在多方安全计算方向上继续发力,将功能成熟的技术成果应用到链的功能当中。
2020/产品研发
钱包中支持智能合约的部署
钱包中内置智能合约的编译器,支持目前Bottos中所有语言智能合约的编译,并和钱包中的功能集成,支持在钱包中一键部署编译好的合约源码。
编译合约时,可选择是否预执行合约代码。如果选择了预执行,则会连接到远程的合约预执行服务,并将执行结果返回给钱包。
部署合约时,可选择部署到测试网或主网,相应的要提供测试网或主网的账号和其私钥。
2020/技术研发
1. BISDP智能合约开发平台 智能合约开发平台BISDP主要由面向用户的接口,以及后端的编译部署工具、调试工具、预执行框架。
面向用户的接口,提供基于WEB、PC、移动端App的访问方式,让开发者可以快速便捷的编译部署合约,提供合约的模板管理功能。并可以远程管理合约:查看合约的执行情况、消耗的资源等信息。
在编译部署工具中,提供一整套智能合约源码编辑、运行、调试、部署的方案,以及面向常见任务的智能合约模板,为开发者极大的降低了智能合约的学习和使用门槛。同时向开发者和普通用户提供智能合约预执行框架,可以做到在实际部署之前,检查智能合约中存在的逻辑缺陷和安全风险,在真正运行智能合约之前能及时提醒使用者一系列问题。
在调试工具中,内置本地调试和远程调试工具,在调试工具中可以设置多个断点,代码执行到断点时,可以查看当前执行栈中的变量和其内容。还可以根据变量的值做条件断点,在内存中某个值达到预设值后代码才会执行到断点。
预执行框架中,开发者可以选择在虚拟环境或者测试网中预执行合约代码,检查出编译期无法查出的一些代码中的问题,做到更深入的代码检查。预执行框架,还能提前提示用户合约执行所需要消耗的时间、空间资源。
2. BVM虚拟机支持Python、PHP编写智能合约
新增基于Python、PHP语言的智能合约编写工具,能将这3种语言,编译为对应的BVM指令集,实现.将这两种原因作为智能合约的编程语言。
对于Python语言第一期计划支持基本的语言元素:
逻辑控制:If, Else, Eli, While, Brea, 方法调用, for x in y
算术和关系运算符:ADD, SUB, MUL, DIV, ABS, LSHIFT, RSHIFT, AND, OR, XOR, MODULE, INVERT, GT, GTE, LT, LTE, EQ, NOTEQ
数据结构:支持list数据结构的创建、追加、删除、替换、计算长度支持dict数据结构的创建、追加、删除,替换、计算长度
函数: 支持函数的定义和调用
对于PHP语言,第一期计划支持的基本语言元素:
逻辑控制:If, Else, Eli, While, Brea, 方法调用
算术和关系运算符:ADD, SUB, MUL, DIV, ABS, LSHIFT, RSHIFT, AND, OR, XOR, MODULE, INVERT, GT, GTE, LT, LTE, EQ, NOTEQ
数据结构:支持关联数组的创建、追加、删除、替换、计算长度
函数:支持函数的定义和调用
对于这2种语言,在BISDP中提供了语法高亮和代码提示的功能,方便开发者判断错误。
3. 持续探索分布式存储方案 分布式存储在区块链技术中,实际指的是分布式数据库。相对传统的DMBS,分布式数据库除了具备传统DBMS的ACID特性意外,还提供了分布式系统的高可用性、横向扩展等特性。分布式系统的CAP原理,揭示了对于一个常见的分布式系统,存在一个不可能三角,即在一致性、可用性、分区容错性这三个方向中只能选择其中两个,而对于区块链中的分布式数据库,必须要求做到强一致性,这是由于区块链系统本身的特性决定的,因为它需要提供可靠的分布式事务能力。对于这些技术问题,在确保分布式存储方案达到100%可用之前,我们将持续投入更多时间和技术力量,做更多的功能和性能测试,并针对分布式存储系统,展开有针对性的测试方案。4. 加强多方安全计算研发 安全多方计算(MPC)是一种能够使多个实体在共享数据的同时在不暴露加密密钥的基础上保护数据机密性的密码机制,其安全性和可靠性等性能指标对于实现区块链分布式账本上透明共享数据私有性以及客户端钱包私钥的隐私保护至关重要。
目前,Bottos平台在隐私增强的安全多方计算方面的研发现状:基于比特币钱包中的BIP32/44标准实现客户端钱包密钥分布式管理和隐私保护。
考虑数据更高级别的安全性和区块链分布式账为每个节点的公共数据,进一步研发规划:
(1)基于RSA、Pailliar、ECDSA等具有同态属性的公钥加密体制以及GC协议、OT协议,ZKP协议实现两方交易签名的生成及验证;
(2)引入安全性和性能更高的国际主流公钥体制、国密公钥加密体制以及交互次数更少或非交互式ZKP协议实现多于两方的安全多方计算,使得更多的节点参与到账本数据的隐私保护。
总结
经过这些年的探索,我们对于目前所做的研究和发展方向充满了信心。向着不远的未来,一步一个脚印,笃定前行。
最后,铂链全体成员也要感谢社区中所有支持和帮助我们的朋友。您的肯定,是我们最大的宽慰和最强的动力。
来源:铂链