Zum Hauptinhalt springen

Minting-Prozess

Der Minting-Prozess bei Tokentagged ist nicht nur das Erstellen eines Tokens auf der Blockchain; es ist der Moment, in dem die physische Hardware kryptografisch und dauerhaft an eine spezifische Smart Contract Collection gebunden wird.

Dieser Prozess stellt sicher, dass ein Tokentag nicht für eine andere, gefälschte Collection „wiederverwendet“ werden kann, sobald er einmal initialisiert wurde.

Prozessübersicht

Der Minting-Workflow besteht aus drei verschiedenen Phasen, die innerhalb einer einzigen Benutzerinteraktion (dem „Antippen“) stattfinden:

  1. Aktivierung (falls erforderlich): Ableitung der Wallet-Keys.
  2. Hardware Locking (NFC Write): Dauerhaftes Speichern der Collection-Adresse auf dem Chip.
  3. On-Chain Minting: Übermittlung des Beweises an die Ethereum-Blockchain.

1. Aktivierungsprüfung

Vor dem Minting prüft die Web App, ob der Tag bereits aktiviert ist (d. h. einen abgeleiteten Private Key besitzt). Falls nicht, wird zuerst die Trust Chain Aktivierung durchgeführt.

Um zu verhindern, dass ein Tag verwendet wird, um gefälschte NFTs auf nicht autorisierten Contracts zu minten, erzwingt die Tokentag-Hardware eine Write-Once-Richtlinie (einmaliges Schreiben) für die Vertragszuordnung.

  1. Übertragung: Die Web App sendet die Adresse des Ziel-Collection Smart Contracts per NFC an den Tag.
  2. Speicherung: Der Tag schreibt diese Adresse in einen spezifischen, geschützten Speicherbereich.
  3. Sperrung: Der Tag sperrt diesen Speicherbereich dauerhaft. Diese Aktion ist irreversibel.
Hardware-Bindung

Sobald ein Tokentag eine Collection-Adresse empfangen hat, ist es physisch unmöglich, diese zu ändern. Der Tag kann nicht mehr für andere Collections verwendet werden.

3. Kryptografische Signierung

Die Web App fordert vom Tag eine Signatur an, um die Minting-Transaktion zu autorisieren. Der Tag erstellt einen Hash basierend auf dem aktuellen Kontext und signiert ihn mit seinem einzigartigen Card Key.

Die signierten Daten beinhalten:

  • Token ID: Abgeleitet vom Public Key des Tags.
  • Operator: Die Wallet-Adresse des Nutzers, der das Item mintet.
  • Collection Address: Die im Tag gespeicherte Adresse (stellt den Link sicher).
  • Chain ID & Blockhash: Zum Schutz vor Replay-Attacken.

4. Smart Contract Ausführung

Der letzte Schritt ist die Transaktion auf der Ethereum-Blockchain. Die Funktion mintTokentag in Tokentagged.sol orchestriert die Validierung und Erstellung.

Funktionssignatur

function mintTokentag(
uint256 tokenId,
string memory tokenURI,
uint256 amount,
address royaltyReceiver,
uint96 royaltyFraction,
uint blocknumber,
uint8 v, bytes32 r, bytes32 s,
bytes memory cardAttestation,
bytes memory attestation
)

Validierungslogik

Der Smart Contract führt vor dem Minting strenge Prüfungen durch:

  1. Signatur-Verifizierung (_verifySignature):

    • Rekonstruiert den Nachrichten-Hash unter Verwendung der eigenen Adresse (address(this)).
    • Stellt den Unterzeichner mittels ecrecover wieder her.
    • Kritische Prüfung: Validiert, dass der wiederhergestellte Unterzeichner zur tokenId passt (welche die Tag-ID enthält). Dies beweist, dass die Hardware diesen spezifischen Contract autorisiert hat.
  2. Attestation-Verifizierung (_authorizeTokentag):

    • Ruft die SignerRegistry auf, um attestation und cardAttestation zu prüfen.
    • Stellt sicher, dass der Chip ein echter, von uns hergestellter Tokentag ist.
  3. Supply-Check:

    • Stellt sicher, dass der Token noch nicht gemintet wurde (bei NFTs).

Ergebnis

Wenn alle Prüfungen erfolgreich sind, wird der Token in die Wallet des Nutzers (_msgSender()) gemintet und die Metadaten-URI wird gesetzt. Das physische Objekt besitzt nun einen verifizierbaren digitalen Zwilling.