Ich muss den öffentlichen Auftragscode herausfinden, dh den Soliditätscode für eine Vertragsadresse.
Hier gibt es zum Beispiel eine Registerkarte für Vertragscode, aber nur im Assembly- und Byte-Code, was nicht nützlich ist.
Ich muss Methodensignaturen herausfinden, damit ich Themen bilden kann.
Hauptsächlich aufgrund von Optimierungen, die beim Kompilieren des Quellcodes durchgeführt werden, ist es nicht möglich, den Quellcode aus dem Bytecode/Opcode selbst zu erhalten. Verweisen Sie auf diese Frage .
Eine Rückkompilierung in den ursprünglichen Quellcode ist unmöglich, da alle Variablennamen, Typnamen und sogar Funktionsnamen entfernt werden. Es könnte technisch möglich sein, zu einem Quellcode zu gelangen, der dem ursprünglichen Quellcode ähnelt, aber sehr kompliziert ist, insbesondere wenn der Optimierer während der Kompilierung verwendet wurde. Ich kenne keine Tools, die mehr tun, als Bytecode in Opcodes umzuwandeln
Wenn der Vertragscode also Closed-Source ist, ist es nicht möglich, den Quellcode zu finden. Wenn der Vertrag jedoch öffentlich ist, besteht möglicherweise die Möglichkeit, den Quellcode zu finden. Sie können diese Frage weiterleiten .
Dafür gibt es keine generelle Lösung, da der Solidity-Code nicht auf der Blockchain veröffentlicht wird. Auf der Blockchain wird nur der resultierende Bytecode veröffentlicht. Es gibt verschiedene Block-Explorer wie ether.camp , die die Möglichkeit bieten, den Solidity-Code hochzuladen. Sie können den Soliditätscode verwenden, um zu überprüfen, ob er tatsächlich mit dem Bytecode der Adresse übereinstimmt.
Es gibt ein Projekt , das darauf abzielt, dies automatisch zu tun, indem Github-Repositories nach Quellcode durchforstet werden, der zum veröffentlichten Bytecode passt
AFAIK besteht keine Verpflichtung zur Veröffentlichung des Vertragsquellcodes. Es ist Sache des Benutzers, es vor der Verwendung überprüfen zu lassen. Wenn also ein Smart-Contract-Entwickler die Anziehungskraft der meisten Menschen erreichen möchte, liegt es an ihm, den Code offenzulegen, damit der andere ihm vertrauen kann. Anhand des Soliditätscodes und seiner Adresse kann jeder den bereitgestellten Vertrag mit dieser Methode überprüfen .
garg10mai
Ajoy Bhatia