Habe ein TEE mit Polkadot

Von: Alain Brenzikofer

Hallo vom SubstraTEE-Team der Supercomputing Systems AG! In diesem Beitrag möchten wir dir die wichtigsten Konzepte des vertrauenswürdigen Off-Chain-Computings vorstellen. Wir zeigen, was du heute mit unserem Tool SubstraTEE machen kannst und was unsere Vision für zukünftige Anwendungen ist.

SubstraTEE ist ein Framework, das vertrauenswürdige Ausführungsumgebungen (Trusted Execution Environments, TEEs) in von Substrate erstellte Blockchains integriert - mit anderen Worten in Chains, die mit dem nativen Tool von Polkadot erstellt wurden und die am einfachsten mit dem Polkadot-Netzwerk zu verbinden sind. SubstraTEE zielt darauf ab, den Datenschutz, die Skalierbarkeit und die Interoperabilität von Blockchains zu verbessern, indem Statusaktualisierungen in TEEs ausgelagert werden.

Was ist ein TEE?

Wir haben uns an die Tatsache gewöhnt, dass wir unseren IT-Administratoren vertrauen müssen. Während diese Administratoren früher interne Mitarbeiter in unseren Unternehmen waren, arbeiten wir heute oft auf gemieteten Cloud-Plattformen.

Diese Administratoren können alle Daten, die auf einem von ihnen verwalteten Rechner verarbeitet werden, lesen und verändern. Leider erstreckt sich diese Fähigkeit nicht nur auf bekannte Administratoren, denen wir vertrauen, sondern auch auf Hacker, die sich Administratorrechte verschaffen können. Kein Unternehmen, egal wie qualifiziert es ist, ist gegen solche Angriffe gefeit.

Hier kommen TEEs ins Spiel.

Du kannst dir einen TEE als einen Co-Prozessor vorstellen, der seine eigenen kryptografischen Schlüssel verwaltet und nur Programme ausführt, deren Hash oder Fingerabdruck mit dem Originalcode übereinstimmt. Der Hersteller des Prozessors garantiert durch das Design seiner Hardware, dass niemand Zugang zu den internen Schlüsseln des TEEs hat oder seinen Speicher auslesen kann. Darüber hinaus kann der Hersteller jeden TEE authentifizieren und einem Nutzer per Fernzugriff bestätigen, dass sein unbefugtes Programm tatsächlich auf einem echten TEE läuft, selbst wenn sich der Rechner physisch in einem externen Rechenzentrum befindet.

TEEs versprechen, kurz gesagt, die Integrität und Vertraulichkeit von (entfernten) Berechnungen. Du solltest dir jedoch über mögliche Sicherheitsbedrohungen im Klaren sein.

Vorausgesetzt, wir vertrauen auf die Integrität und Designkompetenz der TEE-Hersteller, können wir mit TEEs jede Statusaktualisierung durchführen, ohne unsere Daten mit dem Blockchain Validator oder anderen Nutzern zu teilen. Private Token-Transfers, private Smart Contracts und private State Channels werden so möglich und relativ kostengünstig.

Datenschutz auf Blockchains erreichen

Blockchains sind von Wesensart aus transparent. Das müssen sie auch sein, um die Dezentralisierung zu gewährleisten. Pseudonymität lässt sich leicht erreichen, aber viele Anwendungsfälle erfordern Vertraulichkeit. Unternehmen wollen keine Geschäftsgeheimnisse preisgeben und müssen die europäischen Datenschutzgesetze (GDPR) einhalten. Letzteres bedeutet, dass keine persönlichen Daten jemals mit einer unerlaubten Blockchain in Berührung kommen dürfen. Eine weitere Herausforderung besteht darin, die Integrität von Berechnungen zu validieren, ohne die verarbeiteten Daten lesen zu können. Hier bieten TEEs eine perfekte Lösung: Integrität und Vertraulichkeit der Berechnungen.

TEE gegen Zero Knowledge Proofs

Zero-Knowledge Proofs (ZKP) ermöglichen es ZCash, private Token-Transfers durchzuführen. ZKP garantieren zwar die Privatsphäre, ohne den Hardware-Herstellern zu vertrauen, sind aber rechenintensiv und haben große Transaktionsvolumina zur Folge. Außerdem sind ZKP ein hochaktuelles Forschungsgebiet und ihr Verständnis erfordert spezielles Fachwissen.

TEEs hingegen sind bereits im Mainstream angekommen und bieten eine angemessene Benutzerfreundlichkeit. Puristen mögen sich darüber beschweren, dass die Hersteller heutzutage ihre Entwürfe nicht mit der Öffentlichkeit teilen und sich so einer wissenschaftlichen Überprüfung entziehen. Keystone hat bereits ein Open-Source-TEE-Projekt ins Leben gerufen, das eines Tages zu gut geprüften TEEs führen könnte. Allerdings müssten wir dem Hersteller der Keystone-ASICs vertrauen, der eine Fernbescheinigung ausstellen muss.

Private Transaktionen mit SubstraTEE

Supercomputing Systems hat hart daran gearbeitet, einen funktionierenden Proof-of-Concept für ihr Produkt SubstraTEE zu erstellen. Private Token-Transaktionen stehen im Mittelpunkt der ersten Anwendungsfälle.

Gehen wir ein Beispiel durch, wie eine private Token-Transaktion funktionieren würde. Alice möchte 100 Token an Bob transferieren, ohne dass jemand außer Bob die Details dieses Transfers erfährt. Sie erstellt eine abgeschirmte SubstraTEE-Transaktion:

let call = TrustedCall::balance_transfer(alice_incognito.public(), bob_incognito.public(), 100);

Alice verschlüsselt diesen Aufruf mit dem Shielding Key des SubstraTEE Workers und sendet ihn als normale Substratextrinsic an das SubstraTeeRegistry Runtime Modul. Da die Nutzdaten verschlüsselt sind, kann niemand außer dem SubstraTEE-Worker-TEE sie entschlüsseln und die Details dieses Aufrufs sehen. Die SubstraTeeRegistry fungiert als Proxy und sendet ein Ereignis mit der undurchsichtigen Payload..

Der SubstraTEE-Worker hört auf solche Aufrufereignisse und leitet die Payload an sein TEE weiter. Das TEE entschlüsselt dann die Nutzdaten und ruft den ursprünglichen Aufruf ab, der von der Zustandsübergangsfunktion (STF) verarbeitet wird. In dieser Demo ist die STF genau derselbe Code wie das Runtime-Modul von Substrate Balances.

Die STF arbeitet mit einem verschlüsselten Off-Chain-Status und führt die Statusaktualisierung durch. In diesem Fall transferiert er 100 Token vom Konto alice_incognito zu bob_incognito. Der resultierende Status wird verschlüsselt und im IPFS gespeichert. Anschließend sendet der Worker eine Bestätigung an die Chain, die den Hash des Aufrufs und den Hash des aktualisierten Status enthält.

Alice kann Bob nun davon überzeugen, dass der Transfer stattgefunden hat, indem sie ihm den Rohaufruf über einen beliebigen privaten Kommunikationskanal sendet. Bob kann nun die Bestätigungen auf der Chain nach dem Hash des Anrufs durchsuchen. Bob kann seinen aktualisierten Kontostand auch sehen, indem er den Worker direkt über eine Websocket-Schnittstelle abfragt.

Sie können diese Live-Demo von SubstraTEE auf YouTube ansehen.

Remote Attestation

Wie können Alice und Bob sicher sein, dass der SubstraTEE-Worker tatsächlich den erwarteten Code auf einem echten TEE ausführt?

Bei der Remote Attestation wird der TEE-Hersteller gebeten, einen TEE zu authentifizieren und einen Bericht zu signieren, der die Echtheit des TEEs sowie den Hash der Binärdatei, die der TEE ausführt, bestätigt. Ein solcher Bericht enthält auch den öffentlichen Signierschlüssel des TEEs, so dass wir uns sicher sein können, dass wir wirklich mit dem richtigen TEE sprechen, indem wir seine Signatur überprüfen.

SubstraTEE vereinfacht diesen Prozess für seine Nutzer, indem es Remote-Attestationen on-chain in der SubstraTeeRegistry speichert. Auf diese Weise müssen sich die Nutzer nicht bei den Bescheinigungsdiensten der Hersteller registrieren.

Redundanz

Was passiert, wenn ein SubstraTEE-Worker offline geht? Wenn es nur einen einzigen Worker gibt, kann der gesamte Status für immer verloren gehen. Um Redundanz zu erreichen, brauchen wir mehrere Arbeiter, die mit demselben Status arbeiten. Sie alle müssen den Verschlüsselungsschlüssel des Zustands kennen.

Wir haben SubstraTEE so konzipiert, dass es ohne Erlaubnis funktioniert und jeder der Gruppe von Arbeitern beitreten kann, indem er regelmäßig Fernbescheinigungen an unsere SubstraTeeRegistry übermittelt. Ein neu hinzukommender Arbeiter fragt einen etablierten Arbeiter nach den Schlüsseln. Die beiden Arbeiter führen eine gegenseitige Fernbescheinigung durch und die Schlüssel werden bereitgestellt. Der neue Worker holt sich den neuesten Stand aus dem IPFS und beginnt sofort mit der Bearbeitung von Anfragen, parallel zu allen anderen Workern. Jetzt können wir alle bis auf einen Worker ausschalten und das Netzwerk bleibt lebendig und reaktiv.

Ausblick

Wir haben gezeigt, wie SubstraTEE die Privatsphäre verbessert. Als Nächstes kommt der vertrauenslose Zugriff auf den Zustand der Chain. Wir arbeiten daran, generische private Berechnungen mit Ink!-Contracts zu ermöglichen und Chain-Brücken zu bauen.

Bald könnten wir direkte Aufrufe implementieren, um die Skalierbarkeit zu erhöhen. Während unsere derzeitige Lösung 1+N On-Chain-Transaktionen pro Anfrage erfordert (wobei N die Anzahl der Worker ist), bedeutet der direkte Aufruf, dass die Anfragen direkt an den Worker gesendet und auf der Chain in Stapeln bestätigt werden, was 1000e von Anfragen pro Sekunde ermöglicht. Der direkte Aufruf hat noch einen weiteren Vorteil im Hinblick auf die Datenschutzgrundverordnung: das Recht auf Löschung. Da keine personenbezogenen Daten jemals die Blockchain berühren, kann das Recht auf Löschung als Funktion der STF implementiert werden.

Diese Publikation wurde durch einen Zuschuss der Web3 Foundation unterstützt.

0

Das ist der offizielle WagMedia Space Germany! Hier werden interessante und lesenswerte DotSama-Artikel durch die Wag-Media community übersetzt und öffentlich zur Verfügung gestellt. Mitmachen? Trete unserem Discord bei und werde Teil der größten News Community im DotSama Universum.

0 comments

Das ist der offizielle WagMedia Space Germany! Hier werden interessante und lesenswerte DotSama-Artikel durch die... Show More