
万字研报:Solana上MEV的格局演进与是非功过
原文链接:点击详情 前言 solana 已然五年,其中 Jito(solana 上 MEV 基础设施龙头)的发展不足 3 年,但市占率飞速从最初的 15% 发展到如今的 95% ,可以说,大多数的 Solana 上的 Meme 买卖交易,都得经过他! 全程无广,请读者摆好板凳,点上收藏**,让十四君深度底层原理,带你逐渐揭晓**:什么是 Jito-solana?为什么他可以2 年占满市场?Solana 对比以太坊的核心机制的差异。你的交易为什么总是被夹?Solana 未来的 MEV 格局会如何发展?1、什么是 Jito-solana?当然 Solana 上做 mev 基础设施的不只是 Jito-solana(95% 市占率的龙头),还有其他 Paladin、Deeznode、BlockRazor、BloxRoute、Galaxy、Nozomi 等等,不同切入点的厂商。本文会以核心龙头的发展历程和技术原理来展开,在后续再点评这几家的优缺和切入点。1.1、Jito 的发展时间线首先,让我们用时间线来看看他的市占发展速度的神奇之处,请关注其中的质押率以及相关伙伴。21 年底成立22 年...

Delve into the risks behind the small matter of EVM-contract classification
In the field of smart contracts, the "Ethereum Virtual Machine EVM" and its algorithms and data structures are first principles. This paper starts from why the contract should be classified, combined with what kind of malicious attacks each scenario may face, and finally gives a set of relatively secure contract classification analysis algorithm. Although the technical content is higher, it can also be used as a miscellaneous reading A look at the dark forest of games between decentralized sy...

Research report of ten thousand words: The pattern evolution and merits and demerits of MEV on Solan…
introduction solana has been five years, of which Jito (the leader of MEV infrastructure on solana) has developed less than three years, but its market share has rapidly grown from the initial 15% to 95% today. It can be said that most of the Meme trading transactions on Solana have to go through him! The whole process is not wide, please readers set up the bench, click on the collection,Let the 14 Jun depth of the underlying principle, with you gradually revealed:What is Jito-solana? Why can...

万字研报:Solana上MEV的格局演进与是非功过
原文链接:点击详情 前言 solana 已然五年,其中 Jito(solana 上 MEV 基础设施龙头)的发展不足 3 年,但市占率飞速从最初的 15% 发展到如今的 95% ,可以说,大多数的 Solana 上的 Meme 买卖交易,都得经过他! 全程无广,请读者摆好板凳,点上收藏**,让十四君深度底层原理,带你逐渐揭晓**:什么是 Jito-solana?为什么他可以2 年占满市场?Solana 对比以太坊的核心机制的差异。你的交易为什么总是被夹?Solana 未来的 MEV 格局会如何发展?1、什么是 Jito-solana?当然 Solana 上做 mev 基础设施的不只是 Jito-solana(95% 市占率的龙头),还有其他 Paladin、Deeznode、BlockRazor、BloxRoute、Galaxy、Nozomi 等等,不同切入点的厂商。本文会以核心龙头的发展历程和技术原理来展开,在后续再点评这几家的优缺和切入点。1.1、Jito 的发展时间线首先,让我们用时间线来看看他的市占发展速度的神奇之处,请关注其中的质押率以及相关伙伴。21 年底成立22 年...

Delve into the risks behind the small matter of EVM-contract classification
In the field of smart contracts, the "Ethereum Virtual Machine EVM" and its algorithms and data structures are first principles. This paper starts from why the contract should be classified, combined with what kind of malicious attacks each scenario may face, and finally gives a set of relatively secure contract classification analysis algorithm. Although the technical content is higher, it can also be used as a miscellaneous reading A look at the dark forest of games between decentralized sy...

Research report of ten thousand words: The pattern evolution and merits and demerits of MEV on Solan…
introduction solana has been five years, of which Jito (the leader of MEV infrastructure on solana) has developed less than three years, but its market share has rapidly grown from the initial 15% to 95% today. It can be said that most of the Meme trading transactions on Solana have to go through him! The whole process is not wide, please readers set up the bench, click on the collection,Let the 14 Jun depth of the underlying principle, with you gradually revealed:What is Jito-solana? Why can...

Subscribe to shisi.eth

Subscribe to shisi.eth
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers


