Cum verifică criptofrații monedele pe Github

În seara asta am dat drumul să mă uit la discuția pe care o are Vali cu criptofrații Hobincu și Ștefan Stoean pe youtube. Discuția în sine e destul ciudată, în sensul că nici Vali nu a venit pus să le demoleze coșmelia (dar pune niște întrebări de bun simț), și criptofrații își fac jocul. Cumva natural, pentru că discuția se întâmplă în casa lui Hobincu, bănuiesc că era cam ciudat dacă Vali venea acolo și le zicea cu subiect și predicat că mint (deși sunt locuri unde sugerează). Aș spune că nu recomand discuția respectivă pentru simplul fapt că nu vă aduce nimic util - singura știre pe care trebuie s-o știți e că încă o bursă de cripto a căzut, și Bitcoin-ul e sub 16000$ bucata iar treaba asta i-a prins live, și telefonul unuia a început să sune din cauza asta.

Scriu acest articol pentru că m-a zgâriat o chestiune puternic pe ureche și vreau să vorbim despre ea, pentru că încă nu am auzit pe nimeni din România să vorbească despre acest aspect. Se referă la „cum verificăm că o monedă e legitimă pe github”, și oamenii spun niște lucruri care nu au sens dar care par legitime. În principiu Ștefan Stoean sugerează că în momentul în care faci o investiție „să-ți faci research-ul pe github” (cercetarea, adică). Ce înseamnă asta: când ai o monedă nou lansată te uiți în cod să vezi că ceea ce se întâmplă acolo este bine. Puși față în față cu afirmația, oamenii încearcă să o dea întoarsă, și explică că nu, de fapt tu nu te uiți la cod, te uiți la ce oameni activează și cum activează. Și sugerează că treaba asta poate să o facă oricine. „Nu trebuie să ai idee de cod”. Vali spune singurul lucru de bun simț: dacă nu te pricepi te uiți ca vita la cod și nu pricepi dacă ăia fac ce spun ei că fac sau nu.

Criptofrații însă explică că ei de fapt verifică dacă firma și oamenii au activitate, dacă au spus că au zece programatori dar văd doar 3 activi e clar că mint, și chestii de genul ăsta. E o strategie de argumentare pe care o s-o explic un pic mai departe, și, la fel, voi explica și de ce băieții ăștia nu produc conținut scris public pe care să-l țină public, ci doar video-uri - de-asta Ștefan Stoean recomandă un clip de la el de pe canal (care are două ore) în care un programator explică cum să extragi informațiile importante dintr-un depozit de cod github.

Problema cu github

Am 21 de ani de software development, și dacă mă uit pe activitatea dintr-un repo github nu pot să-mi dau seama dacă firma respectivă e legitimă sau nu, fără a investi multe (foarte multe) ore în asta. Dacă ai un actor extrem de interesat să te păcălească te va păcăli, fără mari probleme.

Ce înseamnă acel repo github. Pentru cei care nu cunosc treburi legate de programare, github e un site unde foarte multe proiecte își publică codul sursă. În felul acesta poți descărca codul sursă al unui program și poți afla cum anume funcționează în cel mai fin detaliu. Desigur, e o treabă pe care o poate face doar un cunoscător - e nevoie de mult timp și multă energie pentru a descifra codul respectiv. Ca să facem o comparație, Război și pace în varianta Project Gutenberg are 3.359.372 litere iar codul sursă de la unul din proiectele de criptomonedă (Elrond wasm rs) are la momentul ăsta 6.304.850 litere (Elrond are mai multe astfel de subproiecte). Diferența fiind că dacă sari peste un paragraf din Război și pace probabil că nu ai șanse să-ți scape un bug care să-ți ia toți banii din buzunar. Deci nu, asta nu e o cale bună de a face cercetare „ca civil”.

Bun, dar ei zic că nu, nu trebuie să faci analiza asta, probabil că sunt alții care o fac. Și e cât se poate de adevărat; dar atunci nu se cheamă că-ți faci research pe github, nu? Ba da, zic ei: te uiți la cine cum muncește, și dacă repară buguri.

Și da, e adevărat, poți să faci lucrul ăsta. Poți să vezi cine are activitate, cât de des are activitate, ce activitate are, dar cum poți să certifici că e activitate reală? Adică, de unde știi că nu e un edict în firma aia de țepari: „zilnic schimbați minimum trei linii de cod într-un fișier”, pentru că ei s-au înțeles cu criptofrați să le facă reclamă și să îi invite pe toți să se uite că da, au activitate!

Și mai este o problemă. Să zicem că intri pe repository-ul github și vezi activitate. Ce înseamnă asta?

