Autor: Gavin Wood

 

Gavin a acordat atenție problemei atacurilor de vrăjitoare (rezistența civilă) recent, PolkaWorld a revizuit discursul principal al Dr. Gavin Wood la Polkadot Decoded 2024 și a vrut să exploreze unele dintre perspectivele lui Gavin despre cum să prevină atacurile de vrăjitoare.

Ce este un atac de vrăjitoare?

După cum probabil știți, am lucrat la unele proiecte, scriu o hârtie gri, concentrându-mă pe proiectul JAM și am făcut, de asemenea, niște lucrări de cod în această direcție. De fapt, în ultimii doi ani, m-am gândit la o problemă foarte critică, care este foarte importantă în acest domeniu, și anume modul de prevenire a rezistenței civile. Această problemă este peste tot. Sistemele blockchain se bazează pe teoria jocurilor, iar atunci când analizăm jocuri, de obicei trebuie să limităm numărul de participanți sau să gestionăm arbitrariul pe care participanții îl pot manifesta.

Când proiectăm sisteme digitale, ne dorim foarte mult să putem determina dacă un anumit punct final, adică un punct final digital, este operat de un om. Vreau să fiu clar de la început că nu vorbesc despre identitate aici. Problema identității este cu siguranță importantă, dar scopul aici nu este de a determina identitatea specifică a unui punct final în lumea reală, ci de a distinge diferența dintre acest dispozitiv și dispozitivele operate în prezent de oameni. Dincolo de asta, o întrebare suplimentară este: dacă dispozitivul este într-adevăr operat de un om, putem da acelei persoane un pseudonim, astfel încât să poată fi identificată într-un context specific și dacă interacționează din nou cu noi folosind acest dispozitiv în viitor, Le vom putea identifica din nou.

Pe măsură ce modul în care interacționăm trece treptat de la comunicarea în primul rând cu alți oameni (cum ar fi anii 1980 când m-am născut) la interacțiunea cu sistemele, aceste tipuri de sisteme digitale, în special sistemele Web3 descentralizate, devin din ce în ce mai importante. În anii 1980, oamenii comunicau în primul rând direct între ei, în anii 1990, am început să interacționăm cu servicii prin telefon, cum ar fi serviciile bancare telefonice. Aceasta a fost o schimbare majoră pentru noi și, deși inițial operațiunile bancare telefonice constau doar dintr-o mulțime de centre de apel operate manual în care discutam cu oamenii prin telefon, în cele din urmă acele sisteme au evoluat în sistemele automate de voce pe care le au astăzi. Odată cu dezvoltarea internetului, acest tip de interacțiune umană a devenit din ce în ce mai puțin și aproape că nu mai interacționăm direct cu oamenii în serviciile zilnice. Desigur, această tendință a devenit și mai pronunțată odată cu creșterea comerțului electronic Web2. Și Web3 solidifică acest lucru și mai mult - în Web3, abia mai interacționați cu oamenii. Ideea de bază a Web3 este să vă permită să interacționați cu mașinile și chiar să permiteți mașinilor să interacționeze între ele.

Ce rost are să studiezi atacurile vrăjitoarelor?

Deci, ce înseamnă mai exact asta? Acesta este un element fundamental al oricărei societăți reale și se află în centrul multor dintre sistemele noastre sociale, inclusiv afaceri, guvernanță, vot, integrarea opiniei și multe altele. Toate acestea se bazează în mare măsură pe capacitatea de a preveni atacurile Sybil pentru a construi comunitate. Multe dintre mecanismele pe care le considerăm de la sine înțelese în întreprindere se bazează de fapt pe presupunerea prevenirii atacurilor Sybil. Fie că este vorba despre utilizarea corectă și rezonabilă, controlul zgomotului sau managementul comunității, toate se bazează pe această capacitate de apărare. Multe lucruri ne cer să confirmăm dacă o entitate este o ființă umană reală. Dacă cineva se comportă inadecvat, putem dori să-l excludem temporar din comunitate. Puteți vedea acest fenomen în serviciile digitale și, desigur, în lumea reală.

