Architectural skizofrenia Facebook Libra

Nei twa jier kaam ik werom op it blog foar in berjocht dat ôfwykt fan de gewoane saaie lêzingen oer Haskell en wiskunde. Ik haw de ôfrûne jierren wurke oan fintech yn 'e EU en it liket derop dat de tiid kommen is om te skriuwen oer in ûnderwerp dat net folle omtinken krige fan 'e techmedia.

Facebook hat koartlyn frijlitten wat it in "nij platfoarm foar finansjele tsjinsten" neamt mei de namme Libra. It is gepositioneerd as in digitaal delsettingssysteem basearre op in koer fan ynternasjonale faluta dy't wurde beheard op in "blockchain" en opslein yn in jildpool beheard út Switserlân. De doelen fan it projekt binne ambisjeus en hawwe grutskalige geopolitike gefolgen.

В Financial Times и New York Times In protte ferstannige artikels oer de unsound monetêre en ekonomyske oannames efter it foarstelde finansjele systeem. Mar d'r binne net genôch spesjalisten by steat om te analysearjen út in technysk eachpunt. Net in protte minsken wurkje oan finansjele ynfrastruktuer en prate iepenbier oer har wurk, dus dit projekt krijt net folle dekking yn 'e tech media, hoewol't it ynderlik iepen is foar de wrâld. Ik bedoel iepen boarne yn repositories libra и Calibra Organisaasje.

Wat is iepen foar de wrâld is in arsjitektoanysk skizofreen artefakt mei oanspraken te wêzen in feilich platfoarm foar de globale betelling ynfrastruktuer.

As jo ​​dûke yn de koade basis, de eigentlike ymplemintaasje fan it systeem folslein ôfwike fan it oantsjutte doel, en yn 'e meast bizarre manieren. Ik bin der wis fan dat dit projekt in nijsgjirrige bedriuwsskiednis hat. Dat it is logysk om oan te nimmen dat it mei wat warberens is ûntworpen, mar yn werklikheid sjoch ik in echt frjemde set fan arsjitektoanyske besluten dy't it heule systeem brekke en brûkers yn gefaar bringe.

Ik sil net pretendearje in objektyf miening te hawwen oer Facebook as bedriuw. In pear minsken yn 'e IT-sektor sjogge har mei sympaty oan. Mar in ferliking fan har útspraken en de publisearre koade lit dúdlik sjen dat it oantsjutte doel yn prinsipe misleidend is. Koartsein, dit projekt machtigje gjinien. Hy sil folslein ûnder de kontrôle bliuwe fan in bedriuw waans reklamebedriuw sa bedrige is yn skandaal en korrupsje dat it gjin oare kar hat as om te besykjen om har betellingen en kredytpunten te diversifisearjen om te oerlibjen. It dúdlike doel op lange termyn is om te hanneljen as gegevensmakelaar en tuskenpersoan yn 'e tagong fan konsuminten ta kredyt basearre op har persoanlike gegevens op sosjale media. Dit is in absolút ôfgryslik en tsjuster ferhaal dat net de oandacht krijt dy't it fertsjinnet.

De ienige besparjende genede fan dit ferhaal is dat it artefakt dat se makken sa hilarysk net geskikt is foar de taak dy't oan 'e hân is, dat it allinich kin wurde sjoen as in akte fan hubris. D'r binne ferskate grutte arsjitektoanyske flaters yn dit projekt:

It oplossen fan it probleem fan Byzantynske generaals yn in netwurk foar tagongskontrôle is in ynkonsistint ûntwerp

It probleem fan 'e Byzantynske generaals is in frij smel gebiet fan ûndersyk fan ferspraat systemen. It beskriuwt de mooglikheid fan in netwurk systeem te wjerstean willekeurige komponint mislearrings wylst nimme korrektyf aksjes kritysk foar de wurking fan it systeem. In fearkrêftich netwurk moat ferskate soarten oanfallen wjerstean, ynklusyf herstarten, ûnderbrekkingen, kweade loads, en kwea-aardich stimmen yn liederskipsferkiezings. Dit is it wichtichste beslút foar de Libra-arsjitektuer, en it is hjir folslein sinleas.

De tiidkompleksiteit fan dizze ekstra struktuer hinget ôf fan it algoritme. D'r is in protte literatuer oer farianten fan 'e Paxos- en Raft-protokollen dy't it probleem fan' e Byzantynske generaals oplosse, mar al dizze struktueren yntrodusearje ekstra overhead foar kommunikaasje oer Architectural skizofrenia Facebook Libra quorum te behâlden. Foar Libra hawwe se in algoritme keazen mei de heechst mooglike kommunikaasjekosten Architectural skizofrenia Facebook Libra yn gefal fan mislearjen fan liederskip. En d'r is ekstra overhead fan potinsjele opnij ferkiezing fan lieders oer meardere soarten netwurkfout-eveneminten.

