Secret

Published by Mario Oettler on

Auf einer Blockchain ist nichts geheim. Finden Sie das Passwort auf der Blockhain wieder.

Dafür benötigen Sie den Debugger (Plugin) von Remix.

Schritte:

Kopieren Sie sich den folgenden Smart Contract in die Remix-IDE. Diesen finden Sie in der Datei 07_vault.sol.

// SPDX-License-Identifier: Unlicended
pragma solidity 0.8.26;

contract Vault {
  bool public locked;
  bytes32 private password;

  constructor(bytes32 _password) public {
    locked = true;
    password = _password;
  }

  function unlock(bytes32 _password) public {
    if (password == _password) {
      locked = false;
    }
  }
}
  1. Als Passwort wird ein bytes32-Wert erwartet.
  2. Dafür bauen wir uns einen Hilfscontract, der einen String in bytes32 umwandelt.

Diesen finden Sie in folgender Datei: 07_vaultHelper.sol

pragma solidity 0.8.26;

contract VaultHelper{

    function convert(string memory myString) public view returns(bytes32){
        bytes32 stringInBytes32 = bytes32(bytes(myString));
        return (stringInBytes32);
    }
}
  • Geben Sie eine Zeichenkette ein und kopieren Sie sich das Ergebnis.
  • Deployen Sie folgenden Smart Contract mit dem Parameter, der Ihnen durch unseren Hilfscontract ausgegeben wurde.

Aktivieren Sie das Debugger-Plugin in Remix.

Gehen Sie in die Debug-Ansicht.

Kopieren Sie den Transaktionshash in das Eingabefeld und Klicken Sie auf „Start debugging“.

Führen Sie die komplette Transaktion aus, indem Sie auf „Jump to the next breakpoint“ klicken.

Scrollen Sie runter bis zum Widget „Storage [Completely Loaded]“.

Dort sind die Werte der Variablen in der Deklarationsreihenfolge angegeben. Klappen Sie die Variable für unser Passwort aus und vergleichen Sie den Wert mit dem Parameter, den Sie in Schritt 1 übergeben haben.

Categories: