Architektonische Schizophrenie Facebook Waage

Nach zwei Jahren kehrte ich zum Blog zurück, um einen Beitrag zu veröffentlichen, der sich von den üblichen langweiligen Vorträgen über Haskell und Mathematik unterscheidet. Ich beschäftige mich seit einigen Jahren mit Fintech in der EU und es scheint ein guter Zeitpunkt zu sein, über ein Thema zu schreiben, das in den Tech-Medien bisher wenig Beachtung gefunden hat.

Facebook hat kürzlich eine sogenannte „neue Finanzdienstleistungsplattform“ namens Libra veröffentlicht. Es ist als digitales Abwicklungssystem positioniert, das auf einem Korb internationaler Währungen basiert, die auf einer „Blockchain“ verwaltet und in einem von der Schweiz aus verwalteten Geldpool gespeichert werden. Die Ziele des Projekts sind ehrgeizig und haben weitreichende geopolitische Konsequenzen.

В Financial Times и New York Times Viele vernünftige Artikel über die unsicheren monetären und wirtschaftlichen Annahmen hinter dem vorgeschlagenen Finanzsystem. Es gibt jedoch nicht genügend Spezialisten, die eine technische Analyse durchführen können. Nicht viele Menschen arbeiten an der Finanzinfrastruktur und sprechen öffentlich über ihre Arbeit, daher findet dieses Projekt in den Tech-Medien nicht viel Beachtung, obwohl sein Inneres für die Welt offen ist. Ich meine Open Source in Repositories Libra и Calibra-Organisation.

Was der Welt gegenüber offen steht, ist ein architektonisch schizophrenes Artefakt mit dem Anspruch, eine sichere Plattform für die globale Zahlungsinfrastruktur zu sein.

Wenn man in die Codebasis eintaucht, weicht die tatsächliche Implementierung des Systems völlig vom erklärten Ziel ab, und das auf die bizarrste Art und Weise. Ich bin sicher, dass dieses Projekt eine interessante Unternehmensgeschichte hat. Daher ist es logisch anzunehmen, dass es mit einiger Sorgfalt entworfen wurde, aber in Wirklichkeit sehe ich eine wirklich seltsame Reihe von Architekturentscheidungen, die das gesamte System zerstören und Benutzer gefährden.

Ich werde nicht vorgeben, eine objektive Meinung über Facebook als Unternehmen zu haben. Nur wenige Menschen in der IT-Branche sehen sie mitfühlend an. Doch ein Vergleich seiner Aussagen mit dem veröffentlichten Kodex zeigt deutlich, dass der angegebene Zweck grundsätzlich irreführend ist. Kurz gesagt, dieses Projekt stärkt niemanden. Er wird vollständig unter der Kontrolle eines Unternehmens bleiben, dessen Werbegeschäft so in Skandalen und Korruption steckt, dass es keine andere Wahl hat, als zu versuchen, seine Zahlungen und Kreditwürdigkeit zu diversifizieren, um zu überleben. Das klare langfristige Ziel besteht darin, als Datenbroker und Vermittler beim Zugang der Verbraucher zu Krediten auf der Grundlage ihrer persönlichen Social-Media-Daten zu fungieren. Dies ist eine absolut schreckliche und dunkle Geschichte, die nicht die Aufmerksamkeit erhält, die sie verdient.

Die einzige Rettung dieser Geschichte besteht darin, dass das von ihnen geschaffene Artefakt für die anstehende Aufgabe so unglaublich ungeeignet ist, dass es nur als Akt der Hybris angesehen werden kann. In diesem Projekt gibt es mehrere schwerwiegende Architekturfehler:

Die Lösung des Problems der byzantinischen Generäle in einem Zugangskontrollnetzwerk ist ein inkonsistenter Entwurf