Prin prevenirea atacurilor Sybil, putem introduce unele mecanisme pentru a restrânge comportamentul fără a necesita bariere de intrare sau a sacrifica accesibilitatea sistemului. De exemplu, există două modalități de bază de a motiva comportamentul. Una este o strategie „morcov și băț” (adică un mecanism de recompensă și pedeapsă). Big stick (pedeapsa) este să vă ceri să plătiți un depozit Dacă vă comportați inadecvat, depozitul va fi confiscat. Abordarea morcov (recompensă) este să presupunem că veți avea performanțe bune, iar dacă nu îndepliniți așteptările, vă vom retrage unele dintre drepturile. Acesta este de fapt modul de bază în care funcționează majoritatea societăților civile.

Cu toate acestea, această abordare nu poate fi implementată cu adevărat fără un mecanism Sybil-proof pe blockchain. În societatea civilă, mecanisme ca acesta funcționează pentru că, odată ce cineva este încarcerat, nu mai poate comite din nou aceeași infracțiune, cel puțin nu cât timp este încarcerat. Libertatea este inerentă și, în principiu, guvernele o pot lua. Nu sugerez să închișez pe cineva în lanț, dar spun că măsuri similare de reținere nu sunt în prezent posibile în lanț. Acest lucru face dificilă furnizarea de servicii gratuite pentru a descuraja comportamentul rău, mai degrabă decât să încurajeze pur și simplu un comportament bun. Activitățile de afaceri și de promovare se bazează în mare măsură pe posibilitatea de a confirma că comercianții sunt oameni reali.

Aceasta este o captură de ecran de pe un site web pe care îl folosesc ocazional. Acesta este un whisky foarte bun pe care multor oameni le place foarte mult și este greu de găsit în țara de origine. În Europa, este relativ mai ieftin să-l obțineți, dar se pare că țin prețul scăzut limitând achizițiile individuale. Cu toate acestea, această operațiune este aproape imposibil de implementat într-un sistem Web3 real.

Există, de asemenea, dificultăți semnificative în construirea comunității, airdrops și identificarea și distribuirea membrilor comunității. În general, airdrops-urile sunt foarte ineficiente în ceea ce privește cheltuielile de capital, deoarece scopul airdrops-urilor este de a ajunge la cât mai mulți oameni posibil. Când se efectuează lansări de aer, pentru a obține în mod eficient o distribuție echitabilă, indivizii trebuie să fie mai întâi identificați și apoi să se acorde aceeași sumă tuturor. Cu toate acestea, în funcționarea efectivă vor fi întâlnite diverse probleme, cum ar fi diferite solduri de portofel. Puteți ajunge să aveți probleme și să faceți ca curba de distribuție să devină foarte dezechilibrată și să prezinte diferențe uriașe. Rezultatul este că majoritatea oamenilor abia sunt suficient de motivați.

În ceea ce privește problema „utilizarii corecte și rezonabile”, deși impactul este mai mic acum, dacă utilizați prea multe resurse de rețea, sistemul vă va încetini de obicei, deși puteți continua să utilizați rețeaua.

În vremuri, cu aproximativ 10 până la 15 ani în urmă, dacă utilizați prea multe resurse de Internet, ISP-ul dvs. ar putea crede că nu utilizați serviciul de rețea nelimitat în mod corespunzător. Deci, practic, vă vor opri complet serviciul în loc să vă încetinească viteza internetului, așa cum o fac acum. Această abordare le permite să ofere servicii de Internet aproape nelimitate pentru majoritatea utilizatorilor, deoarece pot identifica utilizatorii pentru a distinge cine utilizează resursele în mod corespunzător.

O bază a Web2 este modelul de servicii avansat, care se bazează în mare măsură pe capacitatea de a identifica utilizatorii. Cu mai bine de 20 de ani în urmă, mecanismele de identificare a utilizatorilor ar fi putut fi mai puțin sofisticate, dar lucrurile stau foarte diferit acum. Dacă doriți să deschideți un cont, există de obicei mai mult de trei mecanisme pentru a confirma dacă sunteți o persoană reală și dacă sunteți un utilizator pe care nu l-au văzut până acum. De exemplu, dacă încercați să vă înregistrați pentru un cont Apple fără să cumpărați un iPhone, este aproape ca și cum ați sări printre cercuri, iar companiile nu sunt în principiu dispuse să vă dea un cont. Sigur, ei anunță că poți obține un cont gratuit, dar habar n-am ce face AI în culise și mi-au trebuit 10 încercări înainte ca în sfârșit să funcționez. Ca urmare, a trebuit să cumpăr un iPhone.

