跳至主要内容

强烈建议你:关注本网站,有重要信息!

重大疑问:在加密领域如何保护你的资产安全?

 对区块链技术感兴趣的话,或许听说过很多进犯者利用程序代码中的缝隙而导致的大量资金被盗事情。例如,2016 年臭名昭著的 DAO 进犯事情,进犯者利用一个名叫「重入」的缝隙超量提取了他们本来所能提取的资金。另一个更近期的事情是闪电贷进犯,发生于 2022 年 4 月 17 日,形成 1.82 亿美元的资金损失。虽然一切进犯都源于底层源代码的安全缝隙,但好消息是现在已经有可以检测此类缝隙的程序剖析技术。在接下去的几篇博文中,咱们会解释程序剖析是什么,以及它怎么协助在布置前捕获安全缝隙。

程序剖析简介

程序剖析指的是一类用于检测程序中安全缝隙的技术。程序剖析有两种首要方式,动态和静态。动态程序剖析的目标是经过执行程序来检测问题,而静态程序剖析则无需运转程序自身就可以对源代码进行剖析。但是,在这些技术之中,只要静态剖析可以保证程序中不存在缝隙。相反,不同于静态剖析,动态剖析能证明问题的存在,它并不可以证明缝隙并不存在。

乍一看,静态剖析听起来好像很神秘:外表看来,静态剖析好像违反了一个被总结为莱斯定理「Rice's theorem」的基本原则,该定理声称程序的每一个非普通性质都是不可判定的。在此,语义特点是关于程序行为的特点(与语法特点不同),而非普通性质是指只要某些程序具有而其他程序没有的性质。与咱们手头论题更相关的是,安全缝隙的存在是非普通性质的一个典型比如。因而,关于「这个程序是否存在安全缝隙」这一问题,莱斯定理告诉咱们没有一个算法可以完结并精确答复这一问题。 

那么,静态剖析的可行性源自哪里呢?答案藏于以下的调查:没错,没有一个算法可以精确地给出是或否,但可以有一个算法在程序有安全缝隙时总是会答复「是」,在程序没有安全缝隙时算法有时或许也会答复「是」。换句话说,只要咱们愿意容忍一些误报,咱们就可以绕过赖斯定理和不可判定性。

静态剖析原理

让咱们以高一维度的视角来看看静态剖析是怎么运作的。静态剖析的基本原理是将程序所处的状况调集进行过近似「over-approximate」。咱们将程序状况视为从变量到值的映射。一般来说,不存在一个算法可以清晰也许是执行某一程序引起的确切程序状况集。但可以近似该调集,如下图所示:


算法


此处,蓝色的不规则形状对应在执行某些程序时或许出现的实践状况集,赤色区域对应预示过错或安全缝隙的「坏状况」。因为不可判定性,永远没有一个算法可以精确标明蓝色区域究竟是什么,但是咱们能规划一个算法以系统性的方式过近似这个蓝色区域,如上面常规绿色区域所示。只要绿色和赤色的交集为空,咱们就有依据证明程序没有做坏事。但是,如果咱们的过近似不够不精确,或许会使得赤色区域堆叠,即使蓝色和赤色区域的交集依旧为空,如下图所示:


算法


这种状况会导致所谓的「误报」,因为剖析与真实问题不相应而陈述的虚伪过错。一般来说,静态剖析的圣杯是构造过近似,即 (1)过近似满足精确因而咱们在实践中不会取得很误报 (2)过近似的核算满足有用率,因而剖析可扩展到咱们所关心的现实世界的程序。

附带说明一下,还可以规划静态剖析算法来近似如下所示的程序行为:


算法


在此状况下,绿色区域(经过静态剖析核算)包含在蓝色区域内(表示实践状况),和另一种方式正好相反。这种剖析是不牢靠的,意味着或许会漏掉真实的程序过错:正如咱们在上图所看到的那样,绿色和赤色的交集为空,因而即使程序真的存在缝隙,剖析也不会陈述问题。这会导致所谓的假阴性,真实的缝隙被静态剖析给遗漏了。

大体来说,如果咱们想取得可证明的安全性,咱们会想要牢靠的从来不会有误报的静态剖析器,一起还需要满足精确,在实践时不会陈述太多误报。但是,好消息是,几十年的正统研讨标明规划这样的静态剖析器有或许的。下篇博文,咱们会更具体地介绍静态剖析器具体是怎么运作的!

总结

程序剖析是一种有用的可以捕捉各种程序中安全缝隙的技术,包括区块链应用程序。此外,牢靠的静态剖析器的过近似程序行为能保证整个类别中不存在缝隙。

评论

此博客中的热门博文