Das Problem der byzantinischen Generäle ist ein eher enger Bereich der Erforschung verteilter Systeme. Es beschreibt die Fähigkeit eines Netzwerksystems, zufälligen Komponentenausfällen standzuhalten und gleichzeitig Korrekturmaßnahmen zu ergreifen, die für den Betrieb des Systems von entscheidender Bedeutung sind. Ein widerstandsfähiges Netzwerk muss mehreren Arten von Angriffen standhalten, darunter Neustarts, Ausfälle, böswillige Belastungen und böswillige Abstimmungen bei Führungswahlen. Dies ist die Hauptentscheidung für die Libra-Architektur und hier völlig bedeutungslos.

Der zeitliche Komplexitätsaufwand dieser zusätzlichen Struktur hängt vom Algorithmus ab. Es gibt viel Literatur zu Varianten der Paxos- und Raft-Protokolle, die das Problem der byzantinischen Generäle lösen, aber alle diese Strukturen verursachen zusätzlichen Overhead für die Kommunikation Architektonische Schizophrenie Facebook Waage um das Quorum aufrechtzuerhalten. Für Libra wählten sie einen Algorithmus mit dem höchstmöglichen Kommunikationsaufwand Architektonische Schizophrenie Facebook Waage im Falle eines Führungsversagens. Und es entsteht zusätzlicher Aufwand durch die mögliche Wiederwahl von Führungskräften bei verschiedenen Arten von Netzwerkausfällen.

Bei einem System, das innerhalb eines Konsortiums hochregulierter multinationaler Konzerne betrieben wird, bei dem alle Benutzer über einen von Facebook signierten Code verfügen und der Zugriff auf das Netzwerk von Facebook kontrolliert wird, macht es einfach keinen Sinn, böswillige Teilnehmer auf der Konsensebene zu berücksichtigen. Es ist nicht klar, warum dieses System überhaupt das Problem der byzantinischen Generäle lösen würde, anstatt lediglich einen konsistenten Prüfpfad zur Überprüfung der Einhaltung zu führen. Die Möglichkeit, dass ein Libra-Knoten, der von Mastercard oder Andressen Horrowitz betrieben wird, plötzlich anfängt, Schadcode auszuführen, ist ein seltsames Szenario, das es zu planen gilt. Es lässt sich besser angehen, indem einfach die Protokollintegrität und nichttechnische (d. h. rechtliche) Mittel sichergestellt werden.

In Zeugenaussagen vor dem Kongress wurde das Produkt als Konkurrent zu neuen internationalen Zahlungsprotokollen wie WeChat, Alipay und M-Pesa angepriesen. Allerdings ist keines dieser Systeme darauf ausgelegt, auf Validator-Pools zu laufen, um das Problem der byzantinischen Generäle zu lösen. Sie sind einfach auf einem herkömmlichen Bus mit hoher Bandbreite ausgelegt, der die Verkabelung nach einem festen Regelwerk vornimmt. Dies ist ein natürlicher Ansatz für die Gestaltung eines Zahlungssystems. Gut designed Das Zahlungssystem wird einfach nicht auf das Problem der doppelten Ausgaben und Gabelungen stoßen.

Der Overhead des Konsensalgorithmus löst kein Problem und begrenzt nur den Durchsatz des Systems aus keinem anderen Grund als dem Ladungskult der öffentlichen Blockchain, der für diesen Anwendungsfall nicht gedacht ist.

Libra hat keinen Transaktionsdatenschutz

Laut Dokumentation ist das System unter Berücksichtigung dieser Anforderungen konzipiert PseudonymitätDas heißt, die im Protokoll verwendeten Adressen werden aus öffentlichen Schlüsseln auf elliptischen Kurven ermittelt und enthalten keine Metadaten zu Konten. Allerdings gibt es in der Beschreibung der Governance-Struktur der Organisation oder im Protokoll selbst nirgendwo Hinweise darauf, wie die an Transaktionen beteiligten Wirtschaftsdaten vor Validatoren verborgen bleiben. Das System ist darauf ausgelegt, Transaktionen in großem Umfang an eine Reihe externer Parteien zu replizieren, die gemäß den bestehenden europäischen und US-amerikanischen Bankgeheimnisgesetzen nicht in die wirtschaftlichen Details eingeweiht werden sollten.

