首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试github的智能契约是否是块链ERC20上部署的智能契约

如何测试github的智能契约是否是块链ERC20上部署的智能契约
EN

Ethereum用户
提问于 2018-03-24 23:38:07
回答 1查看 324关注 0票数 0

这种情况是,骗子可以在一个开放的github上给出一个.sol,并将另一个合同部署在ethereum区块链上。这样做的原因之一是给github智能契约加上归属编码,并部署智能契约而不将其编码到块链上。

我问这个问题的原因是,我不能总是检查etherscan.io --一些契约的源代码--有时候它们确实发布了github智能契约,但是如何确保部署在github上的合同是部署在块链上的呢?

字节码?

EN

回答 1

Ethereum用户

发布于 2018-03-24 23:43:46

来自https://programtheblockchain.com/posts/2018/01/16/verifying-contract-source-code/

您可能还记得最近我们的文章“智能契约部署”是如何工作的,部署智能契约的事务具有从编译的源代码和任何构造函数参数派生的有效负载。这个过程是完全确定性的,所以如果您用相同的编译器编译相同的源代码并应用相同的构造函数参数,您将得到完全相同的有效负载。这个可重复的过程是验证可靠源代码和部署的智能契约之间的对应关系的关键。发布源代码时,需要提供重新创建部署有效负载所需的所有信息。除了源代码本身之外,您还需要共享所使用的编译器设置、使用的编译器版本以及应用的构造函数参数。然后,任何人都可以生成相应的部署有效负载,然后他们可以在创建智能契约的区块链上找到事务。如果两个有效负载匹配,那么所提供的源代码实际上就是用来部署智能契约的。这个过程有点麻烦,所以大多数人选择把这个责任委托给第三方。

具体来说,人们通常让以太扫描来做这项工作。您可以在以太扫描上验证任何合同,而不仅仅是您部署的合同。因此,如果作者提供了足够的信息来重复他们的编译过程(完整的源代码、编译器版本和设置、构造函数参数),那么您可以使用Etherscan的工具来验证代码是正确的。

如果他们没有提供这些信息,你可以要求他们这样做。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/43756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档