Argitektoniese skisofrenie Facebook Weegskaal

Ná twee jaar het ek teruggekeer na die blog vir ’n plasing wat verskil van die gewone vervelige lesings oor Haskell en wiskunde. Ek werk die afgelope paar jaar aan fintech in die EU en dit lyk of die tyd aangebreek het om te skryf oor 'n onderwerp wat min aandag van die tegnologiemedia ontvang het.

Facebook het onlangs 'n "nuwe platform vir finansiële dienste" genaamd Weegskaal vrygestel. Dit is geposisioneer as 'n digitale vereffeningstelsel gebaseer op 'n mandjie van internasionale geldeenhede wat op 'n "blokketting" bestuur word en gestoor word in 'n geldpoel wat vanaf Switserland bestuur word. Die doelwitte van die projek is ambisieus en hou grootskaalse geopolitieke gevolge in.

В Financial Times и New York Times Baie sinvolle artikels oor die ongesonde monetêre en ekonomiese aannames agter die voorgestelde finansiële stelsel. Maar daar is nie genoeg spesialiste wat uit 'n tegniese oogpunt kan ontleed nie. Nie baie mense werk aan finansiële infrastruktuur en praat in die openbaar oor hul werk nie, so hierdie projek kry nie veel dekking in die tegnologiese media nie, alhoewel sy binneste oop is vir die wêreld. Ek bedoel oopbron in bewaarplekke Weegskaal и Calibra Organisasie.

Wat vir die wêreld oop is, is 'n argitektonies skisofreniese artefak wat beweer dat dit 'n veilige platform vir die globale betalingsinfrastruktuur is.

As jy in die kodebasis duik, verskil die werklike implementering van die stelsel heeltemal van die gestelde doelwit, en op die mees bisarre maniere. Ek is seker dat hierdie projek 'n interessante korporatiewe geskiedenis het. Dit is dus logies om aan te neem dat dit met 'n mate van ywer ontwerp is, maar in werklikheid sien ek 'n baie vreemde stel argitektoniese besluite wat die hele stelsel breek en gebruikers in gevaar stel.

Ek sal nie voorgee dat ek 'n objektiewe mening oor Facebook as 'n maatskappy het nie. Min mense in die IT-bedryf kyk met simpatie na haar. Maar 'n vergelyking van sy stellings en die gepubliseerde kode toon duidelik dat die gestelde doel fundamenteel misleidend is. Kortom, hierdie projek bemagtig niemand nie. Hy sal geheel en al onder die beheer bly van 'n maatskappy wie se advertensiebesigheid so vasgevang is in skandale en korrupsie dat dit geen ander keuse het as om sy betalings en kredietpunte te probeer diversifiseer om te oorleef nie. Die duidelike langtermyndoelwit is om as 'n datamakelaar en tussenganger op te tree in verbruikers se toegang tot krediet op grond van hul persoonlike sosialemediadata. Hierdie is 'n absoluut aaklige en donker storie wat nie die aandag kry wat dit verdien nie.

Die enigste reddende genade van hierdie storie is dat die artefak wat hulle geskep het, so skreeusnaakse ongeskik is vir die taak wat voorlê dat dit net as 'n daad van hubris gesien kan word. Daar is verskeie groot argitektoniese foute in hierdie projek:

Die oplossing van die Bisantynse generaalsprobleem in 'n toegangsbeheernetwerk is 'n inkonsekwente ontwerp

Die probleem van die Bisantynse generaals is 'n taamlik eng gebied van navorsing oor verspreide stelsels. Dit beskryf die vermoë van 'n netwerkstelsel om ewekansige komponentfoute te weerstaan ​​terwyl regstellende stappe geneem word wat krities is vir die werking van die stelsel. 'n Veerkragtige netwerk moet verskeie soorte aanvalle weerstaan, insluitend herbegin, onderbrekings, kwaadwillige ladings en kwaadwillige stemming in leierskapsverkiesings. Dit is die belangrikste besluit vir die Weegskaal-argitektuur, en dit is heeltemal betekenisloos hier.

Die tydskompleksiteit bokoste van hierdie bykomende struktuur hang af van die algoritme. Daar is baie literatuur oor variante van die Paxos- en Raft-protokolle wat die Bisantynse generaalsprobleem oplos, maar al hierdie strukture stel addisionele oorhoofse oorhoofse voor vir kommunikasie oor Argitektoniese skisofrenie Facebook Weegskaal kworum te handhaaf. Vir Weegskaal het hulle 'n algoritme met die hoogste moontlike kommunikasiekoste gekies Argitektoniese skisofrenie Facebook Weegskaal in geval van mislukking van leierskap. En daar is bykomende oorkoste van potensiële herverkiesing van leiers oor verskeie tipes netwerkmislukkingsgebeure.