Simt că, dacă putem identifica mai bine indivizii, multe procese precum „Oracleizarea” (verificarea informațiilor) vor deveni mai ușoare.

Un exemplu tipic de utilizare a „dovada umanității” pentru a preveni atacurile vrăjitoarelor în societate pentru a verifica informațiile este sistemul juriului. Când avem nevoie de un judecător imparțial (adică un Oracol) pentru a decide dacă cineva este vinovat sau nu, sistemul selectează aleatoriu un număr impar de oameni obișnuiți din societate și îi lasă să asculte dovezile și să emită un verdict. În mod similar, în alte domenii ale vieții sociale, cum ar fi reprezentarea și strângerea de opinii, reprezentarea este o parte importantă a societății și gestionăm reprezentarea prin mijloace Sybil-proof. Desigur, din moment ce infrastructura civică actuală este imperfectă, această abordare de management nu este adesea ideală, mai ales când reprezentarea este confundată cu identitatea. De multe ori, atunci când doriți să votați, trebuie să vă dovediți adevărata identitate, cum ar fi prezentarea unui permis de conducere sau a pașaportului. Dar, de fapt, votul reprezintă o parte a drepturilor tale de vot, mai degrabă decât să lege direct acest vot de identitatea ta personală.

Cum să preveniți atacurile vrăjitoarelor? Care este soluția actuală?

Deci, cum ar trebui făcut acest lucru?

În Web 2 și înainte de Web 2, existau multe modalități de a implementa autentificarea. În sistemele Web 2 de astăzi, aceste metode sunt adesea folosite în combinație. De exemplu, dacă doriți să creați un nou Cont Google, poate fi necesar să transmiteți un cod de verificare și să verificați prin e-mail și SMS. Uneori, verificarea mesajelor text poate înlocui un apel telefonic cu o persoană reală. Dacă ați fost vreodată blocat din contul dvs. Amazon, știți despre ce vorbesc. Practic, este un joc de labirint complicat până când găsești butoanele și opțiunile de telefon potrivite și, în sfârșit, poți vorbi cu un agent de serviciu pentru clienți în direct. Pentru prevenirea Sybil mai sofisticată, am putea folosi informații precum identitatea sau cardul de credit.

Cu toate acestea, pe măsură ce am intrat în lumea Web 3, cercetările mele nu au scos la iveală nimic care să mă satisfacă cu adevărat ca o soluție perfectă. Există câțiva candidați, dar diferă foarte mult în trei domenii: dacă sunt descentralizați, dacă protejează confidențialitatea și dacă sunt cu adevărat rezistenți (adică, rezistenți la atacuri).

Reziliența devine o problemă din ce în ce mai mare. De fapt, majoritatea sistemelor se confruntă cu ambele probleme.

Există un sistem, ceea ce eu numesc „sistemul comun de confesiune”, în care vă dezvăluiți confidențialitatea unei anumite autorități, iar această autoritate va avea unele informații despre dvs. pe care este posibil să nu doriți să le împărtășiți altora. De exemplu, ați putea să vă scanați pașaportul și să-l trimiteți unei agenții, care deține apoi informațiile despre pașaportul tuturor și se află într-o poziție puternică, deoarece au toate acele informații. Sistemele comune de confesiune nu sunt potrivite pentru Web3.

În plus, uneori vezi unele sisteme de personalizare precum Web3, care se bazează pe „autorități comune de gestionare a cheilor”. Există o organizație puternică care determină cine este o persoană juridică ținând cheia. Cu alte cuvinte, această organizație are dreptul de a decide cine poate fi considerat „utilizator real” în sistem. Uneori, aceste organizații chiar dețin cheile utilizatorilor, dar de cele mai multe ori își păstrează pur și simplu puterea de a decide cine este o persoană legitimă.

Toate acestea se bazează pe autoritățile centralizate pentru a controla confidențialitatea sau informațiile de identitate ale utilizatorilor, ceea ce este contrar conceptelor de descentralizare Web 3 și autonomie a utilizatorilor.

