当前位置:   article > 正文

为企业应用而生,第3代底层公链开发实操指南

公链底层技术开发

640?wx_fmt=gif

640?wx_fmt=jpeg

区块链发展到现在,已经被大家喻为下一代互联网,其发展也经历1.0和2.0,在区块链1.0阶段,以比特币为代表的分布式账本实现了不可篡改的点对点转账功能。

在区块链2.0的时代,通过图灵完备的智能合约,实现了代码即法律,最具代表的就是以太坊。随着区块链从一项技术演变成一个行业,越来越多的企业开始使用区块链技术,但是很快就暴露出了区块链2.0问题,性能严重不足。区块链3.0就是为企业应用而生,来应对区块链在大规模应用中的结合和落地问题。

公链之争从未停止过,怎样设计一条公链成为大家关注的话题。

640?wx_fmt=jpeg


区块链的不可能三角问题

要设计一条公链,首先要了解区块链设计中“不可能三角”问题,即无法同时达到“高效低能(Scalability)”、“去中心化(Decentralization)”、以及“安全(Security)”这三个要求。

  • 最大程度的“去中心化”和“安全”则无法达到“高效低能”,比特币、以太坊采用POW共识机制便是目前最去中心化的共识机制。从数据结构上看,它们采用“区块+链”的结构,在可追溯、防篡改上具备安全优势,但是PoW需要很大的算力支持,所以注定无法达到高效。

  • 追求“高效低能”和“安全”则无法完全实现“去中心化”,无论是比特币的PoW还是AOA的DPoS,都是用自己的方式选择公共的服务节点,只不过方式不一样,DPoS利用N位受委托人通过投票实现的股份授权证明,实际上都是对“去中心化”的退让,最大程度的降低去中心化就会形成联盟链和私有链,变成一个中心化的数据库账本。

  • 优先“高效低能”和“去中心化”则“安全性”将会降低,区块链最大的特点就是在密码学的基础上实现了可追溯,防止篡改,在区块链的处理交易过程中,加密解密也是很耗时的。

640?wx_fmt=jpeg

公链开发实践

要设计一条公链,还要有一个近乎完美的经济体系。设计良好的经济体系,一方面可以保护区块链安全稳定运行,一方面可以让更多的人以很低的成本使用区块链,在降低使用区块链成本的同时,我们还要尽可能的保证公平性,如果不能兼顾公平性,就会出现以太坊拥堵问题。Aurora公链开发,主要又分了两个大的阶段。

第一阶段

快速的开发第一个版本,来填补区块链2.0到区块链3.0之间的一个过渡阶段,这个版本要解决好区块链下面的问题:

重新设计经济系统和交易上块策略,在新的经济体系中,我们更加关注交易处理的公平性,使用应用智能隔离的方式,通过可变规则对交易进行分析,动态完成。

分类和类内排序,很好保证了不同类型交易互不影响,类内交易可以通过提高费用方式提高处理速度,有效的避免以太坊拥堵问题。

并且我们最大程度的降低了交易过程中手续费的收取,因为我们认为,区块链体系中,收取手续费是对整个经济体系的保护,并不存在免费的系统,EOS所谓的交易免费,只是换个方式而已,它们通过抵押EOS换取资源方式,交易过程中需要消耗资源,反而增加了用户使用区块链的门槛。

通过对不可能三角问题深刻理解,我们在第一阶段选择了以DPoS+BFT为基础重新设计实现共识机制,全新的抵押投票机制,既保证了每个人有参与投票权利,也保证了参与投票每个人真实有效。通过融入BFT产块批量验证机制,减少了区块确认数问题,也降低了自然分叉的几率,提高了交易性能,新的共识机制没有PoW产生的高能耗,又要保证相对公平性,和最大程度的去中心化原则。

优化了P2P网络,提高了广播速度和到达效率,为后期升级到P2P立体网络做准备,我们所希望的区块链,是一个秒级确认的系统,网络优化是个持续改进话题。

引入了多资产功能,多资产不需要写智能合约就可以快速发行Token,没有合约代码,就没有bug,提高了安全性。并且多资产还有通过设置股东投票的方式完成增发,超级管理员完成冻结解冻的附加功能,来应对不同场景对Token的要求。还增加子地址功能,来解决Token资产归集难,归集成本高的问题。

智能合约全面支持多资产操作,让非主链Token操作像主链Token操作一样简单、高效。

640?wx_fmt=jpeg


第二阶段

