Faragiri

Blockchain lernenProgrammieren

900 Bescheinigungen im Jahr, unveränderlich eingetragen, und die Personalabteilung ist keinen Schritt weiter. Was eine Kette in Deutschland ersetzen müsste.

6Abschnitte
6Min. Lesezeit
2Tiefe

Der Mechanismus

Ein geänderter Block macht jeden danach ungültig

Vier Zeitpunkte auf einem Register. Jeder Block trägt eine Zusammenfassung des vorherigen, und darin liegt der ganze Kniff.

  1. MärzDer Block, den jemand ändern willDie billigste Stelle für den Versuch, weil alles danach schon feststeht
  2. AprilTrägt die Zusammenfassung des MärzPasst in dem Augenblick nicht mehr, in dem der März sich ändert, und der Unterschied ist Rechnen und keine Meinung
  3. MaiUnd so weiter, jeder Block seitherJeder mit demselben Argument ungültig, bis in die Gegenwart
  4. JetztDer Block, der gerade dazukommtHier baut das Netz weiter, schneller als ein Angreifer den Rest neu leisten kann

Über die Dauer eines Blocks sagt der Abstand nichts, die ist je Kette verschieden. Überall gleich ist, dass eine Änderung umso teurer wird, je weiter zurück sie liegt.

Tobias Fürst arbeitet in einem Softwarehaus in Regensburg, und im Frühjahr kam ein Auftrag herein: Ein privater Weiterbildungsanbieter wollte seine Teilnahmebescheinigungen auf eine Blockchain schreiben, 900 im Jahr, damit Personalabteilungen prüfen können, ob eine Bescheinigung echt ist. Entschieden hat den Auftrag keine technische Frage, sondern eine, die in einer Minute zu stellen ist: Wer ist es, dem hier niemand traut?

Denn eine Kette beweist, wer etwas eingetragen hat, und nie, ob es stimmt. Sie hält fest, dass dieser Anbieter am 14. April diese Bescheinigung ausgestellt hat. Ob der Kurs stattgefunden hat, steht nirgends darin, und genau das wollte die Personalabteilung wissen.

Eine Kette ist ein Register ohne Eigentümer, und jede ihrer Eigenschaften folgt aus dieser einen Verweigerung. Sie ist langsamer als eine Datenbank, sie kostet Geld je Eintrag, und sie lässt sich nicht berichtigen. Das sind keine Mängel, sondern der Preis der Zusage.

Der Hash des Vorgängers

Der Mechanismus ist ein Gedanke, wiederholt. Jeder Block trägt eine Prüfsumme über die Vorgänge in ihm, und er trägt zusätzlich die Prüfsumme des Blocks davor. Ein Block nennt den Hash des vorherigen, also ändert eine Änderung alle. Wer einen Vorgang aus dem März ändert, ändert die Prüfsumme dieses Blocks; die im Aprilblock aufbewahrte Kopie davon passt nicht mehr; und so weiter bis heute.

Damit wird das Umschreiben teuer und nicht unmöglich. Wer angreift, muss die Arbeit jedes Blocks seit dem geänderten neu leisten, und zwar schneller, als der Rest des Netzes neue anlegt. Diese Kosten sind gewollt, sie laufen dauernd, und bezahlt werden sie von allen in Gebühren. Die Einzelheiten stehen unter Aufbau einer Kette, die zwei Arten, diese Kosten aufzuerlegen, unter Konsens.

Drei Sätze, die Geld kosten

Der erste kennt keine Beschwerdestelle. Die Seed-Phrase ist der Schlüssel, und wer sie hat, hat das Geld. Es gibt kein Konto, kein Zurücksetzen und keine Institution. Zwölf oder vierundzwanzig gewöhnliche Wörter, einmal erzeugt, und der Besitz dieser Seed-Phrase ist das Eigentum an der Wallet. Ein Foto davon in der Galerie eines Telefons ist die gesamte Sicherheit. Was daran hängt, steht unter Wallets und Schlüssel.

Der zweite überrascht jeden, der seinen ersten Vertrag schreibt. Gas wird bezahlt, ob die Transaktion gelingt oder scheitert. Bezahlt wird die versuchte Rechenarbeit und nicht das Ergebnis, also hat ein Vertrag, der eine Weile läuft und dann ablehnt, echtes Geld verbraucht. Eine Schleife über eine unbegrenzte Liste ist hier keine langsame Funktion. Sie ist eine Funktion, die eine Wallet leert und danach zurücksetzt.

Der dritte bestimmt, wie überhaupt geschrieben wird. Ein veröffentlichter Vertrag wird nicht geändert, nur ersetzt und umgelenkt. Der Code an einer Adresse ist dauerhaft, also gibt es die gewohnte Übung nicht, am Dienstag eine Korrektur auszuliefern. Alles unter Smart Contracts folgt daraus, bis hin zu den umständlichen Mustern, die einen änderbaren Zeiger vor eine unveränderliche Umsetzung stellen.

Die Kammer ist die Antwort, die schon da ist

Eine Kette ist dann richtig, wenn die Beteiligten einander wirklich nicht trauen und es keine Einrichtung gibt, die beide anerkennen. Das kommt vor, und es kommt seltener vor, als der Markt behauptet. In Deutschland kommt es noch seltener vor, und das ist der Unterschied zu fast jedem englischen Text über dieses Thema: Für Qualifikationen gibt es hier bereits die Einrichtung, der beide Seiten glauben. Ein Gesellenbrief kommt von der Handwerkskammer, ein Abschlusszeugnis von der Industrie- und Handelskammer, und eine Personalabteilung, die zweifelt, ruft dort an.

Der Weiterbildungsanbieter aus Regensburg hat diese Stellung nicht, und eine Kette verschafft sie ihm nicht. Wenn die Personalabteilung dem Anbieter nicht glaubt, hilft ein unveränderlicher Eintrag des Anbieters nichts, denn unverändert bleibt genau die Behauptung, die bezweifelt wird. Ein signierter Eintrag auf dem eigenen Server des Anbieters gibt der Personalabteilung dieselbe Auskunft, kostet je Bescheinigung nichts und lässt sich berichtigen, wenn ein Name falsch geschrieben ist.

Es gibt eine Fassung dieses Auftrags, die eine Kette wollen würde, und sie ist es wert, benannt statt weggewischt zu werden: die, in der der Anbieter schließen könnte, oder in der er gebeten werden könnte, eine Bescheinigung still zurückzuziehen. Wer diese Fassung wirklich hat, ist bei Identität und Nachweise richtig. Tobias hatte sie nicht, und die ehrliche Antwort war nein.

Der Regensburger Auftrag

Womit eine Kette wirklich bezahlt wird, sobald die Technik nicht die Frage ist

Die linke Schale ist der Betrieb, und sie ist immer beladen. Die rechte bleibt leer, solange es jemanden gibt, dem beide Seiten glauben.

  • Was der Betrieb kostetje Eintrag, dauerhaft, von irgendwem bezahlt
    • Eine Gebühr je Eintrag, ob er gelingt oder scheitert
    • Keine Berichtigung: ein falsch geschriebener Name bleibt
    • Langsamer als die Datenbank, die ersetzt werden sollte
  • Was sie einbringtalles wert, in dem engen Fall, in dem er vorliegt
    • Kein Eigentümer, den jemand zum Zurückziehen drängen kann
    • Eine Geschichte, die das Ende des Ausstellers übersteht
    • Prüfbar von jemandem, der bei niemandem ein Konto hat

der Drehpunkt ist die Frage, ob es die Einrichtung schon gibt, die beide Seiten anerkennen

Die Neigung ist kein Urteil über die Technik. Sie ist eine Aussage darüber, wie oft die rechte Schale wirklich beladen ist, und in einem Land mit Kammern ist sie es seltener als anderswo.

Personenbezug: der Hash hilft nicht

Angenommen, die Antwort wäre ja gewesen, dann steht in Europa eine zweite Frage davor, und sie hat mit Technik nichts zu tun. Ein Register, das sich nicht ändern lässt, und ein Anspruch auf Löschung schließen einander aus. Was auf eine öffentliche Kette geschrieben ist, bleibt dort, auch wenn die Person, um die es geht, es nicht mehr will.

Die übliche Antwort darauf ist, nur eine Prüfsumme einzutragen statt der Bescheinigung selbst. Sie ist halb richtig. Ein Hash bleibt personenbezogen, solange jemand das Original hat, denn wer die Bescheinigung besitzt, kann jederzeit prüfen, ob dieser Eintrag zu ihr gehört, und mehr braucht ein Personenbezug nicht. Ein Hash ist eine Einbahnstraße gegen das Erraten, keine Anonymisierung gegen jemanden, der die Antwort schon hat.

