Architektonická schizofrenie Facebook Libra

Po dvou letech jsem se na blog vrátil pro příspěvek, který se liší od běžných nudných přednášek o Haskellovi a matematice. Posledních několik let pracuji na fintech v EU a zdá se, že nastal čas napsat o tématu, kterému technická média věnovala jen malou pozornost.

Facebook nedávno vydal to, co nazývá „novou platformou finančních služeb“ s názvem Libra. Je umístěn jako digitální vypořádací systém založený na koši mezinárodních měn, které jsou spravovány na „blockchainu“ a uloženy v peněžním fondu spravovaném ze Švýcarska. Cíle projektu jsou ambiciózní a mají rozsáhlé geopolitické důsledky.

В Financial Times и New York Times Spousta rozumných článků o nesprávných měnových a ekonomických předpokladech za navrhovaným finančním systémem. Není však dostatek odborníků schopných analyzovat z technického hlediska. Málokdo pracuje na finanční infrastruktuře a veřejně o své práci mluví, takže tento projekt se v technologických médiích příliš nezabývá, ačkoli jeho vnitřnosti jsou otevřené světu. Myslím open source v repozitářích Váhy и Organizace Calibra.

To, co je otevřené světu, je architektonicky schizofrenní artefakt s tvrzením, že je bezpečnou platformou pro globální platební infrastrukturu.

Pokud se ponoříte do základny kódu, skutečná implementace systému se zcela odchyluje od stanoveného cíle, a to těmi nejbizarnějšími způsoby. Jsem si jist, že tento projekt má zajímavou firemní historii. Je tedy logické předpokládat, že byl navržen s určitou pečlivostí, ale ve skutečnosti vidím opravdu zvláštní soubor architektonických rozhodnutí, která rozbíjejí celý systém a vystavují uživatele riziku.

Nebudu předstírat objektivní názor na Facebook jako společnost. Málokdo z IT branže se na ni dívá se soucitem. Ale srovnání jeho prohlášení a zveřejněného kodexu jasně ukazuje, že uvedený účel je zásadně klamný. Tento projekt zkrátka nikoho nezmocňuje. Zůstane zcela pod kontrolou společnosti, jejíž reklamní byznys je tak utápěn ve skandálech a korupci, že jí nezbývá nic jiného, ​​než se pokusit diverzifikovat své platby a kreditní hodnocení, aby přežila. Jasným dlouhodobým cílem je působit jako zprostředkovatel dat a zprostředkovatel v přístupu spotřebitelů k úvěru na základě jejich osobních údajů na sociálních sítích. Tohle je naprosto děsivý a temný příběh, kterému se nedostává pozornosti, kterou by si zasloužil.

Jedinou záchranou tohoto příběhu je to, že artefakt, který vytvořili, je tak vesele nevhodný pro daný úkol, že na něj lze pohlížet pouze jako na akt arogance. V tomto projektu je několik hlavních architektonických chyb:

Řešení problému byzantských generálů v síti řízení přístupu je nekonzistentní návrh

Problém byzantských generálů je poměrně úzkou oblastí výzkumu distribuovaných systémů. Popisuje schopnost síťového systému odolávat náhodným selháním součástí a zároveň přijímat nápravná opatření kritická pro provoz systému. Odolná síť musí odolat několika typům útoků, včetně restartů, výpadků, škodlivého zatížení a zlomyslného hlasování ve volbách do vedení. Toto je hlavní rozhodnutí pro architekturu Libra a je zcela nesmyslné.

Časová náročnost této dodatečné struktury závisí na algoritmu. Existuje mnoho literatury o variantách protokolů Paxos a Raft, které řeší problém byzantských generálů, ale všechny tyto struktury představují další režii pro komunikaci přes Architektonická schizofrenie Facebook Libra udržovat kvórum. Pro Váhy zvolili algoritmus s nejvyššími možnými náklady na komunikaci Architektonická schizofrenie Facebook Libra v případě selhání vedení. A existuje další režie z potenciálního znovuzvolení lídrů napříč různými typy událostí selhání sítě.