A pune ceva în lanț nu înseamnă că este Web3. Puteți muta pur și simplu politicile Web2 sau politicile care se bazează pe o autoritate centralizată în lanț, dar acest lucru nu va schimba politica în sine. Înseamnă doar că politica poate fi mai rezistentă la execuție, dar politica în sine nu este încă Web3. Doar pentru că un nume este un șir lung hexazecimal, nu înseamnă că este neapărat privat. Dacă nu sunt luate măsuri specifice, astfel de șiruri pot fi asociate cu informații de identitate din lumea reală.

Dacă un sistem se bazează pe „mecanisme de confesiune” obișnuite, nu este o soluție de păstrare a confidențialității. Am observat suficiente încălcări ale datelor pentru a înțelege că datele nu pot fi păstrate în siguranță pur și simplu punându-le în spatele unui perete de fișiere corporative sau într-un hardware de încredere. O soluție personalizată potrivită pentru Web3 necesită nu o identitate individuală locală sau o apartenență la comunitatea locală, ci o identitate individuală globală, care sunt concepte complet diferite.

Există unele sisteme care încearcă să rezolve această problemă, dar se bazează pe o singură piesă hardware și pe un mecanism comun de gestionare a cheilor, deci nu sunt cu adevărat soluții Web3. De exemplu, proiectul Worldcoin încearcă să rezolve această problemă prin hardware de încredere, dar folosește o organizație unificată de gestionare a cheilor și o sursă de date centralizată, așa că nu este în conformitate cu conceptul de descentralizare al Web3.

Un alt exemplu este Gitcoin Passport, care este utilizat pe scară largă în comunitatea Ethereum și este o platformă cuprinzătoare pentru alte soluții de identitate și personalizare. Se bazează pe o autoritate federală de management cheie pentru a identifica persoanele, dar aceste surse de date se bazează adesea pe autorități centralizate, inclusiv autorități centralizate (CC) precum CoinBase.

Idena, o soluție Web3 interesantă fără gestionarea obișnuită a cheilor sau autoritatea centralizată. Cu toate acestea, este doar un singur mecanism și nu este clar dacă este suficient de rezistent în fața industriei AI în evoluție. Până acum, merge destul de bine, dar baza de utilizatori este încă relativ mică, cu doar aproximativ o mie de utilizatori.

În general, în prezent nu există nicio metodă care să poată rezolva complet această problemă.

Gândurile lui Gavin despre rezolvarea atacurilor vrăjitoarelor

Există două moduri de a gândi identitatea individuală: unul este îndepărtat și celălalt este local. Mașinile nu înțeleg în mod natural „identitatea individuală” și este puțin probabil să vedem că un fel de tehnologie de criptare rezolvă brusc această problemă. S-ar putea argumenta că amprentele digitale sau biometria fac oamenii unici și că mașinile le pot măsura, dar acest lucru ar fi dificil de demonstrat cu un sistem pur digital. Probabil cel mai apropiat sistem de acest obiectiv este Worldcoin, dar aceasta este doar o mașină capabilă de verificare într-un mod care nu poate fi piratat cu ușurință.

Prin urmare, trebuie să înțelegem că identitatea individuală este mai mult despre autentificare. Implica modul în care elementele dintr-un sistem digital verifică dacă alte elemente sunt entități reale. Deci, întrebarea este, care este baza acestei certificări? Este contact fizic sau alte suspiciuni? Avem încredere că un cont este o persoană reală pentru că am întâlnit persoana respectivă și la momentul întâlnirii presupunem că nu a fost în contact cu alte persoane și, prin urmare, putem deduce dacă este singurul individ într-un anumit mediu sau pur și simplu pentru că suntem pe ecran Ați văzut ceva și a avut alte dovezi care să susțină identitatea lui ca individ?

Când vorbim despre autentificare la distanță (adică autentificarea dovezilor non-directe, non-fizice), AI (inteligența artificială) poate cauza unele probleme. Și dacă ne bazăm pe dovezi fizice, caracterul practic poate deveni o problemă. Deci suntem blocați între aceste două constrângeri. Cu toate acestea, cred că prin inovație și imaginație, putem găsi în continuare câteva soluții viabile.

Deci, ce trebuie să facem?

Deci, de ce avem nevoie? Care este planul nostru?

