Architektūrinė šizofrenija Facebook Svarstyklės

Po dvejų metų grįžau į tinklaraštį įrašo, kuris skiriasi nuo įprastų nuobodžių paskaitų apie Haskell ir matematiką. Pastaruosius kelerius metus dirbu su fintech ES ir atrodo, kad atėjo laikas parašyti temą, kuri sulaukė mažai technologijų žiniasklaidos dėmesio.

„Facebook“ neseniai išleido „naują finansinių paslaugų platformą“, pavadintą „Libra“. Ji yra išdėstyta kaip skaitmeninė atsiskaitymo sistema, pagrįsta tarptautinių valiutų krepšeliu, kuris valdomas „blockchain“ ir saugomas pinigų fonde, valdomame iš Šveicarijos. Projekto tikslai yra ambicingi ir sukelia plataus masto geopolitines pasekmes.

В "Financial Times" и New York Times " Daug protingų straipsnių apie nepagrįstas pinigines ir ekonomines prielaidas, slypinčias už siūlomos finansų sistemos. Tačiau nėra pakankamai specialistų, gebančių analizuoti techniniu požiūriu. Nedaug žmonių dirba su finansine infrastruktūra ir viešai kalba apie savo darbą, todėl šis projektas nesulaukia daug dėmesio technologijų žiniasklaidoje, nors jo vidinės dalys yra atviros pasauliui. Turiu omenyje atvirąjį kodą saugyklose Svarstyklės и „Calibra“ organizacija.

Tai, kas yra atvira pasauliui, yra architektūriškai šizofreniškas artefaktas, teigiantis, kad tai yra saugi pasaulinės mokėjimo infrastruktūros platforma.

Jei pasinersite į kodo bazę, tikrasis sistemos įgyvendinimas visiškai skiriasi nuo užsibrėžto tikslo ir pačiais keisčiausiais būdais. Esu tikras, kad šis projektas turi įdomią įmonės istoriją. Taigi logiška manyti, kad jis buvo sukurtas su tam tikru kruopštumu, tačiau iš tikrųjų matau tikrai keistą architektūrinių sprendimų rinkinį, kuris sugriauna visą sistemą ir kelia pavojų vartotojams.

Nepretenduosiu į objektyvią nuomonę apie „Facebook“ kaip įmonę. Nedaugelis IT pramonės žmonių į ją žiūri su užuojauta. Tačiau palyginus jos teiginius ir paskelbtą kodeksą aiškiai matyti, kad nurodytas tikslas iš esmės yra apgaulingas. Trumpai tariant, šis projektas niekam neįgalina. Jis liks visiškai kontroliuojamas įmonės, kurios reklamos verslas taip pasinėrė į skandalus ir korupciją, kad jai neliks nieko kito, kaip tik pabandyti diversifikuoti mokėjimus ir kredito balus, kad išgyventų. Aiškus ilgalaikis tikslas – būti duomenų brokeriu ir tarpininku, kad vartotojai galėtų gauti kreditą remiantis jų asmeniniais socialinių tinklų duomenimis. Tai absoliučiai siaubinga ir tamsi istorija, kuri nesulaukia reikiamo dėmesio.

Vienintelis šios istorijos gelbėjimas yra tas, kad jų sukurtas artefaktas taip juokingai nepritaikytas atliekamai užduočiai, kad jį galima vertinti tik kaip pasipūtimą. Šiame projekte yra keletas didelių architektūrinių klaidų:

Bizantijos generolų problemos sprendimas prieigos kontrolės tinkle yra nenuoseklus dizainas

Bizantijos generolų problema yra gana siaura paskirstytų sistemų tyrimų sritis. Jame aprašomas tinklo sistemos gebėjimas atlaikyti atsitiktinius komponentų gedimus, atliekant taisomuosius veiksmus, būtinus sistemos veikimui. Atsparus tinklas turi atlaikyti kelių tipų atakas, įskaitant paleidimus iš naujo, dingimus, kenkėjiškas apkrovas ir piktybinį balsavimą vadovų rinkimuose. Tai yra pagrindinis Svarstyklių architektūros sprendimas ir čia jis visiškai beprasmis.

Šios papildomos struktūros laiko sudėtingumas priklauso nuo algoritmo. Yra daug literatūros apie Paxos ir Raft protokolų variantus, sprendžiančius Bizantijos generolų problemą, tačiau visos šios struktūros sukuria papildomų bendravimo išlaidų. Architektūrinė šizofrenija Facebook Svarstyklės išlaikyti kvorumą. Svarstyklėms jie pasirinko algoritmą, kurio ryšio kaina būtų didžiausia Architektūrinė šizofrenija Facebook Svarstyklės vadovavimo nesėkmės atveju. Be to, atsiranda papildomų išlaidų dėl galimo lyderių perrinkimo dėl kelių tipų tinklo gedimo įvykių.