二舅币来了,二舅他跑了,相信今天你已经被这样的新闻刷屏了,那他真的跑路了吗?
结论:所谓Twitter上安全专家发推,并引发无数媒体转发的二舅币,其实并没有跑路,并且在31号主动放弃项目管理员特权。
既然想辟谣就要有证据,笔者通过二舅币的智能合约源代码解读并结合链上交易记录的回溯,反证项目方的链上操作,带你分析本案原委。
先声明,我不是项目方,也完全不持有任何二舅币,本文仅从技术研究角度出发解读。
回溯这次新闻传播,始于Twitter上的某“安全专家”发推,进而被无数媒体转发,通过前后信息传播链路,最初的原文如下图:


其实就传谣角度来说,确实这样的行文非常仿真,描述专业数值惊人,并且Tornado Cash确实也是清洗赃款常见途径,但真是如此吗?130W美元的损失是怎么算出来的。
项目方自己也有所回应:
一开始,项目方还想通过空投,来对其推特粉丝做奖励来形成增粉的目的。

这么一看,似乎真像是即将跑路的样子。
此币部署在BSC币安智能链上并且做了开源验证,都可以通过下地址翻阅到若干证据。
区块链浏览器如何使用可见前文:当我们在看Etherscan的时候,到底在看什么?
项目方地址:
0x469de2c6357666c69156722e83136ad1919a70aa
二舅币合约地址1
0x6e7ad49f67a9fa80d50f9659c3fc938296d68b58
二舅币合约地址2
0xe67cff48da0156e7978bc5a9a44d516a48d2a1d6
笔者从7.31号下午3点开始撰写本文,拉取到的二舅币链上交易共计1686条。
最初的部署操作的初始化环节,给项目方自己发了1,000,000,000,000,000个二舅币。

其部署时初始化的函数有较大的改动,多数与构建交易池的交互方法有关,不过核心产生资产并转移的部分如下部分代码中的_mint,等于是谁部署,就一次性mint出来给他。
说明:constructor 是合约的初始化函数,仅在合约部署时会被调用执行一次,后续无法执行。
constructor(若干参数){ ..若干代码
swapTokensAtAmount = totalSupply_.mul(2).div(10**6); // 0.002%
_mint(owner(), totalSupply_);
}
上来全给自己,越看越像Rug的前兆,也难怪别人要谣言你。。
但是发币是发币,得有交易所交易池进行不同币种兑换,才能转成跑路的其他资金,在区块链上发币并不难,5行代码就能发个币,别说100亿个代币,最高能给自己发10后面跟78个0的代币呢,因为标准ERC20对余额的存储类型是uint256,最大值为2**256次方。
那这个代币可以直接进行兑换吗?
源代码合计有3000行,不仅包含标准ERC20以及多数常见的配套插件等,还内嵌了对接交易池的兑换代码。
要跑路,就得有资金交互吧,
要么其他地址对合约进行交易带入
要么项目方自己从交易所池子兑换
笔者读取二舅币的全部合约交易发现,带有value中BNB的仅有一笔交易,有且仅有注入0.126个BNB

虽然二舅币在交易所中已经有大量的交易转移记录了(8K条),从而导致了现在二舅币合计拥有的地址达到1600多个。
但是如果要判断是否跑路,得看项目方发行时给自己持有的代币,有多少通过池子转换成其他代币。
追踪项目方给自己大规模发放的代币的记录,除了部署时给自己的1,000,000,000,000,000
就仅有上图中的第二行的转移操作,项目方将自己的990,000,000,000,000 个代币转入了0地址。

并且计算项目方自己地址的全部交易,可以看到仅有项目方通过pancakeSwapV2,用二舅币换到的1.3个BNB被转出。说明:当前BNB对美元价格为271美金一个BNB。
好家伙,为几百刀就跑路??

所以为何会出现130W美金的说法呢?
盲猜一波,可能这个安全专家是以为转出的是1.3B 的美金?然后觉得太离谱就以为这个”B”不是billion(十亿)而是million(百万)?
当然,如今交易池池子总量里的代币占总量只有0.55%这倒是对的,因为项目方自己销毁了99%的代币。而他的销毁,并没有修改totalSupply (这确实不应该,他的销毁不是调用标准的Burn方法)
总是目前为止,确实可以说,项目方并没有从中恶意牟利到多少钱,
并且,项目方也对谣言发起方反问,也并没有得到回复。