Vir 'n stelsel wat binne 'n konsortium van hoogs gereguleerde multinasionale korporasies werk, waar alle gebruikers kode het wat deur Facebook onderteken is en toegang tot die netwerk deur Facebook beheer word, maak dit eenvoudig nie sin om kwaadwillige deelnemers op konsensusvlak te oorweeg nie. Dit is nie duidelik waarom hierdie stelsel selfs die probleem van Bisantynse generaals sou oplos nie, eerder as om bloot 'n konsekwente ouditspoor te handhaaf om nakoming na te gaan. Die moontlikheid dat 'n Weegskaal-nodus wat deur Mastercard of Andressen Horrowitz bestuur word, skielik kwaadwillige kode begin uitvoer, is 'n vreemde scenario om voor te beplan en word beter aangespreek deur bloot protokolintegriteit en nie-tegniese (d.w.s. wettige) middele te verseker.

Getuienis aan die Kongres het die produk as 'n mededinger vir nuwe internasionale betalingsprotokolle soos WeChat, Alipay en M-Pesa gefaktureer. Nie een van hierdie stelsels is egter ontwerp om op valideerderpoele te werk om die Bisantynse generaalsprobleem op te los nie. Hulle is eenvoudig ontwerp op 'n tradisionele hoë-bandwydte bus wat bedrading volgens 'n vaste stel reëls maak. Dit is 'n natuurlike benadering tot die ontwerp van 'n betalingstelsel. Goed ontwerp die betalingstelsel sal eenvoudig nie die probleem van dubbele besteding en vurke teëkom nie.

Die bokoste van die konsensusalgoritme los geen probleem op nie en beperk slegs die deurset van die stelsel vir geen ander rede as die vragkultus van die openbare blokketting nie, wat nie vir hierdie gebruiksgeval bedoel is nie.

Weegskaal het geen transaksieprivaatheid nie

Volgens die dokumentasie is die stelsel ontwerp met inagneming skuilnaam, dit wil sê, die adresse wat in die protokol gebruik word, word van publieke sleutels op elliptiese kurwes verkry en bevat nie metadata oor rekeninge nie. Nêrens in die beskrywing van die bestuurstruktuur vir die organisasie of in die protokol self dui dit egter aan hoe die ekonomiese data betrokke by transaksies vir valideerders weggesteek sal word nie. Die stelsel is ontwerp om transaksies op groot skaal na 'n reeks eksterne partye te repliseer wat, kragtens bestaande Europese en Amerikaanse bankgeheimwette, nie die ekonomiese besonderhede moet vergewis nie.

Databeleid oor lande heen is moeilik om te koördineer, veral gegewe uiteenlopende wette en regulasies in verskillende jurisdiksies met verskillende kulturele sienings oor databeskerming en privaatheid. Die protokol self is by verstek heeltemal oop vir konsortiumlede, wat 'n duidelike tegniese tekortkoming is wat nie voldoen aan die vereistes waarvoor dit ontwerp is nie.

Libra HotStuff BFT is nie in staat om die deurset wat vir 'n betalingstelsel vereis word, te bereik nie

In die Verenigde Koninkryk is skoonmaakstelsels soos BAC in staat om ongeveer 580 000 000 transaksies per maand te hanteer. Terselfdertyd kan hoogs geoptimaliseerde stelsels soos Visa 150 000 000 transaksies per dag verwerk. Werkverrigting wissel na gelang van transaksiegrootte, netwerkroetering, stelsellading en AML tjeks (teen-geldwassery, geldwasseryskemas).

Weegskaal probeer probleme oplos wat nie werklik probleme vir binnelandse oorplasings is nie, aangesien nasiestate hul skoonmaak-infrastruktuur oor die afgelope dekade gemoderniseer het. Vir kleinhandelverbruikers in die Europese Unie is die verskuiwing van geld glad nie 'n probleem nie. Op tradisionele infrastruktuur kan dit binne sekondes met 'n standaard slimfoon gedoen word. Vir groot korporatiewe oordragte is daar verskeie meganismes en reëls wat verband hou met die verskuiwing van groot bedrae geld.

Daar is geen tegniese rede waarom oorgrensbetalings nie ook onmiddellik verwerk kan word nie, behalwe verskille in reëls en vereistes tussen die betrokke jurisdiksies. As die nodige voorkomende maatreëls (kliënte-omsigtigheidsondersoeke, sanksiekontroles, ens.) verskeie kere op verskillende stadiums van die transaksieketting uitgevoer word, kan dit 'n vertraging in die transaksie tot gevolg hê. Hierdie vertraging is egter bloot 'n funksie van regulatoriese wetgewing en voldoening, nie tegnologie nie.