Activitatea pe github nu e o validarea pe care o vrei

Faptul că vezi activitate pe github nu înseamnă neapărat că e un lucru bun. Mai ales când e vorba de bani, e un lucru rău, foarte rău. De fiecare dată când ai o modificare în felul în care funcționează o monedă ai posibilitatea ca lucrurile să o ia razna și, ca utilizator al monedei, tu să pierzi. „Când vezi un raport că s-au descoperit 100 de greșeli și s-au reparat 93…” își începe Alexandru Hobincu un argument, și la care ar trebui să vă întrebați: „cum adică să aibă banii 100 de greșeli?”. Și ar fi o întrebare cât se poate de corectă. Dar oamenii în discuție sunt foarte de acord că ar investi în moneda care repară 93% din greșeli.

Nu zic că greșesc cu afirmația respectivă. Adică, e de înțeles, în starea în care sunt lansate produsele software în ziua de azi, faptul că ai multe probleme raportate și multe din ele reparate e un lucru pozitiv: înseamnă că ai utilizatori suficient de mulți cât să-ți depisteze erorile și ai oameni suficient de buni cât să înțeleagă problemele și să le repare. Dar, din nou, de ce ai investi într-o treabă care ar putea să-ți șteargă toate resursele datorită faptului că ai făcut ceva ce nu ar fi trebuit să poți face în primul rând? De exemplu, să ștergi 300 de milioane de dolari din greșeală? Sau, nu știu, să transferi 10 milioane în loc de 100 de dolari?

Bine, recunosc că încă mă dor ochii de la cât de tare i-am dat peste cap când l-am auzit pe Hobincu vorbind despre „de câte ori s-a greșit codurile și de câte ori s-a reparat”. Dar mai e un aspect: câți au capacitatea de a înțelege ce scrie pe o listă de buguri? Câți sunt real capabili să știe „de câte ori s-a greșit codurile și de câte ori s-a reparat”? Și de ce „de câte ori s-a greșit codurile” nu e un predictor pentru „de câte ori se va greși codurile și de-acum încolo”? Și de ce aș prefera o investiție în ceva unde „se tot greșește codurile”?

Care este nivelul de siguranță de care ai nevoie

Experiența mea cea mai apropiată de lucrat cu chestii de viață și de moarte a fost pe un sistem de casă inteligentă unde se integra și un detector de fum. Ceea ce făceam eu era mai puțin important - partea cu adevărat importantă era deja făcută, și certificată în altă parte. Dispozitivul respectiv avea niște cerințe draconice pentru certificare, și a avut un ciclu de dezvoltare de câțiva ani: codul de pe el era destul de mic - e un dispozitiv care costă 13€ și nu are foarte multă logică în el, dar a trecut prin niște teste foarte minuțioase. De ce? Pentru că de funcționarea corectă a acelui dispozitiv poate depinde cândva viața ta.

La fel e și cu banii. Poți să te afli într-o situație în care o sumă de bani îți poate salva viața. Din cauza asta cea mai sigură monedă e cea pe care o ai în mână - cash-ul - și următorul nivel de siguranță este dat de banii din bancă pe care îi accesezi pe cale electronică, unde ai probabil accesibilitate vreme de 99.99% din timp. Accesibilitatea nu e singurul criteriu, mai este și disponibilitatea cuiva care oferă servicii să primească o plată în acea monedă. Un exemplu personal: ajunși în Elveția dar neavând franci elvețieni și taxatorul de la autobuz neacceptând plata cu cardul am plătit cu Euro - șoferul acceptând cu reluctanță plata în Euro la un curs negociat ad-hoc. „Swiss franc is better” ne explica șoferul, dar până la urmă a acceptat plata pentru niște călători pierduți și bagajele lor.

Bun. Un alt criteriu e acela al siguranței tranzacțiilor. Cineva trebuie să-ți garanteze că o greșeală de funcționare nu se va răsfrânge asupra ta. Da, poate exista în programele folosite de bănci o eroare care să-ți șteargă toți banii. Dar atunci ai căi de atac - poți discuta cu cei de la bancă să-ți dea explicații și să rectifice eroarea, să-ți restaureze contul la valoarea corectă, sau, dacă nu, poți acționa în judecată banca, și recupera banii respectivi. În orice caz, nu o să vină cineva să dea din umeri și să zică: „da, a fost un bug, îmi pare rău să aud că ai avut de suferit”.

De-asta, 100 de buguri, chiar dacă sunt rezolvate, pot însemna 100 de cazuri care sunt pe muchie de cuțit și care pot să-și piardă o mare parte din avere capitalizată în monedă virtuală pentru că un programator sau un matematician a făcut o greșeală. Când e vorba de viață și de moarte, când e vorba de lucruri care afectează existența oamenilor, o singură greșeală poate fi prea mult.