绝对经典,在币圈浅谈如何「养号」拿空投?

  “空投暴富”的故事一直是业内最津津乐道的话题之一,而刷空投的“刷子”与项目方一直斗智斗勇。5月6日,跨链桥Hop Protocol正式推出原生代币HOP,其中8%将空投给早期相关用户,同时表示报告20个以上关联女巫攻击者地址的用户,将有机会获得HOP奖励,一时不少“撸毛”专业户在网上调侃道“我要去自己检举自己”。 为了尽可能回馈真实用户,项目方也在不断地调整空投规则。而现在真正的活跃用户可能1个地址就比羊毛党10个地址的奖励要多,本文PANews从以太坊生态知名项目的空投规则的演进出发,分析在空投规则越来越“苛刻”的背景下,什么样的真实用户更容易获得空投,用户该如何养号拿空投? TLDR 成为项目的早期参与者,比如像ENS这类应用协议,越早参与空投奖励越大; 尽可能多地体验产品,比如DeFi产品,多体验与交互将有助于提升交易量,而ENS中设置反向解析也是体验产品的最好表现之一,空投奖励更是直接加倍; 针对区块链网络而言,积极参与整个生态活动,比如多使用生态上的Dapp、参与链上治理投票等,如在Optimism空投中将获得累计奖励以及叠加奖励; 针对埋伏“子链”的空投奖励,用户需要成为“母链”生态的积极参与者,如使用上面的Dapp交易、参与其捐赠活动等,以表现对整个大生态的关注,这点在Cosmos生态表现明显,基本上Cosmos生态的项目都会空投给代币ATOM质押者。 Uniswap:限制条件少,早期参与过的地址均可获得空投奖励 谈到空投,就不得不提以太坊DEX龙头Uniswap。2020年9月17日,Uniswap官方宣布已在以太坊主网发布其协议治理代币UNI,将总量的10.06%空投给早期25万用户、总量的4.92%空投给49192个早期LP(流动性提供者)、总量的0.02%空投给220位SOCKS持有者,每个调用过Uniswap v1或者v2合约的地址都可以申请400枚UNI。整体而言,空投规则相对简单,无过多限制条件,只要是早期参与过的地址,都可以获得空投奖励,这也给“羊毛党”创造了机会。 dydx:按梯次分配,交易量所属层级越高奖励越多 另一个引人瞩目的空投项目便是永续合约协议dydx,相较于Uniswap,dydx的空投奖励更偏向于为协议交易量做出贡献的用户,贡献越大,奖励越多,具体规则如下: 有过存款但没有参与交易,每位用户可获得310.75...

BAYC 官方确认 Discord 遭攻击,价值约 200 ETH 的 NFT 被盗

  6 月 5 日,BAYC 在官方推特表示,其 Discord 服务器今天被短暂攻击,团队很快发现并解决了这个问题,但仍有价值约 200 ETH 的 NFT 受到了影响,目前团队正在调查,并建议受影响用户发送电子邮件与官方联系。 今日早些时候消息,据 CertiK 监测,Bored Ape Yacht Club 的 Discord 遭到攻击并发布钓鱼链接,目标是 BAYC、MAYC、Otherside NFT 持有者。

比特币带领市场阴跌,5W触发逃顶计划,当你们在往里杀的时候我已经开始往外撤了

  01 比特币冲高回落带崩币市 昨天文章说了现在市场的隐忧,虽然比特币目前的估值水平没有达到顶峰,泡沫非常大的程度。但行情也有隐忧,那就是涨速过快的比特币。 昨天和今天凌晨的行情也验证了这点。 比特币昨天吸血上涨,再次创下了历史新高,达到了5万美元。 但很快就冲高回落了,50000美元就是浅尝辄止,完全没站稳,直接就下来了。 这个冲高回落就带着整个市场阴跌。 这是今天凌晨的行情表现,大部分币都因为比特币的下跌而失血,连续阴跌,前天大反弹也被侵蚀掉了不少。也就是波卡系表现比较强势,昨天波卡生态好几个币都大爆发,KSM和DOT继续刷新着新高,尤其是KSM,蹭蹭地涨。 其实最近市场一直都在这种怪圈里,比特币上涨时吸血,其他币都阴跌。而比特币冲高必回落,比特币一但回落,整个市场就跟着走低,而且幅度还不小。幅度之所以大,主要还是之前涨幅太高了。 可以发现,前期那些暴涨的DeFi币,大部分最近都回调了不少。 现在的山寨币(包括一些主流币)正在接受着比特币的双重煎熬,吸血跌,冲高回落继续跌,被摧残得挺惨。 雷神觉得根本原因还是在于涨速过快,价格和资金还有市场情绪上并不匹配,比特币之所以总是吸血,和市场资金不充沛是有莫大的关系。市场无法维持比特币在已经50000美元左右的价格下,还能让山寨币暴涨的状态。还是要怪马斯克,这家伙不喊单,比特币维持在30000多美元,啥事没有,一切好好的。他这一嗓子喊出来,无脑的散户都冲向了比特币,之前节奏就被破坏了。 但也不需要害怕,形势比人强,情绪始终拗不过收益,市场还是会重新回到正轨的。山寨季的环境还在,等待比特币的企稳吧,或者是比特币回调后的企稳。洗一洗也不是没可能,洗一洗更健康。 只不过5万美元的比特币,带来了雷神的另一个问题。 02 5万美元的比特币,逃顶计划要启动了 比特币已经5万美元了,触发了雷神1年多之前就制定的逃顶计划。2019年觉得比特币顶点应该达到10万美元,觉得5万美元的时候比特币应该是要到末期了,那时候涨得比较快,5万美元到10万美元应该类似于2017年年末那种速度,可能几个周就完成了。 因此当时制定的逃顶计划就是以5万美元开始的。 5万美元开始卖,然后比特币每涨1万美元卖一些。越高卖得越多,5万美元卖一点。2019年想的是10万美元卖光,没办法,那时候是2019年下半年,比特币还只有7000多美元,还是相当煎熬的时...