Cred că cheia pentru a face Polkadot mai util în lumea reală (și nu doar în lumea DeFi, NFT-uri și blockchain-uri virtuale) este să găsești o modalitate simplă de a identifica indivizii. Identificarea aici nu înseamnă a determina cine este această persoană, de exemplu, nu înseamnă a spune „Știu că acesta este Gavin Wood”, ci a identifica „acesta este un individ unic”. Nu cred că va exista o singură soluție, așa că avem nevoie de un cadru modular și extensibil.

Primul pas este integrarea soluțiilor existente, rezonabile, precum Idena. În al doilea rând, sistemul nu ar trebui să fie limitat de ideile unei persoane și nu ar trebui să se bazeze doar pe imaginația unei persoane cu privire la mecanismele care ar putea funcționa. Acest lucru ar trebui să fie deschis într-o oarecare măsură, permițând tuturor să contribuie cu soluții.

În al doilea rând, avem nevoie de pseudonimitate contextuală puternică. De fapt, inițial am scris despre anonimat și, într-o oarecare măsură, mă refeream la anonimat, la anonimatul din identitatea ta din lumea reală. Dar, în același timp, vrem să avem și pseudonim, astfel încât, în orice context dat, să poți demonstra nu doar că ești un individ unic, ci și că atunci când folosești din nou sistemul în același context, poți demonstra că sunt aceeași persoană ca înainte.

