智能合约是区块链的一大核心内容,也是区块链应用DAPP的技术支撑,它可以让世界各地的人们无需通过中心化机构,就能进行交互和交换价值。毫无疑问,这种技术会在不远的未来,颠覆很多产业的现行商业模式。
但与此同时,智能合约又是目前公链需要完善的一大方向。以太坊的智能合约曾多次出现重大漏洞,每次漏洞都带来数额惊人的损失。对于这些漏洞产生的原因,业界普遍认为一是与以太坊智能合约机制太过灵活有关,二是因为以太坊的虚拟机是新发明的技术,远不如传统虚拟机技术成熟所致。
那么,在面对尚显年轻的区块链虚拟机技术时,开发者该注意哪些重要事项,以确保应用的安全和项目的顺利进行?同时,一个完整的区块链应用开发过程中,该如何利用好虚拟机?12月8日,在迅雷链技术沙龙深圳站,来自迅雷链开发团队和业内的多位技术大咖,就这些问题进行了深度解析。现场开发者济济一堂,场面十分火爆。
此次受邀进行技术分享的嘉宾有:
迅雷链开放平台研发负责人 张慧勇
迅雷链底层研发工程师 胡登启
迅雷链开放平台高级产品经理 尹晓亮
工信部电子五所高级工程师 相里朋
汉江网络有限公司 绿松石溯源链项目负责人 狄鸿杰
迅雷链性能特点及技术原理
迅雷链开放平台研发负责人 张慧勇作为国内主链项目的代表,迅雷链一直将推动区块链应用落地、投入实际商用作为根本目标,围绕这一目标,迅雷链又发展出相应的性能水平,其特点有:
1.高并发能力,迅雷链已达到百万级TPS,能够支撑大多数实际商用场景的需求,这是区块链应用能够落地并投入实用的前提条件之一;
2.秒级确认,即时完成交易的处理和确认,这也是为满足实际商用所必须具备的基本性能;
3.强一致性,既不会出现分叉也不可能执行回滚操作,同样是商用的必备技能;
4.可扩展性,迅雷链能够无限量、低损耗地进行扩展,从而保证应用在业务发展壮大后也能支持应对。
正是由于上述这几点性能特征,迅雷链被视为引领区块链3.0、具备实际商用性能的底层主链,事实上也是目前应用数量最多、种类最丰富的主链。它能有此表现,与其独创的同构多链框架技术不可分。
1.同构多链架构,这是高TPS能力和强扩展性的技术根源;
2.DPoA+PBFT 共识算法,使用 DPoA 共识机制保障 PBFT 算法的稳定性;再用 PBFT算法来达成秒级确认,同时提供区块的确定性,杜绝回滚和分叉。
区块链虚拟机的特点
迅雷链底层研发工程师 胡登启虚拟机是构建在区块链系统上面的一个代码运行环境。可以简单比喻成操作系统,开发者编写的智能合约代码,就在此操作系统上运行。迅雷链支持图灵完备的EVM虚拟机,且由于性能上的优势,能够运行更为复杂的智能合约。
区块链虚拟机具有6大特性,分别是:
1.安全。这也是最重要的,即代码在沙盒中运行,一旦发生错误,可以回滚掉所有更新;
2.结果确定,没有歧义。在区块链的所有节点执行该逻辑,得到的结果一定是保持一致的;
3.简单。即操作码低级,结构简单;
4.具备特定的能力。虚拟机能处理加密运算,比如支持椭圆曲线算法,能访问交易与链状态,获取blockhash,tx相关内容等等;
5.易于优化。支持即时编译(JIT)等;
6.节省空间。虚拟机组件紧凑,便于集成到区块链服务中。
在迅雷链上如何进行虚拟机开发?
区块链虚拟机的运行原理是,开发者编写合约源代码,最终编译成字节码,这样虚拟机在执行过程中会通过代码加载器加载到虚拟机内存里面。虚拟机的执行引擎会执行一个一个的指令,在执行指令的过程当中会访问到一些栈的数据,同时会读取运行时的数据区,这是通用的虚拟机执行过程。
EVM虚拟机的执行主流程是在Rum函数里面的,在循环里面首先会获取对应的操作码,找到对应的指令,这个指令在执行之前会进行一些数据的校验。执行指令完之后,可以判断继续执行指令还是返回退出。
区块链合约安全问题
目前智能合约依然是一项年轻的技术,发展并不成熟,经常有项目爆出漏洞,开发者面临的安全问题都是不一样的,迅雷链在实践中总结了三个最核心的点。
1.希望开发者深入的理解区块链系统的运行原理;
2.希望开发者熟练掌握一门合约语言的特性;
3.需要做全面的代码测试,区块链合约还是比较新的技术,需要开发者在后面实践当中来完善这个技术。
区块链应用实际开发过程中的注意要点
迅雷链开放平台高级产品经理 尹晓亮在区块链应用的实际开发过程中,又有哪些需要注意的要点事项呢?从迅雷链上的开发实践中,可总结出如下几点:
1.确定应用开发场景要解决什么样的业务问题,是否可以实现链上的信任机制;
2.考虑企业业务的核心逻辑是否成立,能不能通过区块链来解决现有业务遇到的难题;
3.区块链技术的使用是否能为企业降低成本。
开发者选择主链的核心要素
在选择底层技术时,要从三个方面考虑。
1.一定要围绕业务需求做技术的持续升级,比如性能优化、存储优化,包括隐私,还有安全性的升级;
2.考虑场景,区块链本身是新兴行业,该如何被大家所认知、所接受会是个问题,因此所有技术迭代都要围绕场景来进行;
3.做开放,主链要保持足够的开放性,尽可能降低开发门槛来推动区块链应用的落地。
2018年本系列技术沙龙的最后一站,将于12月22日在成都举行,有兴趣的区块链技术爱好者、开发者可关注迅雷链官网或迅雷链公众号,及时获取沙龙信息以及往期全部技术案例的干货分享,迅雷链希望通过持续的技术创新,帮助区块链开发者做出更丰富、更优秀的应用,推进区块链技术赋能实体经济发展。
网友评论