Foar in systeem dat operearret binnen in konsortium fan tige regele multynasjonale korporaasjes, wêrby't alle brûkers koade hawwe tekene troch Facebook en tagong ta it netwurk wurdt regele troch Facebook, makket it gewoan gjin sin om kweade dielnimmers op konsensusnivo te beskôgjen. It is net dúdlik wêrom dit systeem sels it probleem fan Byzantynske generaals soe oplosse, ynstee fan gewoan in konsekwint kontrôlespoar te behâlden om neilibjen te kontrolearjen. De mooglikheid fan in Libra-knooppunt rinne troch Mastercard of Andressen Horrowitz dy't ynienen begjint mei kweade koade te begjinnen is in frjemd senario om foar te plannen en wurdt better oanpakt troch gewoan protokol-yntegriteit en net-technyske (dus juridyske) middels te garandearjen.

Tsjûgenis oan it Kongres hat it produkt as konkurrint foar nije ynternasjonale betellingsprotokollen lykas WeChat, Alipay en M-Pesa oankundige. Gjin fan dizze systemen is lykwols ûntworpen om te rinnen op validatorpools om it probleem fan Byzantynske generaals op te lossen. Se binne gewoan ûntwurpen op in tradisjonele bus mei hege bânbreedte dy't bedrading makket neffens in fêste set regels. Dit is in natuerlike oanpak foar it ûntwerpen fan in betellingssysteem. Goed ûntwurpen it betellingssysteem sil gewoan it probleem fan dûbele útjeften en foarken net tsjinkomme.

De overhead fan 'e konsensus-algoritme lost gjin probleem op en beheint allinich de trochfier fan it systeem foar gjin oare reden as de frachtkultus fan' e iepenbiere blockchain, dy't net bedoeld is foar dit gebrûk.

Libra hat gjin transaksjeprivacy

Neffens de dokumintaasje is it systeem ûntwurpen mei rekkening pseudonymiteit, dat is, de adressen dy't brûkt wurde yn it protokol wurde krigen fan iepenbiere kaaien op elliptyske krommes en befetsje gjin metadata oer akkounts. Nearne yn 'e beskriuwing fan' e bestjoersstruktuer foar de organisaasje of yn it protokol sels jout it lykwols oan hoe't de ekonomyske gegevens belutsen by transaksjes sille wurde ferburgen foar validators. It systeem is ûntworpen om transaksjes op grutte skaal te replikearjen nei in ferskaat oan eksterne partijen dy't, ûnder besteande Jeropeeske en Amerikaanske wetten oer bankgeheim, net yn 'e ekonomyske details moatte wêze.

Gegevensbelied oer lannen is lestich te koördinearjen, foaral sjoen ferskate wetten en regeljouwing yn ferskate jurisdiksjes mei ferskate kulturele opfettings oer gegevensbeskerming en privacy. It protokol sels is standert folslein iepen foar konsortiumleden, wat in dúdlik technysk tekoart is dat net foldocht oan de easken dêr't it foar ûntwurpen is.

Libra HotStuff BFT is net by steat om te berikken de trochslach nedich foar in betelling systeem

Yn it Feriene Keninkryk binne clearingsystemen lykas BAC yn steat om sawat 580 transaksjes per moanne te behanneljen. Tagelyk kinne heul optimalisearre systemen lykas Visa 000 transaksjes per dei ferwurkje. Prestaasje fariearret ôfhinklik fan transaksje grutte, netwurk routing, systeem load, en AML kontrolearret (anti-wytwaskjen fan jild, regelingen foar it wytwaskjen fan jild).

Libra besiket problemen op te lossen dy't net echt problemen binne foar ynlânske oerdrachten, om't naasjesteaten har ynfrastruktuer foar ferwidering yn 'e ôfrûne desennia modernisearre hawwe. Foar retailkonsuminten yn 'e Jeropeeske Uny is it ferpleatsen fan jild hielendal gjin probleem. Op tradisjonele ynfrastruktuer kin dit dien wurde mei in standert smartphone yn sekonden. Foar grutte bedriuwsferfier binne d'r ferskate meganismen en regels ferbûn mei it ferpleatsen fan grutte hoemannichten jild.

D'r is gjin technyske reden wêrom't grensoverschrijdende betellingen ek net direkt kinne wurde ferwurke, oars as ferskillen yn regels en easken tusken de oanbelangjende jurisdiksjes. As de nedige previntive maatregels (klanten due diligence, sanksjes kontrôles, ensfh) wurde útfierd meardere kearen op ferskillende stadia fan de transaksje keten, dit kin resultearje yn in fertraging yn de transaksje. Dizze fertraging is lykwols suver in funksje fan regeljouwingswetjouwing en neilibjen, net technology.

