Blockchain: Schlafen um die Wette
Dienstag, 04.05.2021
In unserem Artikel über die Blockchain haben wir umrissen, welche Art an Problem die Blockchain löst und auf welche Weise das geschieht. Das Projekt Hyperledger tritt an, um neue Lösungen zu präsentieren. Eine davon ist PoET. Das ist ein Verfahren, das den Zugriff auf die Blockchain ohne teuere Berechnungsverfahren regelt. Wir haben uns das Verfahren angesehen.
Hyperledger ist ein Projekt, das von der Linux Foundation gehostet wird. Es besteht aus mehreren Open-Source-Teilprojekten und wird vom Who-is-who der Software-Industrie unterstützt. Im Rahmen des Projekts ist bereits 2016 eine Spezifikation eines Verfahrens erschienen, das den schreibenden Zugriff auf die Blockchain regelt, ohne dass teuere Berechnungen stattfinden. Das Verfahren nennt sich Proof of Elapsed Time (PoET) und wurde von der Firma Intel entwickelt.
Das Verfahren ist eigentlich relativ simpel: Ein Algorithmus verteilt nach einem Zufallsprinzip Wartezeiten an die angeschlossenen Teilnehmer (Nodes). Jeder Knoten muss nun diese Zeit warten. Nachdem der Knoten wieder aufwacht, versucht er den Zugriff auf die Blockchain. Dieser Zugriff ist aber nur dem ersten Knoten, der aufwacht, möglich.
Wir schlafen um die Wette
Das Verfahren hat aber einen kleinen Haken. Wie stellt man sicher, dass der Prozess, in dem der Blockchain-Knoten läuft, auch tatsächlich die angegebene Zeit wartet? Für Intel ist die Lösung ganz einfach: Das stellt der Prozessor sicher.
Nun müssen wir noch einmal einen Schritt zurücktreten und uns überlegen, warum denn überhaupt eine Wartezeit über den Zugriff entscheiden soll. Wir hatten in unserem letzten Beitrag beschrieben, dass die Rechenoperationen "teuer" sein müssen, oder, um es abstrakter zu formulieren: Sie müssen eine Ressource konsumieren. Die Ressource soll im PoET-Verfahren nicht die Rechenleistung, sondern die Zeit sein. Das ist der Grund, warum nicht einfach ausgelost wird, wer denn den nächsten Zugriff vornehmen soll. (Der zweite und naheliegendere Grund ist, dass der Algorithmus die anderen Nodes nicht kennen muss.)
Was würde denn passieren, wenn ein Server einfach auslost, wer als nächster auf die Blockchain zugreift? Richtig: Das Verfahren hätte dann eine zentrale Instanz, die bestimmt, wer schreiben darf. Das widerspricht sich mit dem Konzept der Blockchain, wo die Nodes ja selbst berechnen, wer als nächstes zugreift. Hier gibt es einen Wettstreit der Nodes, und die Nodes mit der größten Rechenleistung dürfen auch am meisten schreiben. Und nun also wird die Rechenleistung durch Wartezeit ersetzt.
Im Übrigen müssen die Wartezeiten etwas länger sein, als die durchschnittliche Request-Zeit im Internet, da ja sonst die Nodes mit der besten Internet-Verbindung gewinnen und nicht die, welche die kürzeste Wartezeit haben. Damit verbleibt das Problem der langen Transaktionszeiten.
Rechnen in der Enklave
Der Algorithmus, der die Wartezeit zuordnet, soll in einer sogenannten Enklave ablaufen. Laut Spezifikation ist eine Enklave
A protected area in an application’s address space which provides confidentiality and integrity even in the presence of privileged malware. The term can also be used to refer to a specific enclave that has been initialized with a specific code and data.
Der Prozessor stellt also sicher, dass in einem geschützten Bereich des Arbeitsspeichers der Algorithmus abläuft, der die Wartezeiten auslost. Und der Bereich soll so sicher sein, dass selbst Malware, die auf einem Computer läuft, diesen Bereich nicht angreifen kann. Was kann da also passieren?
Dann warten wir mal...
Wenn wir einmal zurückblicken, was wir in den letzten Jahren an Fehlern in Intel-Prozessoren erleben durften, die zu schwerwiegenden Sicherheitsproblemen geführt haben, dann muss eine Person, die ihre virtuelle Geldbörse einem solchen System anvertraut, schon sehr viel Mut mitbringen. Entsprechend würden wir nie empfehlen, Krankenakten, Dokumente und was immer wertvoll und schützenswert ist, mit einem solchen Verfahren zu verwalten. Denn wenn einmal ein Angriff möglich ist, dann ist die gesamte Blockchain mit einem Schlag wertlos.
Die Welt wartet also weiter auf ein Verfahren, das der grundlegenden Idee der Blockchain gerecht wird, ohne die Energievorräte unserer Welt aufzubrauchen. Auch das Verfahren Proof of Space sieht nicht so aus, als könnte es die Lösumng sein. In der Zwischenzeit können wir uns mit nützlichen Dingen beschäftigen. Denn wie heißt es so schön in diesem Artikel über PoET:
it allows a miner’s processor to sleep and switch to other tasks for the specified time, thereby increasing efficiency.
(es [das Verfahren] erlaubt es dem Prozessor des Miners zu schlafen und in der Zwischenzeit andere Aufgaben zu erledigen, was die Effektivität erhöht.)
Dem ist nichts hinzuzufügen.
Was übrig bleibt
Bei aller Kritik am Blockchain-Konzept, das ohne eine Instanz mit Vertrauensstellung auskommen muss, sind wir nach wie vor vom Konzept der "privaten" Blockchain überzeugt, das nichts anderes ist, als eine Public Key Infrastructure (PKI) mit einer Instanz, die Vertrauensstellung genießt. Dieses Konzept haben wir ja schon in unserem letzten Artikel erläutert. Für die meisten Fragestellungen, für die die Blockchain als Lösung diskutiert wird, ist eine solche PKI genau die Lösung der Wahl.
Es müssen nicht immer Zertifikate signiert werden und Zertifikate müssen nicht notgedrungen Personen beglaubigen. Das geschieht in den meisten Fällen beim Https-Protokoll ja auch nicht. Dort wird meist ein Host beglaubigt, nicht eine Person oder Firma.
Kombiniert mit anderen Konzepten, die zum Beispiel ein anonyme Bearbeitung ermöglichen, sind die Möglichkeiten einer PKI nahezu grenzenlos.
Es braucht nur ein wenig Wissen und Erfahrung im Bereich der Software-Entwicklung, um solche Lösungen zu verwirklichen.