Vertrag an definierter Adresse erstellen?

Ist es möglich, einen Smart Contract an einer vorhersehbaren Adresse zu definieren? 0xf0 CREATEim Yellow Paper schlägt vor, dass die Adresse deterministisch bestimmt wird

x = A(Ia, σ[Ia]n)

Seite 29 von http://gavwood.com/paper.pdf

Antworten (2)

Nein. Die Adresse ist immer der Hash des RLP Serialisierung der Liste der Adresse des Erstellers und der aktuellen Nonce

Wie erwartet ist es ein schwieriges Problem, aber nicht unmöglich. Alles, was man tun muss, ist, EOA-Adressen auszuprobieren, Nonce ist dann 0, und sie zu hashen, um das Ergebnis zu sehen und sie wegzuwerfen, wenn es einem nicht gefällt. Allerdings viel Arbeit .

Etwas abseits des Themas ... (Aber im Zusammenhang mit Rolands Kommentar zu einer vorherigen Antwort.)

Dies könnte ähnlich wie das Erstellen von Adressen für die versteckten Dienste von Tor betrachtet werden.

Eine versteckte Service- (oder .onion)-Adresse wird aus dem öffentlichen Teil des privaten/öffentlichen Schlüsselpaars abgeleitet, das zur Kommunikation mit dem Service verwendet wird. Im Allgemeinen sind .onionURLs daher eine zufällige Folge alphanumerischer Zeichen.

Um eine benutzerdefinierte .onionAdresse zu erstellen – wie z. B. https://facebookcorewwwi.onion/ von Facebook – müssen Sie die Erstellung mit Tools wie Eschalot oder Scallion im Grunde brutal erzwingen . Diese Tools erstellen private/öffentliche Schlüsselpaare und hashen den resultierenden öffentlichen Schlüssel, bis sie einen Hash finden, der mit der Zeichenfolge Ihrer Wahl übereinstimmt. Je länger Ihre gewünschte Zeichenfolge ist, desto mehr Arbeit ist erforderlich.

Ein interessantes Projekt könnte darin bestehen, ein ähnliches Tool für Ethereum-Vertragsadressen zu erstellen ...

stimme zu, vielleicht sind Vanity-Vertragsadressen etwas, das die Leute wollen.