Foar konsuminten is d'r gjin reden wêrom't in Britske transaksje net yn in kwestje fan sekonden dúdlik soe wêze. Detailhannel transaksjes yn 'e EU binne yndie stadiger troch KYC kontrôle (Ken jo klant) en AML-beheinings oplein troch oerheden en tafersjochhâlders, dy't likegoed jilde foar Libra-betellingen. Sels as Facebook de obstakels soe oerwinnen foar oerstannen oer grinzen en partikuliere gegevensoerdrachten, is it foarstelde model hûnderten persoansjierren fuort fan 'e globale transaksje-trochput en soe wierskynlik fanôf it begjin opnij moatte wurde ûntwurpen.

Libra Move taal is ferkeard

It wyt papier makket dikke oanspraken oer in nije, net hifke taal mei de namme Move. Dizze útspraken binne frij dubieuze út it eachpunt fan programmeartaalteory (PLT).

Move is in nije programmeartaal foar it ymplementearjen fan oanpaste transaksjelogika en tûke kontrakten op 'e Libra blockchain. Om't Libra fan doel is ien dei miljarden minsken te tsjinjen, is Move ûntworpen mei feiligens as topprioriteit.

In wichtich skaaimerk fan Move is de mooglikheid om willekeurige boarnetypen te definiearjen mei semantyk ynspireare troch lineêre logika.

Yn iepenbiere blokken steane tûke kontrakten foar de logika fan iepenbiere netwurken mei escrow-akkounts, wytwaskjen fan jild, útjefte fan OTC-tokens en gokken. Dit alles wurdt dien yn in ferrassend min ûntworpen taal neamd Solidity, dy't út in akademysk eachpunt de skriuwer fan PHP as in sjeny makket. Frjemd genôch liket de nije taal fan Facebook neat te hawwen mei dizze technologyen, om't it eins in skripttaal is bedoeld foar obskure ûndernimmingsdoelen.

Yn partikuliere ferdielde ledgers binne tûke kontrakten ien fan dy termen dy't troch adviseurs wurde smiten sûnder in protte omtinken foar dúdlike definysje of doel. Konsultanten foar bedriuwssoftware fertsjinje typysk jild út dûbelsinnigens, en tûke kontrakten binne de apoteose fan obskurantisme fan bedriuwen, om't se as letterlik alles kinne wurde definieare.

Nei it meitsjen fan oanspraken oer de feiligens, moatte wy nei de semantyk fan 'e taal sjen. Correctness yn programmeartaal teory typysk bestiet út twa ferskillende bewizen: "foarútgong" en "behâld", dy't bepale de gearhing fan de hiele romte fan evaluaasje regels foar de taal. Mear spesifyk, yn typeteory, is in funksje "lineêr" as it syn argumint krekt ien kear brûkt, en "affine" as it it op syn heechst ien kear brûkt. De lineêre type systeem jout statyske garânsje dat in ferklearre lineêre funksje is wier lineêr troch in tawize typen oan alle funksje subexpressions en hâlden spoar fan wêr't oproppen wurde makke. Dit is in subtile eigenskip om te bewizen en is net maklik te ymplementearjen foar in folslein programma. Lineêre typen is noch altyd in heul akademysk fjild fan stúdzje, beynfloede troch de ymplemintaasje fan typeunykens yn Clean en type eigendom yn Rust. D'r binne wat foarriedige foarstellen foar it tafoegjen fan lineêre typen oan 'e Glasgow Haskell Compiler.

De útspraak fan Move oer it brûken fan lineêre typen liket in ûnrjochtfeardige dûk yn 'e kompilator, sûnt dêr der is gjin sa'n type kontrôle logika. Foar safier't men kin sizze, it witboek sitearret kanonike literatuer út Girard en Peirce, en der is neat ferlykber yn 'e eigentlike útfiering.

Dêrnjonken komt de formele semantyk fan 'e sabeare feilige taal nearne foar yn 'e ymplemintaasje of dokumint. De taal is lyts genôch om in folslein bewiis te finen fan juste semantyk yn Coq of Isabelle. Yn 'e realiteit is in ein-oan-ein folsleine konverzje-kompiler mei bewiisferfier nei bytekoade frij mooglik te ymplementearjen mei moderne ark útfûn yn' e lêste desennia. Wy witte hoe te dwaan it, begjinnend mei wurken fan George Necula en Peter Lee werom yn 1996.

