发布于10月24日10月24日 管理员 经典科学家手段假Token前面介绍的cashio,本质上就是个假Token的案例。假Token最出名的,是从EOS时代。ERC20规范导致,大家都会去检查ERC20的地址,或者说写合约的时候 判断条件就是地址。而EOS包括现在的Solana,地址条件不是那么明显,比如EOS的name,Solana 需要 用户传递进来Mint Account。因此如果没有做相关check就有可能出现假Token闪电贷闪电贷本身是没有什么问题,但是闪电贷可能被科学家用于辅助。比如正常情况下,用户是没有那么多的 某个Token的,但是他可以去闪电贷服务里面,临时借入大量这种Token,然后操作我们的逻辑,影响这里的 数据,典型的是DeFi里面,通过外借Token,进行砸盘。然后同一个Tx里面再跟上科学家自己的Token 低价买入。CPI普通合约都是针对普通玩家来执行动作的,也就是发起交易的是一个owner为system的Account。这个Account 最多就是将多个指令串在一个交易里面执行,但是他没法做到其他更多的功能。通过CPI,我们可以让发起动作的是一个合约,在这个合约里面,我们就可以编程了,Sui 提出了一个叫做 "Programmable Transaction"的概念,其实就类似这个。或者ETH里面的MultiCall也是类似的概念。在这里我们就可以借助合约的执行,来做一些逻辑,比如判断当前执行的时候,Blocke Height,Slot信息。权限检查权限检查是个老生常谈的问题,在任何链上都是存在的。但是在Solana上,可能会更明显。为什么呢?因为Account除了记录的信息外,其本身还有个owner的属性,来判断所属。所以除了我们应用逻辑里面 检查这里Account里面记录的信息外,还需要检查这个Account的onwer重入、重新初始化在Eth中,重入是个必检查项目。在Solana里面,重入和重新初始化问题不是那么严重,我们可以简单的在 Account里面增加一个字段,表示是否已经初始化了。另外,可以根据这个Account是否存在来判断是否已经初始化了。但是如果没有检查,就有可能出现这样的问题。
创建帐户或登录后发表意见