正如我们在第一篇文章中提到的那样,Lity由动态可扩展语言、编译器LityC和CyberMiles 自己的虚拟机CVM组成,这些都存在于CyberMiles 区块链。作为Solidity语言的超集,Lity更加灵活、性能更好并且更加安全。怎么会这样?
- LibENI(以太坊本地接口库)动态虚拟机扩展允许在CVM上即时添加本地函数,无需停止、升级或分叉区块链。参考网站:https://www.litylang.org/performance/
- 即将发布的Lity规则引擎会把正式的商业规则嵌入到智能合约中,这将大幅提高开发人员的效率并且极大降低错误出现的可能性。参考网站:https://www.litylang.org/business_rules/
- ERC 检查器不仅可以检查并且能够自动修复智能合约上的常见安全bug。参考网站:https://www.litylang.org/security/#erc-checker
让我们深入探索Lityc(编译器)和CVM是如何让编程更安全的吧
利用更好的安全性
对已知的由以太坊Solidity智能合约引起的安全问题,CyberMiles 团队分类提取了常见模式,并在Lity 语言编译器和CVM中针对这些模式安装了检查器。我们采取了积极主动的措施来防止95%的智能合约错误,这些错误曾经造成了以太坊资产丢失。但他们极有可能压根儿不会发生在CyberMiles上。
使用Lity编译器(Lityc)来保护你的智能合约
ERC检查器是Lity编译器的一个工具,用来确保智能合约符合他们所要实施的ERC标准。
在ERC的世界里:
ERC20 是最常见的token/coin发行合约标准。
这个示例展示了ERC20 检查器如何工作
ERC223是ERC20的增强版,可以阻止无意中将资产转移到合约地址的行为,这是以太坊上常见的资金流失的常见原因。(多说一句,为了更加安全,我们建议CyberMiles 上所有的ERC20合约都能符合ERC223标准。)
这个示例展示了ERC 223检查器如何工作
○ERC827是ERC20、ERC223的增强版,使ERC20 更安全并且易于使用,同时也能和ERC20工具保持兼容。简单来说,ERC827可以实现ERC20、ERC827的所有功能,但是相较于ERC223的改进,ERC827还有更多新玩法。比如,可以通过代码设置接收token的范围,如果设置为只接受1000个以上CMT的转账,那么低于1000的转账就不会成功。
这个示例展示了ERC 827检查器如何工作
○ERC721是用来发行不可替代token的智能合约标准,举个例子,风靡一时的加密猫游戏使用的就是ERC721合约。
这个示例展示了ERC 721检查器如何工作
○ERC884是用来发行美国股票证书的证券token标准。
这个示例展示了ERC 884检查器如何工作
点击查看视频:Lity编译器工具:ERC20、ERC223、ERC827、ERC721、ERC884检查器
(ERC20、ERC223、ERC827、ERC721、ERC884检查器示例合集)
整数溢出是以太坊智能合约常见安全问题之一。Lity可以主动消除智能合约代码发生整数溢出的几率,这是怎么做到的呢?
- Lity编译器(Lityc)会检查是否在整数中使用SafetMath。如果整数操作中没有设置SafeMath,Lity编译器会发出警告。
- CVM会在运行时检测是否存在整数溢出问题,并且停止执行含有错误的合约,而不是让合约带着整数溢出问题继续执行。
点击查看视频:Lity 使用教程:溢出保护
(CyberMiles 如何帮助避免溢出问题)
Lity由CyberMiles基金会开发,并作为免费软件在GPL下发布。 参阅我们最新的文档来使用Lity吧。
相关阅读
CyberMiles虚拟机和高级编程语言Lity发布!为智能合约赋能
治愈以太坊Solidity顽疾的正确姿势
Lity 入门开发指南,拿走不谢