În cele din urmă, avem nevoie de SDK-uri și API-uri solide pentru a face această caracteristică la fel de ușor de utilizat ca orice altă caracteristică în contractele inteligente Substrate sau Polkadot sau în viitorul ecosistem JAM. Trebuie să fie ușor de utilizat. De exemplu, pentru a fi specific, nu știu câți oameni aici au scris cod Frame, dar când scrieți un nou blockchain, veți vedea adesea o linie de cod let account = assure_signed (origine). Scopul acestei linii de cod este de a obține sursa tranzacției și de a confirma dacă sursa provine dintr-un cont și, dacă da, spuneți-mi care este contul. Dar un cont nu este același cu o persoană. O persoană poate folosi unul sau mai multe conturi și, în mod similar, un script poate folosi unul sau mai multe conturi. Contul în sine nu poate oferi nicio informație despre identitatea unei persoane, cel puțin nu pe cont propriu. Deci, dacă vrem să ne asigurăm că o tranzacție provine de la o persoană reală și nu de la unul dintr-un milion de conturi, trebuie să putem înlocui această linie de cod cu o altă linie de cod let alias = assure_person (origine, &b「Contextul meu ").

Există două beneficii care merită remarcate.

În primul rând, nu întrebăm doar dacă este un cont care semnează tranzacția, ci dacă este o persoană care semnează tranzacția. Acest lucru a făcut o diferență uriașă în ceea ce am putut realiza.

În al doilea rând, este important ca diferitele operațiuni să aibă contexte diferite și să implementăm protecția anonimatului și a pseudonimului în aceste contexte. Când contextul se schimbă, la fel se întâmplă și pseudonimele și nu există nicio modalitate de a lega pseudonimele în contexte diferite între ele sau de a asocia pseudonimul cu persoana din spatele lui. Acestea sunt sisteme pseudonime complet anonime, care devin un instrument foarte important în dezvoltarea blockchain, mai ales atunci când se dezvoltă sisteme care sunt utile în lumea reală.

Deci, ce limitări am putea pune mecanismelor prin care identificăm de fapt indivizii? În primul rând, mecanismul trebuie să fie accesibil pe scară largă. Nu va fi foarte util dacă permite doar participarea unui subset al populației. Nu ar trebui să necesite active și nu ar trebui să necesite comisioane scumpe, cel puțin nu taxe exorbitante.

În mod inevitabil, vor exista compromisuri între diferite mecanisme. Nu cred că există o soluție unică. Dar unele compromisuri sunt acceptabile, iar altele nu. Reziliența, descentralizarea și suveranitatea nu ar trebui tratate cu compromis, dar unele mecanisme pot necesita mai puțin efort, dar mai mult angajament, în timp ce altele pot necesita mai mult efort, dar mai puțin angajament. Ar trebui să ne așteptăm în mod rezonabil că în spatele unui individ verificat de sistem (adică conectat la un cont sau un pseudonim) există într-adevăr un individ unic din lumea reală.

Pot exista suprapuneri între diferitele mecanisme de măsurare a identității individuale într-un mod rezistent și fără autoritate în sistemele Web3 descentralizate. Aceasta înseamnă că, în realitate, nu putem atinge perfecțiunea, dar nu ar trebui să existe o eroare de ordin de mărime, iar diferența ar trebui să fie semnificativ mai mică decât un ordin de mărime. În plus, sistemul trebuie să fie extrem de rezistent la abuzul de identitate pentru a împiedica un număr mic de indivizi sau organizații să încerce să obțină un număr mare de identități individuale.

În mod esențial, sistemul trebuie să aibă măsuri de protecție pentru a preveni acest lucru. Pot exista mecanisme capabile să ofere scoruri de încredere relativ scăzute ale identităților individuale, ceea ce este un obiectiv mai ridicat. Unele mecanisme pot realiza acest lucru, altele nu, iar unele pot fi binare, fie credem că contul este un individ unic, fie nu. Există și mecanisme care pot spune că suntem 50% siguri, dar este posibil și ca acest individ să aibă două conturi, iar noi suntem 50% siguri de ambele conturi.

Desigur, toate acestea trebuie să fie fără permisiune și trebuie să fie ușor de implementat. Nu ar trebui să subliniez acest lucru, dar nu ar trebui să existe un mecanism comun de confesiune sau o autoritate comună de management cheie în sistem.

Care sunt beneficiile de a face acest lucru?

Deci de ce să faci asta? Care sunt beneficiile?

Am discutat câteva dintre modurile în care societățile folosesc sau se bazează pe identitățile individuale. Dar cum sunt acestea implementate pe lanț? Putem începe să ne imaginăm un sistem Polkadot în care nu există taxe de tranzacție de plătit, adică gratuit pentru o utilizare rezonabilă. Imaginați-vă o „Plază”, dacă nu sunteți familiarizat cu ea, este practic o versiune îmbunătățită a Asset Hub, cu funcționalitate smart contract și capacitatea de a profita de sistemul de staking.

Dacă ne imaginăm un astfel de lanț Plaza, ne putem imagina un scenariu în care taxele de gaz nu sunt necesare. Gazul este gratuit atâta timp cât îl utilizați în limite rezonabile. Desigur, dacă scrieți scripturi sau faceți o mulțime de tranzacții, va trebui să plătiți o taxă, deoarece aceasta depășește sfera drepturilor de utilizare ale unei persoane obișnuite. Imaginați-vă că aceste sisteme devin gratuite și deschise publicului și putem lansa comunitatea într-un mod țintit și eficient prin airdrops și alte metode. În același timp, ne putem imagina și metode de guvernare Polkadot mai avansate.

Acum, nu sunt deosebit de convins de ideea „o persoană, un vot”. În unele cazuri este necesar să se asigure legalitatea, dar de obicei nu duce la rezultate deosebit de bune. Cu toate acestea, putem lua în considerare și alte metode de vot, cum ar fi votul pătratic sau votul regional. O persoană, un vot poate fi foarte iluminator în unele elemente de reprezentare.

Ne-am putea imagina, de asemenea, un sistem oracol asemănător juriului, în care paralanțurile și contractele inteligente ar putea folosi oracole secundare locale, poate pentru oracole de preț, poate pentru a gestiona disputele dintre utilizatori. Dar ei pot spune, de asemenea, că, dacă este necesar, vom folosi un sistem de „mare juriu” sau „Curtea Supremă” pentru a selecta membri dintre indivizi aleatori cunoscuți pentru a lua decizii, pentru a ajuta la rezolvarea disputelor și pentru a oferi o mică remunerație. Deoarece acești membri sunt selectați aleatoriu dintr-un grup mare, imparțial, ne putem aștepta ca această abordare să ofere o metodă rezistentă și fiabilă de soluționare a litigiilor.

Vă puteți imagina că sistemele de limitare a zgomotului, în special integrările descentralizate ale rețelelor sociale în integrările rețelelor sociale, pot ajuta la gestionarea spam-ului și a comportamentului prost. În DeFi, ne-am putea imagina un sistem cu reputație limitată similar unui scor de credit, dar poate mai concentrat pe dacă ați fost vreodată prins că nu plătiți un împrumut la timp, astfel încât sistemul să poată oferi un serviciu similar cu un model freemium.

Bine, aceasta este prima parte a acestei discuții, sper că va ajuta.