Vir verbruikers is daar geen rede waarom 'n Britse transaksie nie binne 'n kwessie van sekondes sal uitklaar nie. Kleinhandeltransaksies in die EU vertraag inderdaad KYC-tjek (Ken jou kliënt) en AML-beperkings wat deur regerings en reguleerders ingestel word, wat ewe op Weegskaal-betalings van toepassing is. Selfs as Facebook die struikelblokke vir oorgrensoordragte en private data-oordragte sou oorkom, is die voorgestelde model honderde persoonjare weg van wêreldwye transaksiedeurset en sal dit waarskynlik van nuuts af herontwerp moet word.

Weegskaal Beweeg taal is verkeerd

Die witskrif maak dapper bewerings oor 'n nuwe, ongetoetste taal genaamd Move. Hierdie stellings is nogal twyfelagtig vanuit die oogpunt van programmeringstaalteorie (PLT).

Move is 'n nuwe programmeertaal vir die implementering van pasgemaakte transaksielogika en slim kontrakte op die Libra-blokketting. Omdat Weegskaal poog om eendag miljarde mense te bedien, is Move ontwerp met sekuriteit as 'n topprioriteit.

'n Sleutelkenmerk van Move is die vermoë om arbitrêre hulpbrontipes te definieer met semantiek geïnspireer deur lineêre logika.

In openbare blokkettings staar slim kontrakte die logika van openbare netwerke met borgrekeninge, geldwassery, OTC-token-uitreiking en dobbel in die gesig. Dit alles word gedoen in 'n verstommend swak ontwerpte taal genaamd Solidity, wat uit 'n akademiese oogpunt die skrywer van PHP na 'n genie laat lyk. Vreemd genoeg blyk dit dat die nuwe taal van Facebook niks met hierdie tegnologie te doen het nie, aangesien dit eintlik 'n skriftaal is wat bedoel is vir obskure ondernemingsdoeleindes.

In privaat verspreide grootboeke is slim kontrakte een van daardie terme wat deur konsultante rondgegooi word sonder veel agting vir duidelike definisie of doel. Ondernemingsagtewarekonsultante maak tipies geld uit dubbelsinnigheid, en slim kontrakte is die apoteose van korporatiewe obskurantisme omdat dit as letterlik enigiets gedefinieer kan word.

Nadat ons aansprake gemaak het oor die veiligheid daarvan, moet ons na die semantiek van die taal kyk. Korrektheid in programmeertaalteorie bestaan ​​tipies uit twee verskillende bewyse: "vordering" en "behoud", wat die konsekwentheid van die hele ruimte van evalueringsreëls vir die taal bepaal. Meer spesifiek, in tipe teorie, is 'n funksie "lineêr" as dit sy argument presies een keer gebruik, en "affyn" as dit dit hoogstens een keer gebruik. Die lineêre tipe stelsel bied statiese waarborg dat 'n verklaarde lineêre funksie werklik lineêr is deur tipes toe te ken aan alle funksie subuitdrukkings en tred te hou van waar oproepe gemaak word. Dit is 'n subtiele eienskap om te bewys en is nie maklik om vir 'n hele program te implementeer nie. Lineêre tik is steeds 'n baie akademiese studieveld, beïnvloed deur die implementering van tipe uniekheid in Skoon en tipe eienaarskap in Rust. Daar is 'n paar voorlopige voorstelle vir die toevoeging van lineêre tipes by die Glasgow Haskell Compiler.

Move se stelling oor die gebruik van lineêre tipes lyk soos 'n ongeregverdigde duik in die samesteller, aangesien daar daar is nie so 'n tipe kontrole logika nie. Sover mens kan sê, haal die witskrif kanonieke literatuur van Girard en Peirce aan, en daar is niks soortgelyks in die werklike implementering nie.

Daarbenewens kom die formele semantiek van die veronderstelde veilige taal nêrens in die implementering of die dokument voor nie. Die taal is klein genoeg om 'n volledige bewys van korrekte semantiek in Coq of Isabelle te vind. In werklikheid is 'n end-tot-end volledige omskakelingsamesteller met bewysoordrag na greepkode heel moontlik om te implementeer met moderne gereedskap wat in die afgelope dekade uitgevind is. Ons weet hoe om dit te doen, begin met werke deur George Necula en Peter Lee terug in 1996.

Vanuit 'n programmeertaalteorie-perspektief is dit onmoontlik om die bewering dat Move 'n betroubare en veilige taal is te toets, aangesien hierdie aansprake neerkom op suiwer handswaai en bemarking eerder as werklike bewyse. Dit is 'n kommerwekkende situasie vir 'n taalprojek wat gevra word om miljarde dollars se transaksies te verwerk.

Weegskaal kriptografie is gebrekkig

Die bou van veilige kriptostelsels is 'n baie moeilike ingenieursprobleem, en dit is altyd die beste om met gevaarlike kodes te werk met 'n goeie dosis gesonde paranoia. Daar is groot deurbrake op hierdie gebied, soos die Microsoft Everest-projek, wat 'n verifieerbare veilige bou TLS stapel. Gereedskap bestaan ​​reeds om verifieerbare primitiewe te skep. Alhoewel dit duur is, is dit duidelik nie buite Facebook se ekonomiese vermoëns nie. Die span het egter besluit om nie aan die projek deel te neem nie, wat aangekondig is as 'n betroubare grondslag vir die globale finansiële stelsel.

weegskaal projek hang af van verskeie redelik nuwe biblioteke vir die skep van eksperimentele kriptostelsels wat eers in die laaste paar jaar verskyn het. Dit is onmoontlik om te sê of die afhanklikhede van die volgende instrumente veilig is of nie, aangesien nie een van hierdie biblioteke geoudit is nie en nie standaard openbaarmakingsbeleide het nie. In die besonder, vir sommige kernbiblioteke is daar geen sekerheid oor beskerming teen sykanaalaanvalle en tydsberekeningaanvalle nie.

  1. ed25519-dalek
  2. curve25519-dalek

Die biblioteekbiblioteek word selfs meer eksperimenteel en gaan verder standaard model, die toepassing van baie nuwe tegnieke soos verifieerbare ewekansige funksies (VRF's), bilineêre pare en drempelhandtekeninge. Hierdie metodes en biblioteke kan redelik wees, maar om hulle almal in een stelsel te kombineer, wek ernstige kommer oor aanvalsoppervlakte. Die kombinasie van al hierdie nuwe gereedskap en tegnieke verhoog die kompleksiteit van die bewys van sekuriteit aansienlik.

Daar moet aanvaar word dat hierdie hele kriptografiese stapel kwesbaar is vir verskeie aanvalle totdat anders bewys word. Facebook se bekende 'Move Fast and Break Things'-model kan nie toegepas word op kriptografiese instrumente wat kliënte se finansiële data verwerk nie.

Weegskaal slaag nie daarin om meganismes vir verbruikersbeskerming te implementeer nie

'n Kenmerkende kenmerk van die betalingstelsel is die vermoë om 'n transaksie terug te draai as die betaling deur 'n regsgeding gekanselleer word of tot 'n toevallige of stelselmislukking lei. Die Weegskaalstelsel is ontwerp om "volledig" te wees en sluit nie 'n transaksietipe vir betalingkansellasie in nie. In die VK is alle betalings tussen £100 en £30,000 onderhewig aan die Verbruikerskredietwet. Dit beteken dat die betalingstelsel verantwoordelikheid met die verkoper deel in die geval van 'n probleem met die gekoopte produk of as die ontvanger van die betaling nie die diens lewer nie. Soortgelyke reëls geld in die EU, Asië en Noord-Amerika.

Die huidige ontwerp van Weegskaal bevat nie 'n protokol om aan hierdie wette te voldoen nie en het nie 'n duidelike plan om een ​​te skep nie. Nog erger, vanuit 'n argitektoniese perspektief, laat die finaliteit van die kern se geverifieerde datastruktuur, gebaseer op die toestand van die Merkle-aandrywing, geen meganisme toe om so 'n protokol te skep sonder om die kern te herontwerp nie.

Nadat ons 'n tegniese oorsig van hierdie projek gedoen het, kan ons tot die gevolgtrekking kom dat dit eenvoudig nie sal slaag in enige gerespekteerde verspreide stelselnavorsing of finansiële ingenieursjoernaal nie. Om globale monetêre beleid te probeer verander, moet 'n groot hoeveelheid tegniese werk gedoen word om 'n betroubare netwerk en veilige verwerking van gebruikersdata te skep wat die publiek en reguleerders kan vertrou.

Ek sien geen rede om te glo dat Facebook die nodige werk in sy ontwerp gedoen het om hierdie tegniese probleme te oorkom of dat dit enige tegniese voordele bo die huidige infrastruktuur het nie. Om te sê dat 'n maatskappy regulatoriese buigsaamheid nodig het om innovasies te ondersoek, is nie 'n verskoning om dit nie eers te doen nie.

Bron: will.com

Voeg 'n opmerking