在31号下午,项目方自己面对流言四起,也做了一个决定性的操作,即放弃项目方的管理员权限。

可以上面图中看到,项目方地址最后的两笔交易操作,即对二舅币的两个合约地址做了所有权转0的操作。
这样真的可以彻底如猴子NFT一样放弃新Mint权吗?
确实可以
放弃所有权执行的是renounceOwnership方法,会将_owner 设置0地址,而这样一来整个合约中,被用onlyOwner修饰过的方法均将无法调度使用了
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0)); // 调度下方函数修改新的管理员
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
而无法使用的函数大概有20个,而清除管理员权限最重要的是清除掉Mint出新的token的方法,整个3000行代码里,仅有_setBalance 是调度Mint权限的,当然虽然他没有出现onlyOwner 符号修饰他,是因为他是个internal的方法,这种外部无法调用,仅能被合约内已经定义好的方法调用
function _setBalance(address account, uint256 newBalance) internal {
uint256 currentBalance = balanceOf(account);
if (newBalance > currentBalance) {
uint256 mintAmount = newBalance.sub(currentBalance);
_mint(account, mintAmount);
} else if (newBalance < currentBalance) {
uint256 burnAmount = currentBalance.sub(newBalance);
_burn(account, burnAmount);
}
}
而对应会使用他的两个函数如下,很明显被onlyOwner 修饰,所以后续都将无法使用了。
function excludeFromDividends(address account) external onlyOwner {
function setBalance(address payable account, uint256 newBalance) external onlyOwner
我也进一步分析存储余额的_balances 变量是否有偷留后门来用其他的名字来做绕过,确实也没有发现,至于是否其他的后门,就仰赖高级合约审计大佬们出手了。
项目方确实没跑路,或许是造谣者恶意,或许是他的小编看到下跌以及项目方转走了1.3BNB以为是1.3Milion。
但是链上交易记录不会骗人,合约代码也不会骗人,代码里定义是如何,就不会有所变化。
欢迎你从后台提交技术问题
关注十四,用技术视角带给你价值

二舅币来了,二舅他跑了,相信今天你已经被这样的新闻刷屏了,那他真的跑路了吗?
结论:所谓Twitter上安全专家发推,并引发无数媒体转发的二舅币,其实并没有跑路,并且在31号主动放弃项目管理员特权。
既然想辟谣就要有证据,笔者通过二舅币的智能合约源代码解读并结合链上交易记录的回溯,反证项目方的链上操作,带你分析本案原委。
先声明,我不是项目方,也完全不持有任何二舅币,本文仅从技术研究角度出发解读。
回溯这次新闻传播,始于Twitter上的某“安全专家”发推,进而被无数媒体转发,通过前后信息传播链路,最初的原文如下图:


其实就传谣角度来说,确实这样的行文非常仿真,描述专业数值惊人,并且Tornado Cash确实也是清洗赃款常见途径,但真是如此吗?130W美元的损失是怎么算出来的。
项目方自己也有所回应:
一开始,项目方还想通过空投,来对其推特粉丝做奖励来形成增粉的目的。

这么一看,似乎真像是即将跑路的样子。
此币部署在BSC币安智能链上并且做了开源验证,都可以通过下地址翻阅到若干证据。
区块链浏览器如何使用可见前文:当我们在看Etherscan的时候,到底在看什么?
项目方地址:
0x469de2c6357666c69156722e83136ad1919a70aa
二舅币合约地址1
0x6e7ad49f67a9fa80d50f9659c3fc938296d68b58
二舅币合约地址2
0xe67cff48da0156e7978bc5a9a44d516a48d2a1d6
笔者从7.31号下午3点开始撰写本文,拉取到的二舅币链上交易共计1686条。
最初的部署操作的初始化环节,给项目方自己发了1,000,000,000,000,000个二舅币。

其部署时初始化的函数有较大的改动,多数与构建交易池的交互方法有关,不过核心产生资产并转移的部分如下部分代码中的_mint,等于是谁部署,就一次性mint出来给他。
说明:constructor 是合约的初始化函数,仅在合约部署时会被调用执行一次,后续无法执行。
constructor(若干参数){ ..若干代码
swapTokensAtAmount = totalSupply_.mul(2).div(10**6); // 0.002%
_mint(owner(), totalSupply_);
}
上来全给自己,越看越像Rug的前兆,也难怪别人要谣言你。。
但是发币是发币,得有交易所交易池进行不同币种兑换,才能转成跑路的其他资金,在区块链上发币并不难,5行代码就能发个币,别说100亿个代币,最高能给自己发10后面跟78个0的代币呢,因为标准ERC20对余额的存储类型是uint256,最大值为2**256次方。
那这个代币可以直接进行兑换吗?
源代码合计有3000行,不仅包含标准ERC20以及多数常见的配套插件等,还内嵌了对接交易池的兑换代码。
要跑路,就得有资金交互吧,
要么其他地址对合约进行交易带入
要么项目方自己从交易所池子兑换
笔者读取二舅币的全部合约交易发现,带有value中BNB的仅有一笔交易,有且仅有注入0.126个BNB

虽然二舅币在交易所中已经有大量的交易转移记录了(8K条),从而导致了现在二舅币合计拥有的地址达到1600多个。
但是如果要判断是否跑路,得看项目方发行时给自己持有的代币,有多少通过池子转换成其他代币。
追踪项目方给自己大规模发放的代币的记录,除了部署时给自己的1,000,000,000,000,000
就仅有上图中的第二行的转移操作,项目方将自己的990,000,000,000,000 个代币转入了0地址。

并且计算项目方自己地址的全部交易,可以看到仅有项目方通过pancakeSwapV2,用二舅币换到的1.3个BNB被转出。说明:当前BNB对美元价格为271美金一个BNB。
好家伙,为几百刀就跑路??

所以为何会出现130W美金的说法呢?
盲猜一波,可能这个安全专家是以为转出的是1.3B 的美金?然后觉得太离谱就以为这个”B”不是billion(十亿)而是million(百万)?
当然,如今交易池池子总量里的代币占总量只有0.55%这倒是对的,因为项目方自己销毁了99%的代币。而他的销毁,并没有修改totalSupply (这确实不应该,他的销毁不是调用标准的Burn方法)
总是目前为止,确实可以说,项目方并没有从中恶意牟利到多少钱,
并且,项目方也对谣言发起方反问,也并没有得到回复。

在31号下午,项目方自己面对流言四起,也做了一个决定性的操作,即放弃项目方的管理员权限。

可以上面图中看到,项目方地址最后的两笔交易操作,即对二舅币的两个合约地址做了所有权转0的操作。
这样真的可以彻底如猴子NFT一样放弃新Mint权吗?
确实可以
放弃所有权执行的是renounceOwnership方法,会将_owner 设置0地址,而这样一来整个合约中,被用onlyOwner修饰过的方法均将无法调度使用了
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0)); // 调度下方函数修改新的管理员
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
而无法使用的函数大概有20个,而清除管理员权限最重要的是清除掉Mint出新的token的方法,整个3000行代码里,仅有_setBalance 是调度Mint权限的,当然虽然他没有出现onlyOwner 符号修饰他,是因为他是个internal的方法,这种外部无法调用,仅能被合约内已经定义好的方法调用
function _setBalance(address account, uint256 newBalance) internal {
uint256 currentBalance = balanceOf(account);
if (newBalance > currentBalance) {
uint256 mintAmount = newBalance.sub(currentBalance);
_mint(account, mintAmount);
} else if (newBalance < currentBalance) {
uint256 burnAmount = currentBalance.sub(newBalance);
_burn(account, burnAmount);
}
}
而对应会使用他的两个函数如下,很明显被onlyOwner 修饰,所以后续都将无法使用了。
function excludeFromDividends(address account) external onlyOwner {
function setBalance(address payable account, uint256 newBalance) external onlyOwner
我也进一步分析存储余额的_balances 变量是否有偷留后门来用其他的名字来做绕过,确实也没有发现,至于是否其他的后门,就仰赖高级合约审计大佬们出手了。
项目方确实没跑路,或许是造谣者恶意,或许是他的小编看到下跌以及项目方转走了1.3BNB以为是1.3Milion。
但是链上交易记录不会骗人,合约代码也不会骗人,代码里定义是如何,就不会有所变化。
欢迎你从后台提交技术问题
关注十四,用技术视角带给你价值

No activity yet