作者:LongHashJustinCai
Tezos作为著名的PoS公链,其亮点并不仅仅只是Staking,Tezos的形式化验证特征同样也是其主要技术亮点之一。形式化验证能让DeFi的安全性方面如虎添翼,让用户对资金的智能合约安全更加有信心。
形式化验证方法和DeFi安全
DeFi的爆发式增长吸引了不少开发者,著名的DeFi协议如Compound、Uniswap、Syntheix累计收获了上亿美元的资金。但是,DeFi存在一个重大漏洞:安全性。
这个漏洞的代价是昂贵的,它给一些区块链项目的网络效应带来了负面的影响。过去几个月被攻击的DeFi项目就包括Curve.fi、Lendf.Me、PegNet等,其损失从数十万美元到数千万美元不等。tBTC在上线几天后通过自查及时发现了bug并冻结了存币,避免了一场灾难。
外媒:德国和英国用户可使用PayPal在Coinbase上购买加密货币:金色财经报道,Bitcoin News在X平台(原推特)上表示,德国和英国的用户现在可以使用PayPal在Coinbase上购买加密货币了。[2023/9/2 13:13:19]
而对于注重安全性的DeFi开发者来说,Tezos的形式化验证方案能够在加强安全性的同时赋能DeFi应用。
在传统互联网应用中,如果服务器被黑客攻击,只需要对服务器端用户数据进行回滚就可以挽回用户损失。因此,重视用户体验的传统互联网应用可以以牺牲安全性换取速度和功能上的快速迭代。然而在DeFi应用中,由于区块链的不可篡改性,智能合约一旦上线并出现安全隐患,对用户造成的损失是巨大且不可挽回的。
因此,DeFi应用开发的过程需要用大量的测试和昂贵的审计以获取足够的安全性,而反过来会牺牲迭代的速度,影响了产品的易用性。并且,因为安全审计的价格昂贵,很多开发者并没有能力发起DeFi应用。
黑客利用Profanity漏洞获利330万美元:9月18日消息,加密调查员ZachXBT表示,黑客利用Profanity漏洞获利330万美元。在ZachXBT发布警告后,帮助用户免于120万美元损失。(Cointelegraph)
此前9月15日消息,1inch报告:通过Profanity创建的某些以太坊地址存在严重漏洞。[2022/9/19 7:04:49]
区块链开发人员目前仍然是稀缺的,导致人工审计的成本非常高昂。因此越来越多地使用机器辅助验证是目前的趋势,而机器辅助审计中的形式化验证方法更是确保安全性的不二法宝。
形式化验证指的是用数学中的形式化方法对算法的性质进行证明或证伪,方法有两种:
一种是模型检验,即把系统所有可能的状态列出并进行一一检验,此种方法全自动化但只适合小型系统;
另一种是演绎验证,首先把系统代码标记成抽象数学模型,然后对定理进行证明,此种方法适合大型系统,但是首先需要人工将系统的运作方法转换成验证系统可以理解的语言。
Suze Orman使用Paypal买入5千美元比特币:个人理财大师、CNBC The Suze Orman Show电视节目主持人Suze Orman在接受NextAdvisor采访时表示,她已经通过Paypal 购入了5千美元比特币。据悉,这是其第一次承认直接拥有比特币。此前,Orman曾多次谈到她对加密货币的兴趣,并在去年6月对Microstrategy股票进行了投资。Orman表示,她购买Microstrategy股票是因为她发现这比直接购买加密货币更简单。此外,Orman表示,Paypal让购买比特币变得很容易,因为它允许用户在不创建外部加密货币钱包的情况下购买加密货币。当然,由于美国监管,她对比特币仍感到担忧,并对埃隆-马斯克等非官方人物用 \"评论 \"来推动加密货币市场的力量表示担心。(Coindesk)[2021/6/24 0:03:00]
形式化验证方法在很长一段时间里,由于其成本较高昂,主要应用于学术、国防军工、航空航天等领域,在商业领域应用较少。由于传统互联网应用与区块链应用的运行环境有着本质的不同,其开发流程也应当相应地进行调整,其中最关键点在于安全验证环节的投入比例。
动态 | 加密交易平台SIBEX利用Paxos推出的与黄金锚定的加密货币促进P2P场外交易:据Finance Magnates 12月6日消息,去中心化P2P加密交易平台SIBEX已与稳定币发行人Paxos合作,以用Paxos推出的与黄金锚定的加密货币(Pax Gold)促进P2P场外交易。Sibex用户现在可以对冲其他加密资产的波动,同时受益于受监管的投资工具和黄金资产敞口。Paxos已经为每个PAXG代币提供了真实的金条支持,这意味着拥有该代币的任何人也合法拥有基础的实物黄金。此前9月份消息,纽约金融服务部批准Paxos推出与黄金锚定的代币PAX Gold。[2019/12/7]
函数式语言在公链领域的应用
许多区块链项目为了保证安全性,在底层架构、虚拟机或智能合约的语言方面,选择了函数式语言,如Ocaml、Haskell、Erlang等。函数式语言由于其严格的变量类型定义和编译检验,以及拥有较好的形式化验证工具链,在安全领域拥有很好的口碑。常见过程式语言编写的代码,一般必须重新用函数式语言标记方能进行形式化验证。
声音 | imToken商业运营负责人:以太坊在设计之初就决定采用PoS共识:7月23日消息,imToken商业运营负责人Mako表示,以太坊在设计之初就决定采用PoS共识,但由于当时PoS共识并不成熟,以太坊前期采用成熟的PoW挖矿,之后转到PoS。为此,以太坊设定了4个阶段:前沿、家园、大都会、宁静,目前我们处于大都会阶段,宁静也就是我们今天谈论的以太坊2.0。以太坊2.0的阶段1,也称为零阶段(开发人员喜欢从零开始计数)信标链,引入共识层,目前有8个团队正在独立的实施第一阶段,信标链将是一条全新的 PoS 区块链,用户可以使用钱包参与 Staking 挖矿获得收益。阶段2:分片,引入数据层,这一阶段只是分片结构的试运行,而不是尝试使用分片来扩展以太坊。阶段3:eWASM 虚拟机,引入执行层,这一阶段将会变成我们熟悉的以太坊。这个阶段是以太坊 2.0 各个重要功能汇聚,分片链升级,允许钱包转账,执行合约。阶段4:按照V神的说法,阶段4将是对这台新世界计算机的调整和优化。[2019/7/23]
我们看到,在以上项目中,Tezos支持的智能合约高级语言的种类最丰富,不仅包括Pascal,Ocaml,Haskell等多种函数式语言,也包括了Python这一应用普遍的语言。而Cardano、Aeternity都需要开发者学习一门新的函数式语言,使得开发门槛变得较高。
Michelson语言的安全特性
在智能合约语言的设计上,Tezos采用了一种取长补短的创新方案。Tezos的智能合约底层采用基于Ocaml的Michelson语言,而开发者实际接触的是Python等高级语言,并不需要了解Michelson语言本身。如此以来,可以结合Michelson语言更好的安全性与可审计性,与Python等高级语言的易于编程性。
Michelson在架构上对标的是以太坊EVM,与EVM相比其相似之处有
1)是一种stack语言
2)使用链上存储
3)采用gas费用模型
4)图灵完备
Michelson与EVM的主要区别是
1)静态类型
所有进入Michelson智能合约的数据,都需要明确定义其类型。避免了跟类型不匹配有关的程序bug,如浮点溢出、除以0等。
2)原子计算
一个Michelson智能合约必须完成执行后才能调用其它智能合约。这一点避免了以太坊上经常发生的re-entrancy攻击?(如著名的DAO攻击)。
3)明确的调用失败
执行期发生的失败只有三种,明确失败、gas耗尽、数量溢出。这一点避免了以太坊上常出现的隐含模代数、错误指令、stack溢出等类型的常见执行期攻击。
4)严格的语义
大小写、空格、短行都有严格规范的要求,让代码审计变得更方便。
可以看到Michelson相比EVM在安全上有诸多的改进,可以更好地抵御以太坊上经常出现的攻击类型。
SmartPy开发工具包
Tezos上的Dapp开发者并不需要掌握Michelson语言。这是因为开发者可以使用基于Python的SmartPySDK,并将Python代码写的智能合约编译成Michelson语言。因此Dapp开发者只需要会Python就可以轻松上手。
SmartPy是一个Python库,而SmartPy.io让用户能够在一个浏览器中执行Python脚本。Smartpy的官方网站提供了一个在线编辑器(https://smartpy.io/demo/),Dapp开发者可以直接用Python编写代码并编译成Michelson智能合约,然后部署到Tezos主网上。其使用界面设计相比以太坊的Remix在线编辑器更简洁明了,非常容易上手。Smartpy还自带了一些现成的开发模版,方便开发者参考学习。
SmartPy.io的界面如下。屏幕左侧区域是代码编写区,开发者可以轻松地使用Python来写入并编辑合约的代码。Smartpy不需要像Remix一样分两步编译和执行,按一下代码区上方的执行按钮就一步搞定,非常方便。执行结果立马就可以在屏幕右侧显示出来,包括合约调用的入口、存储状态、编译的Michelson代码等。
除了在线编辑器,SmartPy还有一个命令行版本SmartPyBasic,让开发者在本地环境也可以编译运行SmartPy代码。
部署的智能合约可以用SmartPyContractExplorer进行查看,合约的当前状态和历史操作都一览无余。
目前SmartPy已经支持Python常见的许多功能,如本地变量,变量类型判断,Lambda函数等。少数不支持的功能如array,可以用map来代替。这也就意味着学习SmartPy不需要投入很多的时间和精力,开发者可以专注于实现更好的功能。
以下是一些关于SmartPy入门的训练课程:
CryptoverseWars:?https://cryptocodeschool.in/tezos/overview/
BlockmaticsSmartPyDevelopercourse:https://cryptocodeschool.in/tezos/overview/
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。