长推:ParaSpace合约硬核审查

Juu17热度: 6752

只要多签钱包的4把私钥牢牢受@yuboruan 和公司的控制,便可以保证用户的资产不会受到损失。

原文作者:Juu17

原文来源:twitter

注:本文来自@0xjuu_17 推特,其是Hedgue crypto研究主管,原推文内容由MarsBit整理如下:

我花了8个小时,检查了210个合约文件,并对ParaSpace目前所有线上合约做了权限检查,大家看完之后便可以对 @yuboruan 和ParaSpace的用户资金安全情况消除怀疑:

源代码Github: https://github.com/para-space/paraspace-core

1涉及资产权限的合约文件

/apestaking/AutoCompoundApe.sol

管理员权限控制:

onlyPoolAdmin

/apestaking/AutoYieldApe.sol

管理员权限控制:

onlyPoolAdmin

/apestaking/P2PPairStaking.sol

管理员权限控制:

onlyOwner

/misc/ParaSpaceAirDrop.sol

管理员权限控制:

onlyOwner

/protocol/pool/PoolParameters.sol

管理员权限控制:

onlyPoolAdmin

/protocol/tokenization/PToken.sol

管理员权限控制:

onlyPoolAdmin

通过继承受影响:

/protocol/tokenization/DelegationAwarePToken.sol

/protocol/tokenization/PTokenSApe.sol

/protocol/tokenization/PYieldToken.sol

/protocol/tokenization/base/MintableIncentivizedERC721.sol

管理员权限控制:

onlyPoolAdmin

通过继承受影响:

/protocol/tokenization/NToken.sol

2涉及资产权限的接口文件

/interfaces/IPoolParameters.sol

通过继承受影响:

/interfaces/IPool.sol (Section 4展开)

/protocol/pool/PoolParameters.sol (Section 1已列出)

/interfaces/IPToken.sol

通过继承受影响:

/protocol/tokenization/PToken.sol (Section 1已列出)

3涉及资产权限的库文件

/protocol/libraries/logic/PoolLogic.sol

使用受影响合约:

/protocol/pool/PoolParameters.sol

/protocol/tokenization/libraries/MintableERC721Logic.sol

使用受影响合约:

/protocol/tokenization/base/MintableIncentivizedERC721.sol

4存放用户资产的线上合约

P2P Staking:

0xf090Eb4c2B63e7B26E8Bb09e6Fc0cC3A7586263B

权限:

0xca8678d2d273b1913148402aed2E99b085ea3F02 (TimeLockExecutor)

权限穿透:

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714 (Safe多签钱包 4签5)

ParaSpace

ParaSpace

https://app.safe.global/settings/setup?safe=eth:0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

TimeLockProxy:

0x59B72FdB45B3182c8502cC297167FE4f821f332d

无集权账号可直接提取资产

ParaSpace

PToken 的transferUnderlyingTo 和 transferOnLiquidation虽然可以转移资产,但只有 Pool 合约可以调用,其余对IncentivizedERC20的调用均为view只读权限

集权资产提取函数 rescueTokens 权限判断为继承自 IncentivizedERC20 的 onlyPoolAdmin

NToken 的transferUnderlyingTo 和 transferOnLiquidation虽然可以转移资产,但只有 Pool 合约可以调用

集权资产提取函数直接继承自 MintableIncentivizedERC721 的 rescueERC20,权限判断为 onlyPoolAdmin

经检查,列出的PToken/NToken 资产合约的管理权限均来自 ACLManager 远程读取

ACLManager合约地址:

0x42b0C49130162F949e82ba855C4eFF0C3Fd4C5cC

PToken和NToken架构图如下

ParaSpace

PToken和NToken高危财产函数传递关系

ParaSpace

ParaSpace

yubo.eth 对权限有绝对的控制力,并在5个月前将前文提到的Safe多签钱包

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

设置为了Admin,PoolAdmin和AssetListingAdmin

yubo.eth将ACLManager 的 ADDRESSES_PROVIDER 更改为了多签且 PoolAdmin 设置为了 TimeLockExecutor

ParaSpace

https://etherscan.io/tx/0xa511b88029ed090da4480504107a0f11e20758959b6b28ca983a134fc84e642c

Recap:

只要多签钱包

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

的4把私钥牢牢受 @yuboruan 和公司的控制,便可以保证用户的资产不会受到损失。

我会继续保持跟进此事进展。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
关键字:ParaSpace