寻找高效、简单的共识机制Aurora公链第一阶段版本采用的DPoS+BFT的共识机制,就是为了保证共识速度足够快,提高确认速度,将确认区块降低到一个,但是这也不是最佳的共识机制,我们也在积极的探索新的共识机制,新的共识机制应该像PoW一样高度去中心化,但是非常简单的、不需要大量计算,同时可以到达秒级共识速度,一旦我们技术成熟我们会替换现在共识机制。

例如,我们正在研究的VRF可验证随机函数,随机抽取共识节点,具有不可预知可验证特点,它既保证了公平公正,黑客无法攻击,又能够比较好的让所有人都有权参与产块过程,产快速度还可能做到秒级确认。

多链并行是我们第二阶段重点,现在比较流行的区块链设计:单链,双链,或者DAG,他们在一定程度上都缓解了现在区块链存在的问题,尤其是性能问题,但是问题还是会慢慢暴露出来。

  • 随着使用用户增加,行业范围越来越大,它们又要重新面对性能问题,所以区块链处理能力应该是横向动态增加,纵向提高始终有上限。

  • 区块链上很多不相关的数据,用户不希望保存,因为增长很快,成本随之增加。

  • 不同行业/领域接入区块链,根据流量不同,一定会有拥有一条独立区块链的需求,但是又不能产生信息孤岛,链与链的价值无法传递尴尬情况。

Aurora公链设计的多链结构,可以允许用户通过申请的方式提交发链的请求,Aurora节点投票方式进行审批,如果通过,即可加入到多链的网络体系中,新增加的链是独立运行在网络中,并且随时和其他链产生价值交换。

P2P立体网络,是为了更好的支持多链架构:

  • 建立网络的立体分层分区域结构,通过对网络的优化,超级路由器,可以准确的识别出数据的到达区域,来提升通信、广播的速度。

  • 更好的数据压缩信息处理方式。

  • 智能化的布隆筛选,直接接收转发有效的数据。

  • 智能合约

Aurora公链第一阶段选择EVM作为我们优先支持的智能合约虚拟机,是因为,EVM也是以太坊智能合约虚拟机,它的优点也是显而易见:

  • 经过大量用户的测试和验证;

  • 用Solidity编写的智能合约都会被编译成指令去执行,比较高效;

  • 支持以太坊社区的开发者很多,更容易被大家接受。

但是智能合约最好要支持用C++、JavaScript、Java,Go等我们大多数程序员都能编的语言去写智能合约,这样才能够得到普及。或者说,假如开发DApp,也能够让普通开发人员来去写这些智能合约,才能让DApp更快的普及起来,所以我们也在开发集成WebAssembly来支持新的智能合约,这样很多高级开发语言都可以直接编译成WebAssembly的字节码,这种字节码和底层机器码很相似可快速装载运行,性能也是非常高。

640?wx_fmt=jpeg


如何逐步做到极致安全

现在绝大多数区块链项目采用的均为椭圆算法,但在量子计算面前,基本上几秒钟甚至是一瞬间就会被破解,这将导致我们所有账户余额、私钥都会被破解。在量子计算面前也是毫无隐私,破解后可以造假、转账,做任何事情。所以我们的加密计算方式必须要能抗量子计算,保障无隐私泄露的危险。

  • 加密方式要和用户数据分离,这样加密方式升级对用户数据完全没有影响。

  • 零知识证明是能够解决,当转账的时候,只能通过验证交易是否正确,并且整个过程不泄露隐私。

  • 格计算是一种基于多维空间的数学转换过程,这种多维的空间随着维度每增加一维,它的计算的难度,不仅是指数级的增加,更是一种复杂级别的增加。这种增加使得未来的技术,即使量子计算,也无法破解。

640?wx_fmt=jpeg

对同行的建议

区块链出现,最大的贡献就是用低成本方式解决信任问题,所以我们在做好公链的技术支持的同时,要不断的探索不同行业/领域结合方式,不能夸大公链能力,造成区块链滥用,做好layer1和layer2的结合。

不同企业需要的不仅仅是区块链技术,更需要的是一个完整区块链生态支持,需要生态中的交易闭环,帮他们解决传统互联网方式解决不好的问题,做好区块链生态,更好的服务于各个行业。

作者:强科臻,Aurora极光链 CTO。吉林大学计算机与软件工程专业,高级软件架构师和技术爱好者,拥有丰富的互联网和区块链开发经验。

— END —


640?wx_fmt=png


推荐阅读:



点击“阅读原文”,打开 APP 获取更多干货哟!


好文!必须点好看
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/608454
推荐阅读
相关标签
  

闽ICP备14008679号