Datenrichtlinien in verschiedenen Ländern sind schwierig zu koordinieren, insbesondere angesichts unterschiedlicher Gesetze und Vorschriften in verschiedenen Gerichtsbarkeiten mit unterschiedlichen kulturellen Ansichten zu Datenschutz und Privatsphäre. Das Protokoll selbst steht Konsortiumsmitgliedern standardmäßig vollständig offen, was ein klares technisches Manko darstellt und nicht den Anforderungen entspricht, für die es entwickelt wurde.

Libra HotStuff BFT ist nicht in der Lage, den für ein Zahlungssystem erforderlichen Durchsatz zu erreichen

Im Vereinigten Königreich sind Clearingsysteme wie BAC in der Lage, rund 580 Transaktionen pro Monat abzuwickeln. Gleichzeitig können hochoptimierte Systeme wie Visa 000 Transaktionen pro Tag verarbeiten. Die Leistung variiert je nach Transaktionsgröße, Netzwerkrouting, Systemlast usw AML-Prüfungen (Geldwäschebekämpfung, Geldwäscheprogramme).

Libra versucht, Probleme zu lösen, die für Inlandstransfers eigentlich keine Probleme sind, da die Nationalstaaten im letzten Jahrzehnt ihre Clearing-Infrastruktur modernisiert haben. Für Privatkunden in der Europäischen Union ist der Geldtransfer überhaupt kein Problem. Auf herkömmlicher Infrastruktur ist dies mit einem Standard-Smartphone in Sekundenschnelle möglich. Bei großen Unternehmenstransfers gibt es verschiedene Mechanismen und Regeln für den Transfer großer Geldbeträge.

Es gibt keinen technischen Grund, warum grenzüberschreitende Zahlungen nicht sofort abgewickelt werden können, abgesehen von den Unterschieden in den Regeln und Anforderungen zwischen den jeweiligen Gerichtsbarkeiten. Werden die notwendigen vorbeugenden Maßnahmen (Kundensorgfalt, Sanktionsprüfung etc.) mehrfach in verschiedenen Phasen der Transaktionskette durchgeführt, kann es zu einer Verzögerung der Transaktion kommen. Diese Verzögerung ist jedoch ausschließlich eine Folge der gesetzlichen Bestimmungen und deren Einhaltung, nicht der Technologie.

Für Verbraucher gibt es keinen Grund, warum eine Transaktion im Vereinigten Königreich nicht innerhalb von Sekunden abgewickelt werden sollte. Die Einzelhandelstransaktionen in der EU verlangsamen sich tatsächlich KYC-Check (Know Your Customer) und von Regierungen und Aufsichtsbehörden auferlegte AML-Beschränkungen, die gleichermaßen für Libra-Zahlungen gelten. Selbst wenn Facebook die Hindernisse für grenzüberschreitende Übertragungen und private Datentransfers überwinden würde, ist das vorgeschlagene Modell Hunderte von Personenjahren vom globalen Transaktionsdurchsatz entfernt und müsste wahrscheinlich von Grund auf neu konzipiert werden.

Die Sprache von Libra Move ist falsch

Das Whitepaper stellt mutige Behauptungen über eine neue, ungetestete Sprache namens Move auf. Diese Aussagen sind aus Sicht der Programmiersprachentheorie (PLT) recht zweifelhaft.

Move ist eine neue Programmiersprache zur Implementierung benutzerdefinierter Transaktionslogik und intelligenter Verträge auf der Libra-Blockchain. Da Libra darauf abzielt, eines Tages Milliarden von Menschen zu bedienen, hat bei der Entwicklung von Move die Sicherheit oberste Priorität.

Ein Hauptmerkmal von Move ist die Möglichkeit, beliebige Ressourcentypen mit einer von linearer Logik inspirierten Semantik zu definieren.

In öffentlichen Blockchains stehen Smart Contracts der Logik öffentlicher Netzwerke mit Treuhandkonten, Geldwäsche, OTC-Token-Ausgabe und Glücksspiel gegenüber. All dies geschieht in einer verblüffend schlecht gestalteten Sprache namens Solidity, die aus akademischer Sicht den Autor von PHP wie ein Genie aussehen lässt. Seltsamerweise scheint die neue Sprache von Facebook nichts mit diesen Technologien zu tun zu haben, da es sich tatsächlich um eine Skriptsprache handelt, die für obskure Unternehmenszwecke gedacht ist.