Sistemai, veikiančiai labai reguliuojamų tarptautinių korporacijų konsorciume, kur visi vartotojai turi „Facebook“ pasirašytą kodą, o prieigą prie tinklo kontroliuoja „Facebook“, tiesiog nėra prasmės bendru sutarimu laikyti piktavališkus dalyvius. Neaišku, kodėl ši sistema netgi išspręstų Bizantijos generolų problemą, o ne paprasčiausiai išlaikytų nuoseklią audito seką, kad būtų galima patikrinti atitiktį. Galimybė, kad „Mastercard“ arba Andresseno Horrowitzo valdomas „Libra“ mazgas staiga pradėtų paleisti kenkėjišką kodą, yra keistas scenarijus, kurį reikia planuoti ir geriau išspręsti tiesiog užtikrinant protokolo vientisumą ir netechninėmis (t. y. teisinėmis) priemonėmis.

Liudijimas Kongresui apskaičiavo, kad produktas yra konkurentas naujiems tarptautiniams mokėjimo protokolams, tokiems kaip WeChat, Alipay ir M-Pesa. Tačiau nė viena iš šių sistemų nėra skirta veikti patvirtinimo telkiniuose, siekiant išspręsti Bizantijos generolų problemą. Jie tiesiog sukurti naudojant tradicinę didelio pralaidumo magistralę, kuri sujungia laidus pagal nustatytas taisykles. Tai natūralus požiūris į mokėjimo sistemos kūrimą. Gerai suprojektuotas mokėjimo sistema tiesiog nesusidurs su dvigubų išlaidų ir šakių problema.

Konsensuso algoritmo pridėtinė kaina neišsprendžia jokios problemos ir tik riboja sistemos pralaidumą be jokios kitos priežasties, išskyrus viešosios blokų grandinės krovinio kultą, kuris nėra skirtas šiam naudojimo atvejui.

Svarstyklės neturi sandorių privatumo

Remiantis dokumentacija, sistema sukurta atsižvelgiant į pseudonimiškumas, tai yra, protokole naudojami adresai yra gauti iš viešųjų raktų elipsinėse kreivėse ir juose nėra metaduomenų apie paskyras. Tačiau niekur organizacijos valdymo struktūros aprašyme ar pačiame protokole nenurodoma, kaip su sandoriais susiję ekonominiai duomenys bus paslėpti nuo tikrintojų. Sistema sukurta taip, kad atkartotų operacijas dideliu mastu įvairioms išorės šalims, kurios pagal galiojančius Europos ir JAV bankų paslapties įstatymus neturėtų žinoti ekonominių detalių.

Duomenų politiką įvairiose šalyse sunku koordinuoti, ypač atsižvelgiant į skirtingus įstatymus ir kitus teisės aktus įvairiose jurisdikcijose, kurių kultūriniai požiūriai į duomenų apsaugą ir privatumą skiriasi. Pats protokolas pagal nutylėjimą yra visiškai atviras konsorciumo nariams, o tai yra aiškus techninis trūkumas, neatitinkantis reikalavimų, kuriems jis sukurtas.

Libra HotStuff BFT negali pasiekti mokėjimo sistemai reikalingo pralaidumo

JK kliringo sistemos, pvz., BAC, gali apdoroti apie 580 000 000 operacijų per mėnesį. Tuo pačiu metu labai optimizuotos sistemos, tokios kaip „Visa“, gali apdoroti 150 000 000 operacijų per dieną. Našumas skiriasi priklausomai nuo operacijos dydžio, tinklo maršruto parinkimo, sistemos apkrovos ir AML patikrinimai (kovos su pinigų plovimu, pinigų plovimo schemos).

Svarstyklės bando išspręsti problemas, kurios iš tikrųjų nėra vidaus pervedimų problemos, nes nacionalinės valstybės per pastarąjį dešimtmetį modernizavo savo kliringo infrastruktūrą. Mažmeniniams vartotojams Europos Sąjungoje pinigų pervežimas nėra problema. Tradicinėje infrastruktūroje tai galima padaryti naudojant standartinį išmanųjį telefoną per kelias sekundes. Dideliems įmonių pervedimams taikomi įvairūs mechanizmai ir taisyklės, susijusios su didelių pinigų sumų perkėlimu.

Nėra jokių techninių priežasčių, dėl kurių tarptautiniai mokėjimai taip pat negali būti tvarkomi iš karto, išskyrus atitinkamų jurisdikcijų taisyklių ir reikalavimų skirtumus. Jei būtinos prevencinės priemonės (kliento patikrinimas, sankcijų patikrinimai ir kt.) atliekamos kelis kartus skirtinguose sandorio grandinės etapuose, tai gali lemti sandorio uždelsimą. Tačiau šis delsimas yra tik reguliavimo teisės aktų ir atitikties, o ne technologijos funkcija.

