智能合约目前面临较大的安全性风险,因而安网并未将智能合约作为首推应用,而是先用各种协议来安全地满足应用开发的需求,一些更为复杂的应用可能要用到智能合约,因而安网也将在后期引入安码,即安网上的智能合约系统。

安码-安网上的智能合约系统 区块链资讯

安码的技术路线是移植 EOS 账户体系,兼容 EOS、ETH 和 FABRIC 的智能合约,形成独有的智能合约虚拟机 SVM,以及独有超强兼容性的安网智能合约平台,以便更易于从 EOS 和 ETH 中构建安网生态。

安码将重点加强智能合约的安全性、易用性、兼容性。

安全性

(1)智能合约代码必须开源,且在发布智能合约时需提供代码库地址和版本号、源代码的哈希,防止源代码与编译后的代码不一致。

(2)智能合约接口的访问控制,目前不少智能合约被攻击,原因在于任何人都可以访问智能合约的任何接口,因而在某些接口检查运行权限不严格的情况下,将被非法访问者获得更高权限;访问控制可设置只有许可的地址才能访问指定的智能合约接口,增强安全性。

(3)智能合约的冻结和解冻机制,一旦出现紧急事件,开发商可将智能合约冻结,同时也冻结了其中的资金,等待合适的处理措施出现后再解冻。

(4)智能合约的执行验证机制,SVM 向开发者提供友好的可编程性,同时对安网带来较大的性能开销,为最大程度避免对安网 UTXO 交易性能与稳定性的影响,将在全网投票选出 21 个硬件性能达标的超级节点,专职负责智能合约的执行验证,普通主节点专职负责 UTXO 交易的执行验证,对于智能合约则直接从某个超级节点获取合约的执行验证结果。

易用性

(1)智能合约的可读性名称,参考 FABRIC 及 EOS,在创建合约时指定类似互联网域名的便于人为阅读与记忆的名称,后续通过该名称使用合约,更加便于合约的推广。

(2)智能合约的可升级机制,参考 FABRIC 及 EOS,分离存储合约代码及合约状态数据库,合约的 Owner 及其授权用户,可通过重新部署合约代码实现升级,避免如 EVM 必须通过重新部署合约与迁移合约状态数据库曲折地实现升级。合约使用者通过合约名称、合约版本号引用期望版本的合约,避免不知情地引用了未受信任的最新版本合约。除非合约使用者完全信任合约开发者,可指定虚拟的合约版本号,实现随时引用当前最新版本的合约。合约开发者不能为合约使用者指定引用某个版本的合约,但有权利根据智能合约升级演进的需要,停止某个版本合约的对外服务。

(3)智能合约的状态数据库升级,参考 FABRIC 及 EOS,提供对应的智能合约api,支持在智能合约运行期而非编译期可以动态地修改状态数据库结构,避免为修改状态数据库结构而需通过迁移实现升级,能够简化开发者的操作步骤,同时节省 SVM 的存储与性能开销。

(4)智能合约的状态数据库存储,在 Sapp 的项目实践中,常见需要将 Sapp存储于区块的应用数据,转存于关系数据库,以便进行结构化数据查询。SVM 将选型若干满足性能的关系数据库引擎作为合约状态数据库的存储后端,由合约开发者指定引擎类型,通过合约代码读写合约状态数据库,通过数据库引擎客户端只读合约状态数据库。合约状态数据库的访问权限控制、数据脱敏和隐私保护、脱敏过程保持数据特征及关联关系等,由合约开发者自行负责处理。

兼容性

(1)智能合约的api,目前安网通过协议实现了应用开发、安付安资安投四大功能版块,SVM 将通过智能合约的 api 向开发者开放关于各功能版块的可编程能力。

(2)智能合约的燃料与奖励机制,参考以太坊 EVM,SVM 计算 GAS 用量,通过 GAS 价格换算为 SAFE 用量。SAFE 官方向特定地址发送特定的交易调控 GAS 价格。GAS 由合约调用者承担,且奖励给矿工。为鼓励开发者勇跃地贡献高质量的智能合约服务,SAFE 官方将与社区共同研讨:将部分 GAS 奖励给被当前合约调用的合约的开发者。

(3)同时兼容多种智能合约源码,例如以太坊和 EOS,最大程度方便开发者导入和导出技术成果。安网更进一步地构思,在可以统一各类参照的区块链产品功能模型的前提下,求同存异,实现在安网体系内不同类型智能合约的相互调用。

安码的具体技术方案还在继续完善中,将另出文档详细描述安码技术细节。

优质推荐:凤凰令PXT币介绍

向您提问:安网SAFE币总量是多少?