Kann ein intelligenter Vertrag die Token eines anderen Vertrags übertragen (stehlen)? [Duplikat]

Nehmen wir an, ich habe eine ETH-Adresse und dieselbe Adresse enthält AAA-, BBB- und CCC-Token. Jedes Token-Symbol wird von einem anderen Vertrag verwaltet (jeder Vertrag wurde von einer anderen Person/Organisation mit unterschiedlichen privaten Schlüsseln erstellt). Allerdings wurde bei jedem Vertrag (zB ICO Sale/Airdrop/Rewards/Referral/Gewinnanteile) die gleiche ETH-Adresse „registriert“.

Kann ein betrügerischer Vertrag dem anderen Token stehlen? Nehmen wir zum Beispiel an, der CCC-Vertrag enthält bösartigen Code, der AAA- und BBB-Token übertragen (stehlen) könnte, weil der Eigentümer der ETH-Adresse dazu verleitet wurde, die öffentliche ETH-Adresse beim CCC-Vertrag zu „registrieren“ (Betrug). Ist das möglich oder kann jeder Vertrag nur auf seine eigenen Token zugreifen?

Folgefrage (falls ich mehrere Fragen stellen darf):

  • Wenn es möglich ist, sollte ein unerfahrener Nicht-Entwickler alle Formen von Vertragsaufrufen vollständig vermeiden oder gibt es einen relativ einfachen Weg, um festzustellen, was ein Vertrag in Bezug auf Ihre anderen Token/ETH tun kann und was nicht?

  • Wenn dies nicht möglich ist (jeder Kontrakt kann nur seine eigenen Token kontrollieren), wie handeln (übertragen) dezentrale Börsen Token, die sie nicht besitzen?

Antworten (1)

Die einfache Antwort ist "Nein"

Die kompliziertere Antwort ist, dass, wenn Ihr Vertrag „ein Token“ erhält, dieser Token nicht wirklich in Ihren Vertrag eingefügt wird. Das Token befindet sich weiterhin im ausstellenden Vertrag. Ihr Vertrag erhält einfach die Kontrolle über das Token aus dem ausstellenden Vertrag.

Dies bedeutet, dass Ihr Vertrag dem ausstellenden Vertrag vorschreiben kann, dass er diesen Token übertragen oder anderweitig so behandeln soll, wie Sie es anordnen.

Die Bestimmung der Erlaubnis Ihres Vertrags zur Durchführung dieser Aktionen liegt vollständig beim ausstellenden Vertrag, basierend auf den darin codierten Regeln.

Dezentraler Austausch

Die meisten Börsen nutzen die Fähigkeit eines Vertrags, die Befugnis zur Kontrolle eines Teils Ihrer Token an einen Dritten zu delegieren.

Dies wird im ERC20-Standard durch den approve/ transferFrom-Mechanismus erreicht.