Vartotojams nėra jokios priežasties, kodėl JK sandoris nebūtų atliktas per kelias sekundes. Mažmeninės prekybos sandoriai ES iš tiesų lėtėja KYC patikrinimas (Pažink savo klientą) ir AML apribojimus, taikomus vyriausybių ir reguliavimo institucijų, kurie vienodai taikomi ir Svarstyklių mokėjimams. Net jei „Facebook“ įveiktų tarpvalstybinio duomenų perdavimo ir asmeninio duomenų perdavimo kliūtis, siūlomas modelis yra šimtus asmeninių metų nutolęs nuo pasaulinio operacijų srauto ir greičiausiai jį reikės perdaryti nuo nulio.

Svarstyklių judėjimo kalba neteisinga

Baltojoje knygoje pateikiami drąsūs teiginiai apie naują, neišbandytą kalbą, vadinamą Move. Šie teiginiai yra gana abejotini programavimo kalbos teorijos (PLT) požiūriu.

„Move“ yra nauja programavimo kalba, skirta įgyvendinti pasirinktinę operacijų logiką ir išmaniąsias sutartis „Libra“ blokų grandinėje. Kadangi Svarstyklės siekia vieną dieną aptarnauti milijardus žmonių, „Move“ sukurtas saugumas yra svarbiausias prioritetas.

Pagrindinė „Move“ savybė yra galimybė apibrėžti savavališkus išteklių tipus naudojant linijinės logikos įkvėptą semantiką.

Viešose blokų grandinėse išmaniosios sutartys susiduria su viešųjų tinklų su sąlyginio deponavimo sąskaitomis logika, pinigų plovimu, OTC žetonų išleidimu ir lošimu. Visa tai daroma stulbinančiai prastai sukurta kalba, pavadinta Solidity, dėl kurios akademiniu požiūriu PHP autorius atrodo kaip genijus. Kaip bebūtų keista, atrodo, kad naujoji „Facebook“ kalba neturi nieko bendra su šiomis technologijomis, nes iš tikrųjų tai yra scenarijų kalba, skirta neaiškiems įmonės tikslams.

Privačiose paskirstytose knygose išmaniosios sutartys yra viena iš tų terminų, kuriuos konsultantai išmeta, neatsižvelgdami į aiškų apibrėžimą ar tikslą. Įmonių programinės įrangos konsultantai paprastai uždirba pinigus iš dviprasmybių, o išmaniosios sutartys yra įmonių tamsumo apoteozė, nes jas galima apibrėžti kaip tiesiog bet ką.

Pareiškus pretenzijas apie jos saugumą, reikia pažvelgti į kalbos semantiką. Programavimo kalbos teorijos teisingumas paprastai susideda iš dviejų skirtingų įrodymų: „progreso“ ir „išsaugojimo“, kurie lemia visos kalbos vertinimo taisyklių erdvės nuoseklumą. Tiksliau, tipo teorijoje funkcija yra „linijinė“, jei savo argumentą naudoja tiksliai vieną kartą, ir „afininė“, jei ją naudoja daugiausia vieną kartą. Linijinio tipo sistema suteikia statinę garantiją, kad deklaruota tiesinė funkcija yra tikrai tiesinė, priskirdama tipus visoms funkcijų posakiams ir sekdama, kur skambinama. Tai subtili savybė, kurią reikia įrodyti, ir ją nėra lengva įdiegti visai programai. Linijinis tipavimas vis dar yra labai akademinė studijų sritis, kurią įtakoja tipo unikalumo įgyvendinimas Clean ir tipo nuosavybė Rust. Yra keletas preliminarių pasiūlymų, kaip pridėti linijinius tipus į Glasgow Haskell kompiliatorių.

Move teiginys apie linijinių tipų naudojimą atrodo kaip nepagrįstas pasinerimas į kompiliatorių, nes nėra tokios tipo tikrinimo logikos. Kiek galima pasakyti, baltojoje knygoje cituojama kanoninė Girardo ir Peirce'o literatūra, o realiame įgyvendinime nieko panašaus nėra.

Be to, formali tariamai saugios kalbos semantika niekur neatsiranda nei įgyvendinime, nei dokumente. Kalba pakankamai maža, kad būtų galima rasti pilną teisingos semantikos įrodymą Coq arba Isabelle. Tiesą sakant, visapusišką pilno konvertavimo kompiliatorių su įrodymo perkėlimu į baitinį kodą visiškai įmanoma įdiegti naudojant šiuolaikinius įrankius, išrastus per pastarąjį dešimtmetį. Mes žinome, kaip tai padaryti, pradedant nuo George'o Necula ir Peter Lee kūriniai dar 1996 m.

