1、基于WebAssembly构建长安链可信合约层腾讯云 曾毅曾毅,长安链基础组件负责人个人介绍拥有超过15年丰富的IT从业经验。先后服务于微软、中金、美国硅谷地区知名科技公司;回国后参与区块链方向创业;某央企区块链技术总监;现就职腾讯,专注长安链的研发。参与设计、开发和带领团队完成过大量关于企业管理、金融数据处理、商务智能、移动互联网等相关的项目。在区块链方向专研技术多年,精通比特币、以太坊、超级账本Fabric的底层原理,曾带领团队从0到1完成自主可控的区块链底层的研发,并主导和参与申请多个区块链技术专利。目录大纲1.WebAssembly与区块链智能合约结合的必要性2.如何将WebAssem
2、bly集成到长安链3.如何将长安链的WebAssembly应用到隐私计算中01WebAssembly与区块链智能合约结合的必要性什么是区块链定义:区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology,简称DLT)。加密不可篡改通证化去中心化分布式五大要素:出自区块链的真正商机(信通院区块链白皮书(2019年)定义)区块链的数据结构智能合约创造信任的机器是满足特定条件下在区块链上执行代码的程序。其本质是一系列代码的合集(具有自动化、不逆
3、转性、代码公开透明性等特点),各方以数字签署合同的方式准许并维护其运行,用于自动完成某些特定的功能。通过智能合约,权利与价值的分配协议可以无需借助可信第三方,即得到高效、准确、可信的执行,并且全过程可审计。是协议创造和自动执行平台。2015.10经济学人“以数字形式指定的一系列承诺,包括各方履行这些承诺的协议”1994年,计算机科学家和密码学家Nick Szabo首次提出“智能合约”概念智能合约的几个特点智能合约是在区块链上运行的一种计算机程序,其具有以下特点:程序所需的数据来源于区块链(用户输入也会上链)程序的执行在链上(被多个节点共识,具有确定性)程序的输出记录到链上(任何人可重新执行合约
4、并验证输出),不可篡改区块链与智能合约的发展Wasm&Wasm&其他其他EVMEVM比特币脚本比特币脚本非图灵完备安全图灵完备Gas计费(可终止)扩展性差性能低灵活高效内存安全平台独立区块链1.0区块链2.0区块链3.0可编程货币可编程金融可编程社会WebAssembly的特点WebAssembly,简称Wasm,是一种为基于堆栈的虚拟机设计的二进制指令格式。Wasm被设计为用类似C/C+/Rust等高级语言的平台目标,从而可以在Web上部署客户端和服务器应用程序。高效高效:Wasm有着一套完整的语义,它的二进制格式加载速度快并且能在很大程度上减小代码包的体积,最终凭借硬件能力以达到原生执行效
5、率。安全性安全性:Wasm是运行在一个沙箱化的执行环境中,甚至可以和当前的Java虚拟机共享一套环境。通过严格遵守主机浏览器的权限策略和保持向后兼容性来实现Web环境中的安全性。开放开放:首先Wasm具备人类可读的文本格式,这种非常规整的文本格式可以用来测试、实验、调试、学习、优化以及编写,并且Wasm的开放标准不受任何一家厂商控制。WebAssembly与区块链智能合约结合WebAssembly是一种与平台无关的二进制格式,这意味着它将在其操作的任何机器上运行相同的指令。区块链需要确定性,以便在点对点网络中的所有节点上有可靠的状态转换更新,而无需强制每个节点运行完全相同的硬件。WebAsse
6、mbly与编程语言无关,它能由C/C+、Rust、Golang等常用编程语言编译而成,而且编译后的二进制文件小,便于智能合约的开发和上传。WebAssembly很适合在各种各样的机器中实现可靠性。Wasm既高效又快捷。这种效率意味着它可以作为一个代码块上传到链上,而不会造成太多的状态膨胀,同时保持其以接近原生速度执行的能力。WebAssembly在安全的沙箱中运行,隔绝了用户编写恶意智能合约攻击节点主机的可能性。以太坊前CTO、波卡创始人Gavin Wood认为:“WebAssembly是智能合约的未来”。小结:常用智能合约引擎的对比支持语言:Solidity,Serpent,Vyper.执行