Können neben der Adresse weitere Informationen in QR-Codes kodiert werden?

  1. Ich möchte einen Vertrag erstellen.
  2. Ich möchte einen QR-Code generieren, um diesen Vertrag aufzurufen.
  3. Ich möchte diesen QR-Code einem Benutzer präsentieren.

Gibt es eine Möglichkeit, zusätzliche Informationen in den QR-Code einzubetten (wie Benutzername oder Seed oder andere kleine Daten)? Mit anderen Worten, ich möchte einige Werte an den Vertrag übergeben, indem ich sie in einen QR-Code kodiere. Jeder generierte QR-Code würde anders aussehen, aber denselben Vertrag aufrufen.

Vielen Dank!

Antworten (3)

Sie rufen denselben Vertrag über das Adressfeld mit einer Transaktion auf. Sie können Daten über das Datenfeld hinzufügen.

QR-Codes können für beliebige Daten generiert werden. Sie können bei größeren Datensätzen ziemlich groß und detailliert werden, aber wir bei MyEtherWallet verwenden erfolgreich QR-Codes, um signierte Transaktionen von einem Offline-Computer auf einen Online-Computer auf der Registerkarte Offline-Transaktionen zu verschieben .

Hinweis: QR-Codes haben eine maximale Größe. Nur numerisch: 7.089 Zeichen. Alphanumerisch: 4.296 Zeichen. Binär/Byte: 2.953 Zeichen (8-Bit-Bytes). Hier erfahren Sie mehr .

Die Frage lautet also: Welche Informationen möchten Sie in den QR-Code einfügen und was macht der Benutzer?

Hier ist eine Lösung:

  1. Finden Sie eine Plattform, die Parameter für einen Vertrag über Abfragezeichenfolgen oder eine andere Methode akzeptiert.

  2. Generieren Sie einen URI mit diesen Parametern für den Benutzer und verwandeln Sie ihn in einen QR-Code.

  3. Laden Sie den Benutzer ein, den QR-Code zu verwenden, um zu dieser URL zu gelangen, und verwenden Sie sein Konto, um die Transaktion durchzuführen (auch bekannt als Interaktion mit dem Smart Contract).

Nehmen wir ein Beispiel dafür, wie Sie es jetzt mit MyEtherWallet tun könnten, das die Möglichkeit hat, Adresse, Betrag, Daten und Gas auf der Seite zum Senden von Transaktionen zu akzeptieren.

Angenommen, Sie möchten, dass ein Benutzer 1 ETHan die Adresse 0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8mit einem sendet simple text string, und eine leichte Erhöhung des Gasverbrauchs auf 23000, um die Kosten für die zusätzlichen Daten zu decken. Die URL, mit der Sie beginnen würden, wäre:

https://www.myetherwallet.com/?gaslimit=23000&data=4d79457468657257616c6c657420697320746865206265737421&to=0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8&value=1.0#send-transaction

Wenn ein Benutzer zu dieser Registerkarte gehen und sein Konto entsperren würde, würden alle diese Informationen ausgefüllt. Dann müssen sie nur noch die signierte Transaktion generieren und absenden. Wenn Sie testen und sehen möchten, was passiert, wenn Sie zu dieser URL gehen, können Sie den privaten Testschlüssel von verwenden 92aa647439f9300d214f9264141931627082364f4c081a646d72e067e04e0e1b, um die Brieftasche zu entsperren und zu sehen.

Daten können alles sein, was Sie wollen, und das ist ein separates Problem, mit dem Sie sich befassen müssen. Alle Daten müssen im Hex-Format vorliegen. Im obigen Beispiel habe ich einen Online-ASCII-zu-HEX-Konverter verwendet , um die Nachricht „MyEtherWallet is the best!“ zu senden. In diesem Fall macht die Empfängeradresse nichts mit diesen Daten. Wenn es sich bei der Empfangsadresse um einen Vertrag handelt, könnte sie offensichtlich so eingerichtet werden, dass sie basierend auf dem Wert dieser Daten liest und etwas damit macht.

Ich wusste nicht, dass MEW mit dieser Art von URL umgehen kann. Gute Arbeit ! Codieren Sie weiter!
Ein Vorteil besteht darin, keine Diskussion über mögliche Gefahren von URIs eröffnen zu müssen. Ich bin mir sicher, dass EIP durchgehen wird ... irgendwann. 😣

Sie sollten sich den Vorschlag von Alex Van De Sand für die ERC-URL des EIP-Projekts (Ethereum Improvement Proposals) ansehen, das darauf abzielt, ein System zu schaffen, mit dem Apps eine Transaktion ausfüllen können, einschließlich des Datenfelds. Das Datenfeld ist das, was Sie ausfüllen müssen, um eine Vertragsfunktion aufzurufen. Sobald Sie diese URL-Zeichenfolge haben, müssen Sie nur noch einen QRCode dafür generieren.

Dieser Vorschlag ist von BIP 21 inspiriert und könnte für das IBAN-Adressformat gelten, kann aber auf andere vorgeschlagene Adressformate ausgedehnt werden. Stellen Sie sich diese Szenarien vor:

  • Eine Börse oder ein Sofortkonverter wie Shape Shift möchte eine einzige Ethereum-Adresse für Zahlungen erstellen, die in ihrem internen System in Guthaben umgewandelt oder Bitcoin an eine Adresse ausgegeben wird

  • Ein Geschäft möchte einem Kunden einen QR-Code zeigen, der eine Zahlung für genau 12,34 Ether anzeigt, die Metadaten zum gekauften Produkt enthält

  • Eine Wettseite möchte einen Link bereitstellen, auf den der Benutzer auf seiner Seite klicken kann, und er öffnet eine Standard-Ethereum-Brieftasche und führt einen bestimmten Vertrag mit bestimmten Parametern aus

  • Ein Dapp in Mist möchte den Benutzer also einfach auffordern, eine Transaktion mit einem bestimmten abi in einem einzigen Anruf zu unterzeichnen

Aber soweit ich weiß, kann vorerst kein mobiles Wallet einen beliebigen Vertrag aufrufen (ich wette, dass der erste, der diese Möglichkeit bietet, Jaxx sein wird, da sie sehr hart daran arbeiten, ihr Wallet zu verbessern) und dieser Vorschlag wird weder angenommen noch umgesetzt mobile und Desktop-Geldbörsen.

"Natürlich können Sie", in Theorie und Praxis. Sie können diese Technik anwenden .

Wenn Sie die Geduld haben, es sich vollständig anzusehen, finden Sie in diesem Video eine ausführliche Erklärung .

Willkommen bei Ethereum! Während dies die Frage theoretisch beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Auch wenn ich die Zeitung lese, verstehe ich nicht, wo Sie es nützlich finden, das zu erreichen, was OP verlangt. Kannst du bitte erklären ?
Mit Steganografie- und Komprimierungsalgorithmen können Sie Informationen in Form von binären Datenpixeln codieren, ohne einen funktionierenden QR zu verändern. Die Idee ist, ein kleines Bild (die Daten) in einem QR zu haben, das tun kann, was der Benutzer will. Soll ich das in der Antwort hinzufügen?
Es gibt jedoch viele Möglichkeiten, die als brauchbares Beispiel herangezogen werden sollten.