Fanút in programmeartaalteory-perspektyf is it ûnmooglik om de bewearing te testen dat Move in betroubere en feilige taal is, om't dizze oanspraken op pure hânswaaien en marketing binne yn stee fan wirklik bewiis. Dit is in alarmearjende situaasje foar in taalprojekt dat frege wurdt om miljarden dollars oan transaksjes te ferwurkjen.

Libra-kryptografy is defekt

It bouwen fan feilige kryptosystemen is in heul lestich technysk probleem, en it is altyd it bêste om te wurkjen mei gefaarlike koade mei in goede dosis sûne paranoia. D'r binne grutte trochbraken yn dit gebiet, lykas it Microsoft Everest-projekt, dat in ferifieare feilich bouwt TLS stapel. Tools besteane al om kontrolearbere primitiven te meitsjen. Hoewol dit djoer is, is it dúdlik net bûten de ekonomyske mooglikheden fan Facebook. It team besleat lykwols net mei te dwaan oan it projekt, dat waard oankundige as in betroubere stifting foar it wrâldwide finansjele systeem.

Libra projekt hinget derfan ôf fan ferskate frij nije biblioteken foar it meitsjen fan eksperimintele kryptosystemen dy't allinich yn 'e lêste jierren ferskynden. It is ûnmooglik om te sizzen oft de ôfhinklikens fan 'e folgjende ark feilich binne of net, om't gjin fan dizze biblioteken kontrolearre binne en gjin standert iepenbieringsbelied hawwe. Benammen foar guon kearnbiblioteken is d'r gjin wissichheid oangeande beskerming tsjin side-kanaal oanfallen en timing oanfallen.

  1. ed25519-dalek
  2. curve25519-dalek

De bibleteek biblioteek wurdt noch mear eksperimintele en giet fierder standert model, it tapassen fan heul nije techniken lykas kontrolearbere willekeurige funksjes (VRF's), bilineêre pearen en drompelhantekeningen. Dizze metoaden en biblioteken kinne ridlik wêze, mar it kombinearjen fan se allegear yn ien systeem makket serieuze soargen oer oanfalsflak. De kombinaasje fan al dizze nije ark en techniken fergruttet de kompleksiteit fan it bewizen fan feiligens sterk.

It moat oannommen wurde dat dizze heule kryptografyske stapel kwetsber is foar ferskate oanfallen oant it oars bewiisd is. Facebook's ferneamde 'Move Fast and Break Things'-model kin net tapast wurde op kryptografyske ark dy't finansjele gegevens fan klanten ferwurkje.

Libra mislearret meganismen foar konsumintebeskerming te ymplementearjen

In ûnderskiedend skaaimerk fan it betellingssysteem is de mooglikheid om in transaksje werom te rôljen as de betelling wurdt annulearre troch in rjochtsaak of liedt ta in tafallich of systeemfout. It Libra-systeem is ûntworpen om "folslein" te wêzen en omfettet gjin transaksjetype foar annulearring fan betelling. Yn it Feriene Keninkryk binne alle betellingen tusken £ 100 en £ 30,000 ûnderwurpen oan de Consumer Credit Act. Dit betsjut dat it betellingssysteem de ferantwurdlikens dielt mei de ferkeaper yn gefal fan in probleem mei it kochte produkt of as de ûntfanger fan 'e betelling de tsjinst net leveret. Fergelykbere regels jilde yn 'e EU, Aazje en Noard-Amearika.

It hjoeddeistige ûntwerp fan Libra omfettet gjin protokol om te foldwaan oan dizze wetten en hat gjin dúdlik plan foar it meitsjen fan ien. Noch slimmer, út in arsjitektoanysk perspektyf, lit de finaliteit fan 'e autentike gegevensstruktuer fan' e kernel, basearre op 'e steat fan' e Merkle-drive, gjin meganisme foar it meitsjen fan sa'n protokol sûnder de kernel opnij ûntwerpe.

Nei it útfieren fan in technyske resinsje fan dit projekt, kinne wy ​​konkludearje dat it gewoanwei net sil trochjaan yn alle respektearre ferspraat systeemûndersyk of finansjeel technyk tydskrift. Om te besykjen om it wrâldwide monetêre belied te feroarjen, moat in enoarm bedrach fan technysk wurk dien wurde om in betrouber netwurk te meitsjen en feilige ferwurking fan brûkersgegevens dy't it publyk en regulators fertrouwe kinne.

Ik sjoch gjin reden om te leauwen dat Facebook it nedige wurk dien hat yn har ûntwerp om dizze technyske problemen te oerwinnen of dat it technyske foardielen hat oer de hjoeddeistige ynfrastruktuer. Sei dat in bedriuw regeljouwingfleksibiliteit nedich hat om ynnovaasjes te ferkennen is gjin ekskús om se net earst te dwaan.

Boarne: www.habr.com

Add a comment