Pro systém fungující v rámci konsorcia vysoce regulovaných nadnárodních korporací, kde všichni uživatelé mají kód podepsaný Facebookem a přístup do sítě je řízen Facebookem, prostě nemá smysl uvažovat o zlomyslných účastnících na úrovni konsensu. Není jasné, proč by tento systém dokonce vyřešil problém byzantských generálů, místo aby jednoduše udržoval konzistentní auditní stopu pro kontrolu dodržování předpisů. Možnost, že by uzel Libra provozovaný Mastercard nebo Andressen Horrowitz náhle začal spouštět škodlivý kód, je zvláštní scénář, který je třeba plánovat a lépe se řeší jednoduchým zajištěním integrity protokolu a netechnickými (tj. legálními) prostředky.

Svědectví Kongresu označilo produkt za konkurenta novým mezinárodním platebním protokolům, jako jsou WeChat, Alipay a M-Pesa. Žádný z těchto systémů však není navržen tak, aby běžel na fondech validátorů k vyřešení problému byzantských generálů. Jsou jednoduše navrženy na tradiční širokopásmové sběrnici, která zajišťuje kabeláž podle pevně stanoveného souboru pravidel. Jedná se o přirozený přístup k návrhu platebního systému. Dobře navržený platební systém prostě nenarazí na problém dvojího utrácení a forků.

Režie konsenzuálního algoritmu neřeší žádný problém a pouze omezuje propustnost systému z jiného důvodu, než je cargo kult veřejného blockchainu, který není určen pro tento případ použití.

Váhy nemají žádné transakční soukromí

Podle dokumentace je systém navržen s ohledem pseudonymita, to znamená, že adresy použité v protokolu jsou získány z veřejných klíčů na eliptických křivkách a neobsahují metadata o účtech. Nikde v popisu struktury řízení organizace ani v samotném protokolu však není uvedeno, jak budou ekonomická data, která se týkají transakcí, před validátory skryta. Systém je navržen tak, aby replikoval transakce ve velkém měřítku pro řadu externích stran, které by podle stávajících evropských a amerických zákonů o bankovním tajemství neměly být zasvěceny do ekonomických podrobností.

Zásady týkající se dat v různých zemích je obtížné koordinovat, zejména s ohledem na rozdílné zákony a předpisy v různých jurisdikcích s různými kulturními názory na ochranu dat a soukromí. Samotný protokol je standardně zcela otevřen členům konsorcia, což je jasný technický nedostatek, který nesplňuje požadavky, pro které je navržen.

Libra HotStuff BFT není schopna dosáhnout propustnosti požadované pro platební systém

Ve Spojeném království jsou clearingové systémy jako BAC schopny zpracovat přibližně 580 000 000 transakcí za měsíc. Vysoce optimalizované systémy jako Visa zároveň dokážou zpracovat 150 000 000 transakcí denně. Výkon se liší v závislosti na velikosti transakce, směrování sítě, zatížení systému a AML kontroly (proti praní špinavých peněz, programy proti praní špinavých peněz).

Libra se snaží řešit problémy, které ve skutečnosti nejsou problémy pro vnitrostátní transfery, protože národní státy v posledním desetiletí modernizovaly svou clearingovou infrastrukturu. Pro maloobchodní spotřebitele v Evropské unii není přesun peněz vůbec problém. Na tradiční infrastruktuře to lze provést pomocí standardního smartphonu během několika sekund. Pro velké korporátní převody existují různé mechanismy a pravidla spojená s přesunem velkých částek peněz.

Neexistuje žádný technický důvod, proč by přeshraniční platby nemohly být zpracovány také okamžitě, kromě rozdílů v pravidlech a požadavcích mezi příslušnými jurisdikcemi. Pokud jsou nezbytná preventivní opatření (customer due diligence, kontroly sankcí atd.) prováděna vícekrát v různých fázích transakčního řetězce, může to vést ke zpoždění transakce. Toto zpoždění je však čistě funkcí regulačních právních předpisů a souladu, nikoli technologie.