Was daraus für den Entwurf folgt, ist knapp: Auf die Kette gehört ein Merkmal ohne Person, etwa die Prüfsumme eines Kursdurchgangs mit einer laufenden Nummer, und die Zuordnung zu einem Namen bleibt beim Anbieter, wo sie gelöscht werden kann. Diese Trennung ist dieselbe, die auch eine Datenbanken braucht, nur ist sie hier nicht nachholbar.

Der Stillstand: die Lösung vor dem Problem

Hier bleiben die meisten stehen, und der Stillstand ist keine Wissenslücke. Es ist die Ankunft über den Kurs eines Tokens statt über eine Aufgabe, und danach die Suche nach etwas, worauf sich die Technik anwenden lässt. Was dabei herauskommt, ist eine Datenbank mit Zusatzschritten und einem schlechteren Fehlerbild. Die Leute, die daran arbeiten, wissen es meistens nach einem Monat und machen weiter, weil die Entscheidung schon verkündet war. Die Trustfrage zuerst zu stellen verhindert das und dauert eine Minute.

Der zweite Stillstand ist technisch und teuer. Wer in einer gewöhnlichen Sprache sicher ist, schreibt einen Vertrag so, als ließe sich der Code später ausbessern, weil das überall sonst geht. Überall sonst ist ein Fehler ein Dienstag und eine neue Auslieferung. Hier ist er eine dauerhafte Funktion an einer dauerhaften Adresse, die hält, was ihr geschickt wurde. Die Gewohnheiten, die jemanden in einer gewöhnlichen Sprache schnell machen, sind genau die, die hier teuer sind, und die Umstellung ist keine Schwierigkeit, sondern eine Arbeitsweise: schreiben, als gäbe es keinen zweiten Versuch.

Werkzeuge, und was Aufsicht hier heißt

Solidity ist weiterhin die Sprache, in der die meisten Verträge geschrieben werden, und diese Stellung hat sie, weil sie mit der ersten breit benutzten programmierbaren Kette kam und nicht, weil sie angenehm wäre. Sie ist frei. Das Material dazu unter Solidity verbringt mehr Zeit mit dem, was man nicht tut, als eine Seite über eine Sprache sonst braucht, und das ist angemessen.

Foundry ist die aktuelle Voreinstellung, um Verträge lokal zu bauen und zu prüfen, und es hat die auf JavaScript aufgebaute Vorgängergeneration abgelöst, aus dem gewöhnlichen Grund, dass es schneller ist und dass seine Tests in derselben Sprache stehen wie die Verträge. Eine lokale Testkette kostet nichts und ist der Ort, an dem ein Vertrag zum ersten Mal scheitern soll. Für die Hälfte im Browser gilt unter Web3-Anwendungen die vertraute Form, mit dem Unterschied, dass die Benutzerin ihre eigene Identität mitbringt und ihre Schreibvorgänge selbst bezahlt.

Ein Werkzeug fehlt in englischen Anleitungen, und es ist keines zum Installieren. Seit dem 30. Dezember 2024 gilt die Verordnung (EU) 2023/1114 über Märkte für Kryptowerte vollständig, in Deutschland begleitet vom Kryptomärkteaufsichtsgesetz, und beaufsichtigt wird das von der BaFin. Für eine Bescheinigung ohne Wert gilt davon nichts. Für alles, was ein Kunde als Guthaben, Gutschein oder Anteil versteht, gilt es sehr wohl, und der Satz, der im Projekt fällt, lautet fast immer: »Machen wir doch einen Token daraus.« An dieser Stelle ist die richtige nächste Handlung ein Anruf und keine Zeile Code.

Bleibt die Frage, wie eine Oberfläche aussieht, die auf ein solches Register zugreift statt auf einen Server, und was davon aus der Webentwicklung unverändert übernommen wird. Der Unterschied liegt nicht in der Anzeige, sondern darin, dass jeder Schreibvorgang eine Bestätigung und eine Gebühr hat, und beides muss die Oberfläche zeigen, bevor jemand tippt.

Daneben

Darüber