De ce criptofrații preferă audio/video

Încă un lucru mai vreau să adaug, și nu o să intru în discuțiile despre cum se joacă cu cartoful fierbinte, și criptomoneda ba e monedă ba e investiție, ba comparăm moneda cu acțiunile, ba investiția într-o monedă cu cum cheltui tu bani de-ăștia fracționari care nu-s buni că nu le plac dânșilor. Vreau să vă explic de ce pot să spună cu atâta seninătate atât de multe prostii și lumea să continue să-i urmărească.

Lucrul la care sunt criptofrații incredibil de dibaci e la partea de conversație - reușesc să stăpânească conversația indiferent de conținutul ei. Dau bine pe sticlă, dar asta nu e suficient - important e că stau bine în conversație, și e o artă a retoricii pe care au deprins-o și o exersează de foarte mult timp. Lecția numărul 1: indiferent de ce zice cel care nu e de acord cu tine, important e să vorbești mai departe.

Lui Vali îi e imposibil să iasă câștigător dintr-o discuție cu criptofrații pentru că el are un mod molcom de a argumenta, mai percutează din când în când lumea, dar criptofrații imediat răspund cu alte lucruri. Dacă Vali vine cu un argument în discuție, ei vin cu alte zece exemple despre cu totul altceva (o stratagemă numită „mutatul porții”). Ideea e destul de simplă, în momentul în care cineva le vine cu un contra-argument, ei spun: „a, dar noi nu despre asta vorbeam, ci despre «explicație în detaliu pe ceva complet diferit de discuția inițială»”.

Și treaba ar fi ușor de verificat dacă ar fi în scris - dar ca să verifici o idee exprimată în spate la audio/video e aproape imposibil. Pur și simplu e un mediu foarte solicitant din toate punctele de vedere - nu poți verifica la fel de ușor că cuvintele spuse anterior au fost corecte, și poți oricând spune că „nu ați înțeles voi corect, eu de fapt vroiam să zic că…”

Dar, mai important, e foarte greu să faci un rezumat al ideilor principale. Discuția live e foarte stufoasă, dar ideile sunt foarte puține. E foarte greu să faci un rezumat la tot ce zic Stoean și Hobincu - asta pentru că e foarte greu să sistematizezi un discurs liber. În scris e mai greu de apărat prostia pe care o zici. Când scrii că „faci tranzacții cu bitcoin fără comisioane” e foarte greu să aperi afirmația când, mai târziu, explici cum plătești cu cardul Binance care are două rânduri de comisioane (cripto->USD->moneda ta). E foarte greu să o aperi și când explici că nu plătești comisioane decât ce le plătești minerilor. Când vorbești… câți vor da înapoi 1 minut sau 10 sau 25 ca să își reamintească ce ziceai tu despre comisioane?

Practic tot clipul ăla cu Vali despre asta ei - despre cum mută poarta ăștia cu argumentul lor. Mi-ai dat gol acolo? dar poarta nu era acolo, criptofratele meu, era dincoace, unde uite, știi cum e cu investițiile? A, și acțiunile scad. Cum, argumentezi că acțiunile îți dau dividende? Păi nu, că moneda fiat… Și tot așa (nu știu dacă au băgat-o cu moneda fiat, pentru că pur și simplu toarnă prea multe chestii în discuție, dar dădeam un exemplu)

Așa că strategia perfectă pentru a fi criptofrate: vorbește mult, clar, rapid, și vino cu foarte foarte multe idei și comparații, dar și cu informații care sunt imposibil de verificat live. Vrei să înțelegi cum verifici un proiect pe github fără să știi programare? Uite un clip de două ore. Ți-ar prinde mai bine să stai să înveți programare timp de două ore? Da, dar tu o să te uiți la niște oameni care îți dau două ore de informații inutile. Ai ceva care contrazice ideile de bază din cele două ore? Stai să-ți mai dau trei clipuri de cinci ore despre asta.

E imposibil să le demontezi toate prostiile, nu pentru că ar fi foarte aproape de realitate, sau foarte subtile. Nu, îți e imposibil să le demontezi pe toate pentru că sunt prea multe. E imposibil să le demontezi argumentul pentru că mereu mută ținta conversației. Și o fac aproape fără să gândească - e o treabă pe care probabil nici nu sunt conștienți că o fac. Important e, pentru ei, să umple spațiul gol pe care l-ai putea folosi ca să te gândești - să nu ai timp să gândești, și așa să le accepți mai ușor argumentele.