Žvelgiant iš programavimo kalbos teorijos perspektyvos, neįmanoma patikrinti teiginio, kad „Move“ yra patikima ir saugi kalba, nes šie teiginiai yra grynas rankų mostelėjimas ir rinkodara, o ne tikri įrodymai. Tai nerimą kelianti situacija kalbos projektui, kurio prašoma apdoroti milijardus dolerių vertės operacijų.

Svarstyklių kriptografija yra ydinga

Saugių kriptosistemų kūrimas yra labai sudėtinga inžinerinė problema, todėl visada geriausia dirbti su pavojingu kodu su didele sveikos paranojos doze. Šioje srityje yra didelių laimėjimų, pavyzdžiui, Microsoft Everest projektas, kuriuo kuriamas patikrinamas saugus TLS krūva. Jau yra įrankių, leidžiančių sukurti patikrinamus primityvus. Nors tai brangu, akivaizdu, kad tai neviršija „Facebook“ ekonominių galimybių. Tačiau komanda nusprendė nedalyvauti projekte, kuris buvo paskelbtas patikimu pasaulinės finansų sistemos pagrindu.

svarstyklių projektas priklauso nuo iš kelių gana naujų bibliotekų, skirtų kurti eksperimentines kriptosistemas, kurios atsirado tik per pastaruosius kelerius metus. Neįmanoma pasakyti, ar priklausomybės nuo toliau nurodytų įrankių yra saugios, ar ne, nes nė viena iš šių bibliotekų nebuvo patikrinta ir neturi standartinės atskleidimo politikos. Visų pirma, kai kurių pagrindinių bibliotekų atveju nėra tikrumo dėl apsaugos nuo šoninio kanalo atakų ir laiko atakų.

  1. ed25519-dalek
  2. kreivė25519-dalek

Svarstyklių biblioteka tampa dar labiau eksperimentinė ir apima daugiau standartinis modelis, taikant labai naujus metodus, tokius kaip patikrinamos atsitiktinės funkcijos (VRF), dvilinijinės poros ir slenksčio parašai. Šie metodai ir bibliotekos gali būti pagrįsti, tačiau jų visų sujungimas į vieną sistemą kelia rimtą susirūpinimą dėl atakos paviršiaus ploto. Visų šių naujų įrankių ir metodų derinys labai padidina saugumo įrodinėjimo sudėtingumą.

Reikėtų manyti, kad visa ši kriptografinė krūva yra pažeidžiama įvairių atakų, kol neįrodyta kitaip. „Facebook“ garsusis „Move Fast and Break Things“ modelis negali būti taikomas kriptografiniams įrankiams, kurie apdoroja klientų finansinius duomenis.

Svarstyklėms nepavyksta įgyvendinti vartotojų apsaugos mechanizmų

Išskirtinis mokėjimų sistemos bruožas yra galimybė atšaukti operaciją, jei mokėjimas atšaukiamas dėl ieškinio arba dėl netyčinio ar sistemos gedimo. „Libra“ sistema sukurta taip, kad ji būtų „pilna“ ir neapima mokėjimo atšaukimo operacijos tipo. JK visiems mokėjimams nuo 100 iki 30,000 XNUMX svarų sterlingų taikomas Vartojimo kredito įstatymas. Tai reiškia, kad atsiskaitymo sistema dalijasi atsakomybe su pardavėju, iškilus problemoms dėl įsigytos prekės arba mokėjimo gavėjui nesuteikus paslaugos. Panašios taisyklės galioja ES, Azijoje ir Šiaurės Amerikoje.

Dabartinis Svarstyklių dizainas neapima šių įstatymų laikymosi protokolo ir neturi aiškaus plano, kaip jį sukurti. Dar blogiau, žvelgiant iš architektūrinės perspektyvos, branduolio autentifikuotų duomenų struktūros užbaigtumas, pagrįstas Merkle disko būsena, neleidžia jokiam mechanizmui sukurti tokį protokolą neperprojektuojant branduolio.

Atlikę techninę šio projekto apžvalgą galime daryti išvadą, kad jis tiesiog nepateks į jokį gerbiamą paskirstytų sistemų tyrimų ar finansų inžinerijos žurnalą. Norint pakeisti pasaulinę pinigų politiką, reikia atlikti daug techninio darbo, kad būtų sukurtas patikimas tinklas ir saugus vartotojų duomenų apdorojimas, kuriuo galėtų pasitikėti visuomenė ir reguliavimo institucijos.

Nematau pagrindo manyti, kad „Facebook“ atliko reikiamą darbą kurdamas šias technines problemas arba kad jis turi kokių nors techninių pranašumų, palyginti su dabartine infrastruktūra. Sakymas, kad įmonei reikalingas reguliavimo lankstumas, kad būtų galima ištirti naujoves, nėra pasiteisinimas, kad jų nedaryti pirmiausia.

Šaltinis: www.habr.com

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster