如果你对区块链技术感兴趣的话,可能听说过很多攻击者利用程序代码中的漏洞而导致的大量资金被盗事件。例如,2016年臭名昭著的DAO攻击事件,攻击者利用一个名叫「重入」的漏洞超额提取了他们原本所能提取的资金。另一个更近期的事件是闪电贷攻击,发生于2022年4月17日,造成1.82亿美元的资金损失。虽然所有攻击都源于底层源代码的安全漏洞,但好消息是现在已经有能够检测此类漏洞的程序分析技术。在接下去的几篇博文中,我们会解释程序分析是什么,以及它如何帮助在部署前捕获安全漏洞。
程序分析简介
Eigen Layer已在以太坊主网部署Stage-1 Eigen Layer:金色财经报道,以太坊再质押协议Eigen Layer已在主网部署Stage-1 EigenLayer,正式上线以太坊主网。其中在该阶段功能与4月6日以来Goerli测试网上可访问的功能相一致,以太坊质押者可通过利用Eigen Layer合约或创建一个Eigen Pod并将信标链提取凭据配置到其Eigen Pod地址,来管理其流动质押Token并参与Eigen Laye,此外Eigen Layer最初将重新质押的上限设置为9600枚流动性质押Token,价值约170万美元。Eigen Layer的下阶段将引入Operators,负责为基于Eigen Layer协议构建的AVS(主动验证服务)执行验证任务。在第三阶段,将利用Eigen Layer促进多个AVS的启动。[2023/6/15 21:38:28]
程序分析指的是一类用于检测程序中安全漏洞的技术。程序分析有两种主要形式,动态和静态。动态程序分析的目标是通过执行程序来检测问题,而静态程序分析则无需运行程序本身就可以对源代码进行分析。然而,在这些技术之中,只有静态分析能够确保程序中不存在漏洞。相反,不同于静态分析,动态分析能证明问题的存在,它并不能够证明漏洞并不存在。
Kanpai Pandas宣布推出动态稀有度系统:金色财经报道,NFT项目Kanpai Pandas在社交媒体宣布推出动态稀有度系统(Dynamic Rarity System),用户可以使用“熊猫积分”来购买新特征以提升或降低排名,但1 of 1 NFT(总共 15 个)和 Infinity Pandas(总共 247 个)不能改变特性,只能保持原样。上月底该NFT系列宣布成立Panda Lab并设置了六种不同的特征稀有度等级,每一种都会以不同的方式影响NFT稀有度,具有不同的成本、数量限制和稀有度分数。[2023/4/16 14:06:35]
乍一看,静态分析听起来似乎很神秘:表面看来,静态分析似乎违反了一个被总结为莱斯定理「Rice'stheorem」的基本原则,该定理声称程序的每一个非平凡性质都是不可判定的。在此,语义属性是关于程序行为的属性,而非平凡性质是指只有某些程序拥有而其他程序没有的性质。与我们手头话题更相关的是,安全漏洞的存在是非平凡性质的一个典型例子。因此,关于「这个程序是否存在安全漏洞」这一问题,莱斯定理告诉我们没有一个算法能够终结并准确回答这一问题。?
比特币矿企正申请从Maple Finance借款来度过熊市:金色财经报道,比特币矿企正在从Maple Finance的DeFi贷款池中借款来度过熊市。
据Maple Finance首席执行官Sidney Powell,自从Maple和信贷代理Icebreaker一个月前推出矿工融资池以来,大约有六到十家矿业公司已经到位,形成第一批借款人,另有25家在等待名单上。
随着加密资产价格下跌,今年比特币下跌超过50%,来自通常来源的资本已经完全枯竭。Powell说,鉴于加密货币挖矿业务的资本密集型商业模式,矿工们正在寻找替代方案,而私人信贷似乎正在提供新的和创造性的方法来帮助那些处于压力之下的公司。(coindesk)[2022/10/25 16:37:41]
那么,静态分析的可行性源自哪里呢?答案藏于以下的观察:没错,没有一个算法能够准确地给出是或否,但可以有一个算法在程序有安全漏洞时总是会回答「是」,在程序没有安全漏洞时算法有时可能也会回答「是」。换句话说,只要我们愿意容忍一些误报,我们就可以绕过赖斯定理和不可判定性。
跨链移动应用程序 Slavi 内置 NFT 交易市场测试网 V1 上线:6月10日消息,跨链移动应用程序 Slavi 宣布其 NFT 交易市场测试网 V1 正式上线,支持 Polygon、以太坊和 BNB Chain。作为 Slavi 生态系统扩展的一部分,该项目旨在使用内置的多链交易技术创建一个通用且全面的 NFT 市场。[2022/6/10 4:17:23]
静态分析原理
让我们以高一维度的视角来看看静态分析是如何运作的。静态分析的基本原理是将程序所处的状态集合进行过近似「over-approximate」。我们将程序状态视为从变量到值的映射。一般来说,不存在一个算法能够明确也许是执行某一程序引起的确切程序状态集。但可以近似该集合,如下图所示:
此处,蓝色的不规则形状对应在执行某些程序时可能出现的实际状态集,红色区域对应预示错误或安全漏洞的「坏状态」。由于不可判定性,永远没有一个算法能够准确表明蓝色区域到底是什么,但是我们能设计一个算法以系统性的方式过近似这个蓝色区域,如上面常规绿色区域所示。只要绿色和红色的交集为空,我们就有证据证明程序没有做坏事。然而,如果我们的过近似不够不准确,可能会使得红色区域重叠,即使蓝色和红色区域的交集依旧为空,如下图所示:
这种情况会导致所谓的「误报」,由于分析与真实问题不相应而报告的虚假错误。一般而言,静态分析的圣杯是构造过近似,即过近似足够准确因此我们在实际中不会获得很误报过近似的计算足够有效率,因此分析可扩展到我们所关心的现实世界的程序。
附带说明一下,还可以设计静态分析算法来近似如下所示的程序行为:
在此情况下,绿色区域包含在蓝色区域内,和另一种方式正好相反。这种分析是不可靠的,意味着可能会漏掉真正的程序错误:正如我们在上图所看到的那样,绿色和红色的交集为空,因此即使程序真的存在漏洞,分析也不会报告问题。这会导致所谓的假阴性,真正的漏洞被静态分析给遗漏了。
大体来说,如果我们想获得可证明的安全性,我们会想要可靠的从来不会有误报的静态分析器,同时还需要足够精确,在实践时不会报告太多误报。然而,好消息是,几十年的正统研究表明设计这样的静态分析器有可能的。下篇博文,我们会更详细地介绍静态分析器具体是如何运作的!
总结
程序分析是一种有效的能够捕捉各种程序中安全漏洞的技术,包括区块链应用程序。此外,可靠的静态分析器的过近似程序行为能确保整个类别中不存在漏洞。
围绕Web3最具说服力叙述之一是,它是朝着更好、更公平互联网发展的运动。具体来说,Web3的支持者设想用户可以从少数中心化机构手中夺回权力,并且每个用户都可以在公平的竞争环境中参与建设.
1900/1/1 0:00:00北京时间5月1日9:00,预热已久、万众期待的“天王级”?NFT?项目Otherside正式启动了其地块的公开销售.
1900/1/1 0:00:00人生百味,ZT“粽”有一專區適合你。ZT於6月1日00:00-6月9日00:00特推出“粽情端午,ZT獻禮”活動.
1900/1/1 0:00:00Azuki创始人ZAGABOND强调:“接下来,我们想让Azuki社区知道他们对我们有多重要。”但是对于此时Azuki社区中的质疑者而言,ZAGABOND所强调的社区重要性却显得格外讽刺.
1900/1/1 0:00:0001介绍:图解DAO「图解DAO#1」是我们计划发布的系列文章中的第一篇,我们将介绍某个特定DAO的治理和运营流程。在第一篇文章中,我们选择了GitcoinDAO来进行图解.
1900/1/1 0:00:00北京时间5月10日凌晨,Azuki创始人?ZAGABOND.ETH?发布了一篇题为《建设者之旅》的亲笔文章,介绍了自己在?NFT?领域的职业履历及心路变化.
1900/1/1 0:00:00