Pro spotřebitele neexistuje žádný důvod, proč by transakce ve Spojeném království nebyla zúčtována během několika sekund. Maloobchodní transakce v EU skutečně zpomalují Kontrola KYC (Know Your Customer) a omezení AML uvalená vládami a regulačními orgány, která se vztahují stejně na platby Libra. I kdyby měl Facebook překonat překážky přeshraničních přenosů a soukromých datových přenosů, navrhovaný model je stovky osobo-roků vzdálen od globální propustnosti transakcí a pravděpodobně by bylo potřeba ho od nuly přepracovat.

Jazyk Libra Move je nesprávný

Bílá kniha uvádí odvážná tvrzení o novém, netestovaném jazyce zvaném Move. Tato tvrzení jsou z hlediska teorie programovacích jazyků (PLT) značně pochybná.

Move je nový programovací jazyk pro implementaci vlastní transakční logiky a chytrých smluv na blockchainu Libra. Protože si Libra klade za cíl jednoho dne sloužit miliardám lidí, je Move navržen s nejvyšší prioritou zabezpečení.

Klíčovým rysem Move je schopnost definovat libovolné typy zdrojů se sémantikou inspirovanou lineární logikou.

Ve veřejných blockchainech se chytré smlouvy potýkají s logikou veřejných sítí s escrow účty, praním špinavých peněz, vydáváním OTC tokenů a hazardem. To vše se děje v úžasně špatně navrženém jazyce zvaném Solidity, díky kterému z akademického hlediska vypadá autor PHP jako génius. Kupodivu se zdá, že nový jazyk od Facebooku nemá s těmito technologiemi nic společného, ​​protože se ve skutečnosti jedná o skriptovací jazyk určený pro obskurní podnikové účely.

V soukromých distribuovaných účetních knihách jsou inteligentní smlouvy jedním z termínů, které konzultanti přehazují bez velkého ohledu na jasnou definici nebo účel. Konzultanti podnikového softwaru obvykle vydělávají peníze na nejednoznačnosti a chytré smlouvy jsou apoteózou podnikového tmářství, protože je lze definovat doslova jako cokoliv.

Po tvrzení o jeho bezpečnosti se musíme podívat na sémantiku jazyka. Korektnost v teorii programovacích jazyků se obvykle skládá ze dvou různých důkazů: „pokrok“ a „zachování“, které určují konzistenci celého prostoru pravidel hodnocení jazyka. Přesněji řečeno, v teorii typů je funkce „lineární“, pokud použije svůj argument právě jednou, a „afinní“, pokud jej použije nejvýše jednou. Systém lineárních typů poskytuje statickou záruku, že deklarovaná lineární funkce je skutečně lineární tím, že přiřazuje typy všem podvýrazům funkcí a sleduje, kde se volání uskutečňují. Toto je důmyslná vlastnost, kterou lze dokázat a není snadné ji implementovat pro celý program. Lineární psaní je stále velmi akademický obor, ovlivněný implementací typové jedinečnosti v Clean a vlastnictvím typu v Rust. Existuje několik předběžných návrhů na přidání lineárních typů do kompilátoru Glasgow Haskell.

Prohlášení Move o používání lineárních typů vypadá jako neoprávněné ponoření se do kompilátoru, protože tam je žádná taková logika kontroly typu neexistuje. Pokud lze říci, whitepaper cituje kanonickou literaturu od Girarda a Peirce a ve skutečné implementaci nic podobného není.

Navíc se formální sémantika údajně bezpečného jazyka nikde neobjevuje ani v implementaci, ani v dokumentu. Jazyk je dostatečně malý, aby našel úplný důkaz správné sémantiky v Coq nebo Isabelle. Ve skutečnosti je docela dobře možné implementovat kompletní kompilátor úplné konverze s přenosem důkazu do bajtkódu pomocí moderních nástrojů vynalezených v posledním desetiletí. Víme, jak na to, počínaje díla George Neculy a Petera Lee zpět v roce 1996.

Z pohledu teorie programovacího jazyka je nemožné otestovat tvrzení, že Move je spolehlivý a bezpečný jazyk, protože tato tvrzení představují spíše pouhé mávání rukou a marketing než skutečné důkazy. To je alarmující situace pro jazykový projekt, který je žádán o zpracování transakcí v miliardách dolarů.

Kryptografie Vah je chybná

Budování bezpečných kryptosystémů je velmi obtížný inženýrský problém a vždy je nejlepší přistupovat k práci s nebezpečným kódem s notnou dávkou zdravé paranoie. V této oblasti došlo k velkým průlomům, jako je projekt Microsoft Everest, který vytváří ověřitelné zabezpečení zásobník TLS. Nástroje pro vytváření ověřitelných primitiv již existují. I když je to drahé, zjevně to není nad ekonomické možnosti Facebooku. Tým se však rozhodl neúčastnit projektu, který byl vyhlášen jako spolehlivý základ pro globální finanční systém.

projekt libra záleží z několika docela nových knihoven pro vytváření experimentálních kryptosystémů, které se objevily teprve v posledních několika letech. Není možné říci, zda jsou závislosti na následujících nástrojích bezpečné nebo ne, protože žádná z těchto knihoven nebyla auditována a nemá standardní zásady zveřejňování. Zejména u některých základních knihoven není jistota ochrany proti útokům postranním kanálem a útokům načasování.

  1. ed25519-dalek
  2. křivka25519-dalek

Knihovna libra se stává ještě experimentálnější a jde dál standardní model, používající velmi nové techniky, jako jsou ověřitelné náhodné funkce (VRF), bilineární páry a prahové signatury. Tyto metody a knihovny mohou být rozumné, ale jejich zkombinování do jednoho systému vyvolává vážné obavy o plochu útoku. Kombinace všech těchto nových nástrojů a technik značně zvyšuje složitost prokazování bezpečnosti.

Mělo by se předpokládat, že celý tento kryptografický zásobník je zranitelný vůči různým útokům, dokud se neprokáže opak. Slavný model Facebooku 'Move Fast and Break Things' nelze použít na kryptografické nástroje, které zpracovávají finanční data zákazníků.

Váhám se nedaří zavést mechanismy ochrany spotřebitele

Charakteristickým rysem platebního systému je schopnost vrátit transakci zpět, pokud je platba zrušena soudním sporem nebo vede k náhodnému nebo systémovému selhání. Systém Libra je navržen jako „kompletní“ a neobsahuje typ transakce pro zrušení platby. Ve Spojeném království podléhají všechny platby mezi 100 a 30,000 XNUMX £ zákonu o spotřebitelském úvěru. To znamená, že platební systém sdílí odpovědnost s prodejcem v případě problému se zakoupeným produktem nebo pokud příjemce platby neposkytne službu. Podobná pravidla platí v EU, Asii a Severní Americe.

Současný design Libra nezahrnuje protokol k dodržování těchto zákonů a nemá jasný plán jeho vytvoření. Ještě horší je, že z architektonického hlediska konečnost autentizované datové struktury jádra, založené na stavu disku Merkle, neumožňuje žádnému mechanismu vytvořit takový protokol bez přepracování jádra.

Po provedení technické revize tohoto projektu můžeme dojít k závěru, že v žádném respektovaném časopise o výzkumu distribuovaných systémů nebo v časopise finančního inženýrství prostě neprojde. Abychom se pokusili změnit globální měnovou politiku, je třeba vykonat obrovské množství technické práce k vytvoření spolehlivé sítě a bezpečného zpracování uživatelských dat, kterým může veřejnost a regulační orgány důvěřovat.

Nevidím důvod se domnívat, že Facebook udělal ve svém návrhu nezbytnou práci, aby tyto technické problémy překonal, nebo že má nějaké technické výhody oproti současné infrastruktuře. Tvrzení, že společnost potřebuje regulační flexibilitu, aby mohla prozkoumat inovace, není omluvou pro to, aby je neudělala jako první.

Zdroj: www.habr.com

Přidat komentář