In privaten Distributed Ledgers gehören Smart Contracts zu den Begriffen, mit denen Berater herumwerfen, ohne viel Rücksicht auf eine klare Definition oder einen klaren Zweck zu nehmen. Berater für Unternehmenssoftware verdienen in der Regel Geld mit Unklarheiten, und intelligente Verträge sind die Apotheose des Unternehmensobskurantismus, weil sie buchstäblich als alles definiert werden können.

Nachdem wir Aussagen über ihre Sicherheit gemacht haben, müssen wir uns mit der Semantik der Sprache befassen. Korrektheit in der Programmiersprachentheorie besteht typischerweise aus zwei verschiedenen Beweisen: „Fortschritt“ und „Erhaltung“, die die Konsistenz des gesamten Raums der Bewertungsregeln für die Sprache bestimmen. Genauer gesagt ist eine Funktion in der Typentheorie „linear“, wenn sie ihr Argument genau einmal verwendet, und „affin“, wenn sie es höchstens einmal verwendet. Das lineare Typsystem bietet eine statische Garantie dafür, dass eine deklarierte lineare Funktion wirklich linear ist, indem es allen Funktionsunterausdrücken Typen zuweist und verfolgt, wo Aufrufe erfolgen. Dies ist eine schwierig zu beweisende Eigenschaft und lässt sich nicht einfach für ein gesamtes Programm implementieren. Die lineare Typisierung ist immer noch ein sehr akademisches Forschungsgebiet, das durch die Implementierung der Typeinzigartigkeit in Clean und des Typbesitzes in Rust beeinflusst wird. Es gibt einige vorläufige Vorschläge zum Hinzufügen linearer Typen zum Glasgow Haskell Compiler.

Die Aussage von Move über die Verwendung linearer Typen scheint ein ungerechtfertigter Einblick in den Compiler zu sein, da dort Es gibt keine solche Typprüfungslogik. Soweit man das beurteilen kann, zitiert das Whitepaper kanonische Literatur von Girard und Peirce, und in der tatsächlichen Umsetzung gibt es nichts Ähnliches.

Darüber hinaus taucht die formale Semantik der vermeintlich sicheren Sprache weder in der Implementierung noch im Dokument auf. Die Sprache ist klein genug, um einen vollständigen Beweis der korrekten Semantik in Coq oder Isabelle zu finden. Tatsächlich ist die Implementierung eines End-to-End-Compilers für die vollständige Konvertierung mit Übertragung von Beweisen in Bytecode mit modernen Tools, die im letzten Jahrzehnt erfunden wurden, durchaus möglich. Wir wissen, wie es geht Werke von George Necula und Peter Lee im Jahr 1996.

Aus der Perspektive der Programmiersprachentheorie ist es unmöglich, die Behauptung zu überprüfen, dass Move eine zuverlässige und sichere Sprache ist, da es sich bei diesen Behauptungen eher um reine Handbewegungen und Marketing als um tatsächliche Beweise handelt. Dies ist eine alarmierende Situation für ein Sprachprojekt, das Transaktionen in Milliardenhöhe verarbeiten muss.

Die Kryptographie der Waage ist fehlerhaft

Der Aufbau sicherer Kryptosysteme ist ein sehr schwieriges technisches Problem, und es ist immer am besten, die Arbeit mit gefährlichem Code mit einer guten Portion gesunder Paranoia anzugehen. In diesem Bereich gibt es große Durchbrüche, wie zum Beispiel das Microsoft Everest-Projekt, das eine überprüfbare Sicherheit aufbaut TLS-Stack. Es gibt bereits Tools zum Erstellen überprüfbarer Grundelemente. Das ist zwar teuer, übersteigt aber offensichtlich nicht die wirtschaftlichen Möglichkeiten von Facebook. Das Team entschied sich jedoch, nicht an dem Projekt teilzunehmen, das als verlässliche Grundlage für das globale Finanzsystem angekündigt wurde.

Libra-Projekt je nachdem aus mehreren relativ neuen Bibliotheken zur Erstellung experimenteller Kryptosysteme, die erst in den letzten Jahren erschienen sind. Es lässt sich nicht sagen, ob die Abhängigkeiten zu den folgenden Tools sicher sind oder nicht, da keine dieser Bibliotheken geprüft wurde und keine Standard-Offenlegungsrichtlinien gelten. Insbesondere für einige Kernbibliotheken gibt es keine Gewissheit hinsichtlich des Schutzes vor Seitenkanalangriffen und Timing-Angriffen.

  1. ed25519-dalek
  2. Kurve25519-dalek

Die Libra-Bibliothek wird noch experimenteller und geht darüber hinaus Standardmodell, wobei sehr neue Techniken wie überprüfbare Zufallsfunktionen (VRFs), bilineare Paare und Schwellenwertsignaturen angewendet werden. Diese Methoden und Bibliotheken mögen sinnvoll sein, aber ihre Kombination in einem System wirft ernsthafte Bedenken hinsichtlich der Angriffsfläche auf. Die Kombination all dieser neuen Tools und Techniken erhöht die Komplexität des Sicherheitsnachweises erheblich.

Es ist davon auszugehen, dass dieser gesamte kryptografische Stapel bis zum Beweis des Gegenteils für verschiedene Angriffe anfällig ist. Facebooks berühmtes „Move Fast and Break Things“-Modell lässt sich nicht auf kryptografische Tools anwenden, die Finanzdaten von Kunden verarbeiten.

Libra versäumt es, Verbraucherschutzmechanismen umzusetzen

Eine Besonderheit des Zahlungssystems ist die Möglichkeit, eine Transaktion rückgängig zu machen, wenn die Zahlung aufgrund einer Klage storniert wird oder zu einem Unfall oder Systemausfall führt. Das Libra-System ist auf „Vollständigkeit“ ausgelegt und beinhaltet keine Transaktionsart zur Zahlungsstornierung. Im Vereinigten Königreich unterliegen alle Zahlungen zwischen 100 und 30,000 £ dem Consumer Credit Act. Dies bedeutet, dass das Zahlungssystem gemeinsam mit dem Verkäufer die Verantwortung trägt, wenn ein Problem mit dem gekauften Produkt auftritt oder der Zahlungsempfänger die Dienstleistung nicht erbringt. Ähnliche Regeln gelten in der EU, Asien und Nordamerika.

Das aktuelle Design von Libra enthält kein Protokoll zur Einhaltung dieser Gesetze und keinen klaren Plan für die Erstellung eines solchen. Schlimmer noch: Aus architektonischer Sicht lässt die Endgültigkeit der authentifizierten Datenstruktur des Kernels, basierend auf dem Zustand des Merkle-Laufwerks, keinen Mechanismus zu, um ein solches Protokoll zu erstellen, ohne den Kernel neu zu entwerfen.

Nach einer technischen Überprüfung dieses Projekts können wir zu dem Schluss kommen, dass es in keiner angesehenen Fachzeitschrift für verteilte Systemforschung oder Finanztechnik die Anforderungen bestehen wird. Um die globale Geldpolitik zu ändern, muss viel technische Arbeit geleistet werden, um ein zuverlässiges Netzwerk und eine sichere Verarbeitung von Benutzerdaten zu schaffen, denen die Öffentlichkeit und die Regulierungsbehörden vertrauen können.

Ich sehe keinen Grund zu der Annahme, dass Facebook in seinem Design die notwendige Arbeit geleistet hat, um diese technischen Probleme zu überwinden, oder dass es technische Vorteile gegenüber der aktuellen Infrastruktur hat. Zu sagen, dass ein Unternehmen regulatorische Flexibilität benötigt, um Innovationen zu erforschen, ist keine Entschuldigung dafür, diese nicht zuerst umzusetzen.

Source: habr.com

Kommentar hinzufügen