Evitarea proiectului blockchain fără rost

Nodul sursă: 1577766

Cum să determinați dacă ați găsit un caz real de utilizare blockchain

Blockchain-urile sunt supraevaluate. Acolo, am spus-o. Din SIBOS la Bani 20/20 pentru a acoperi povești despre Economist și Euromoney, toată lumea pare să se urce la bordul vagonului blockchain. Și, fără îndoială, ca și alții din spațiu, vedem un număr în creștere rapidă de companii care construiesc dovezi de concept pe platforma noastră și/sau să ne cerem ajutorul.

Fiind o startup tânără, ai crede că am fi peste lună. Cu siguranță acum este momentul să strângem o mulțime de bani și să construim acea platformă blockchain de înaltă generație pe care am proiectat-o ​​deja. Ce naiba așteptăm?

O sa iti spun eu ce. Așteptăm să obținem o înțelegere mai clară a locului în care sunt blocate cu adevărat adăugați valoare în IT-ul întreprinderii. Vedeți, o mare parte din aceste proiecte primite au nimic de-a face cu blockchain-urile. Iată cum se joacă. Compania mare a auzit că blockchain-urile sunt următorul lucru important. Compania mare găsește în interior niște oameni care sunt interesați de subiect. Compania mare le oferă un buget și le spune să facă ceva blockchainy. Destul de curând vin să ne bată la ușă, fluturând bancnote, întrebând us pentru a ajuta la lor Gândește-te la un caz de utilizare. Spune ce acum?

Cât despre cei care au un proiect în minte, care este problema? În multe cazuri, proiectul poate fi implementat perfect folosind o bază de date relațională obișnuită. Știi, mașini mari de fier ca Oracol și SQL Serversau pentru cei mai deschiși la minte, MySQL și postgres. Deci, permiteți-mi să încep prin a clarifica lucrurile:

Dacă cerințele tale sunt îndeplinite de bazele de date relaționale de astăzi, ai fi nebun să folosești un blockchain.

De ce? Pentru că produse precum Oracle și MySQL au zeci de ani de dezvoltare în spate. Au fost implementate pe milioane de servere care rulează trilioane de interogări. Acestea conțin unele dintre cele mai amănunțite coduri testate, depanate și optimizate de pe planetă, procesând mii de tranzacții pe secundă fără să transpirați.

Și cum rămâne cu blockchain-urile? Bine, produsul nostru a fost unul dintre primii scoși pe piață și a fost disponibil de exact 5 luni, cu câteva mii de descărcări. De fapt, este extrem de stabil, pentru că noi l-am construit Bitcoin Core, software-ul care alimentează bitcoin. Dar chiar si asa, toată această categorie de produse este încă în scutece.

Deci spun că blockchain-urile sunt inutile? Absolut nu. Dar înainte de a te lansa în acel proiect blockchain strălucitor, trebuie să ai o idee foarte clară despre de ce utilizați un blockchain. Există o grămadă de condiții care trebuie îndeplinite. Și dacă nu sunt, ar trebui să te întorci la planșa de desen. Poate poți defini mai bine proiectul. Sau poate puteți economisi tuturor o mulțime de timp și bani, pentru că nu aveți nevoie deloc de un blockchain.

1. Baza de date

Iată prima regulă. Blockchain-urile sunt o tehnologie pentru baze de date partajate. Deci trebuie să începeți prin a ști de ce utilizați o bază de date, prin care mă refer la un depozit structurat de informații. Acesta poate fi un tradițional baza de date relațională, care conține unul sau mai multe tabele de tip foi de calcul. Sau poate fi cel mai la modă NoSQL varietate, care funcționează mai mult ca un sistem de fișiere sau dicționar. (La nivel teoretic, bazele de date NoSQL sunt oricum doar un subset de baze de date relaționale.)

Un registru pentru active financiare poate fi exprimat în mod natural ca un tabel de bază de date în care fiecare rând reprezintă un tip de activ deținut de o anumită entitate. Fiecare rând are trei coloane care conțin: (a) identificatorul proprietarului, cum ar fi un număr de cont, (b) un identificator pentru tipul de activ, cum ar fi „USD” sau „AAPL” și (c) cantitatea acelui activ deținută de acel activ. proprietar.

Bazele de date sunt modificate prin „tranzacții” care reprezintă un set de modificări ale bazei de date care trebuie acceptate sau respinse în ansamblu. De exemplu, în cazul unui registru de active, o plată de la un utilizator la altul este reprezentată de o tranzacție care deduce cantitatea corespunzătoare dintr-un rând și o adaugă la altul.

2. Scriitori multipli

Acesta este ușor. Blockchain-urile sunt o tehnologie pentru baze de date cu mai mulți scriitori. Cu alte cuvinte, trebuie să existe mai mult de o entitate care generează tranzacțiile care modifică baza de date. Știți cine sunt acești scriitori?

În cele mai multe cazuri, scriitorii vor rula, de asemenea, „noduri” care dețin o copie a bazei de date și transmit tranzacțiile către alte noduri într-un de la persoană la persoană Modă. Cu toate acestea, tranzacțiile pot fi create și de utilizatori care nu rulează ei înșiși un nod. Luați în considerare, de exemplu, un sistem de plăți care este întreținut în mod colectiv de un grup mic de bănci, dar are milioane de utilizatori finali pe dispozitive mobile, comunicând doar cu sistemele proprii ale băncii.

3. Lipsa încrederii

Și acum pentru a treia regulă. Dacă mai multe entități scriu în baza de date, trebuie să existe și un anumit grad de neîncredere intre acele entitati. Cu alte cuvinte, blockchain-urile sunt o tehnologie pentru baze de date cu mai mulți scriitori care nu au încredere.

Ai putea crede că neîncrederea apare doar între organizații separate, cum ar fi băncile care tranzacționează pe o piață sau companiile implicate într-un lanț de aprovizionare. Dar poate exista si în cadrul unei singure mari organizaţii, de exemplu între departamente sau operațiunile din diferite țări.

What do I specifically mean by mistrust? I mean that one user is not willing to let another modify database entries which it “owns”. Similarly, when it comes to reading the database’s contents, one user will not accept as gospel the “truth” as reported by another user, because each has different economic or political incentives.

4. Dezintermedierea

Deci problema, așa cum a fost definită până acum, este activarea unei baze de date cu mai mulți scriitori care nu au încredere. Și există deja o soluție binecunoscută la această problemă: intermediarul de încredere. Adică cineva în care toți scriitorii au încredere, chiar dacă nu au încredere unul în celălalt. Într-adevăr, lumea este plină de baze de date de această natură, cum ar fi registrul de conturi într-o bancă. Banca ta controlează baza de date și se asigură că fiecare tranzacție este valabilă și autorizată de clientul ale cărui fonduri le mută. Indiferent cât de politicos ai cere, banca ta nu te va lăsa niciodată să-și modifici baza de date direct.

Blockchain-urile elimină nevoia de intermediari de încredere prin activare baze de date cu mai mulți scriitori care nu au încredere să fie modificate direct. Nu este necesar niciun gardian central pentru a verifica tranzacțiile și a autentifica sursa acestora. În schimb, definiția unei tranzacții este extinsă pentru a include o dovadă de autorizare și o dovadă de valabilitate. Prin urmare, tranzacțiile pot fi verificat și procesat independent de fiecare nod care păstrează o copie a bazei de date.

Dar întrebarea pe care trebuie să o pui este: Vrei sau ai nevoie de această dezintermediere? Având în vedere cazul dvs. de utilizare, este ceva în neregulă în a avea o parte centrală care menține o bază de date cu autoritate și acționează ca gardian al tranzacțiilor? Motive bune pentru a prefera o bază de date bazată pe blockchain în locul unui intermediar de încredere ar putea include costuri mai mici, tranzacții mai rapide, automate reconciliere, o nouă reglementare sau o simplă incapacitate de a găsi un intermediar potrivit.

5. Interacțiunea tranzacției

Așadar, blockchain-urile au sens pentru bazele de date care sunt partajate de mai mulți scriitori care nu au total încredere unul în celălalt și care modifică acea bază de date direct. Dar asta încă nu este suficient. Blockchain-urile strălucesc cu adevărat acolo unde există interacțiunea dintre tranzacții creat de aceşti scriitori.

Ce vreau să spun prin interacțiune? În sensul cel mai deplin, aceasta înseamnă că tranzacțiile create de diferiți scriitori depind adesea una de alta. De exemplu, să presupunem că Alice îi trimite niște fonduri lui Bob și apoi Bob îi trimite niște fonduri lui Charlie. În acest caz, tranzacția lui Bob depinde de cea a lui Alice și nu există nicio modalitate de a verifica tranzacția lui Bob fără a verifica mai întâi cea a lui Alice. Din cauza acestei dependențe, tranzacțiile aparțin în mod firesc împreună în a bază de date unică partajată.

Mergând mai departe, o caracteristică frumoasă a blockchain-urilor este că pot fi create tranzacții în colaborare de mai mulți scriitori, fără ca niciuna dintre părți să se expună la riscuri. Aceasta este ceea ce permite livrare contra plată decontarea să fie efectuată în siguranță printr-un blockchain, fără a necesita un intermediar de încredere.

Un caz bun poate fi făcut și pentru situațiile în care tranzacțiile de la diferiți scriitori sunt corelate între ele, chiar dacă rămân independente. Un exemplu ar putea fi o bază de date de identitate partajată în care mai multe entități validează diferite aspecte ale identității consumatorilor. Deși fiecare astfel de certificare este independentă, blockchain-ul oferă o modalitate utilă de a reuni totul într-un mod unificat.

6. Stabiliți regulile

Aceasta nu este cu adevărat o condiție, ci mai degrabă o consecință inevitabilă a punctelor anterioare. Dacă avem o bază de date modificată direct de mai mulți scriitori, iar acei scriitori nu au încredere unul în altul, atunci baza de date trebuie să conțină reguli încorporate restrângerea tranzacţiilor efectuate.

Aceste reguli sunt fundamental diferite de constrângeri care apar în bazele de date tradiționale, deoarece se referă la legitimitatea transformărilor mai degrabă decât starea bazei de date la un anumit moment în timp. Fiecare tranzacție este verificată în raport cu aceste reguli de către fiecare nod din rețea, iar cele care eșuează sunt respinse și nu sunt transmise.

Registrele de active conțin un exemplu simplu de acest tip de regulă, pentru a preveni tranzacțiile care creează active din aer. Regula prevede că cantitatea totală a fiecărui activ din registru trebuie să fie aceeași înainte și după fiecare tranzacție.

7. Alegeți-vă validatorii

Până acum am descris o bază de date distribuită în care tranzacțiile pot avea originea în multe locuri, se pot propaga între noduri într-un mod peer-to-peer și sunt verificate de fiecare nod în mod independent. Deci, unde intervine un „blockchain”? Ei bine, treaba unui blockchain este să fie jurnalul de tranzacție final autorizat, cu privire la conținutul căruia toate nodurile sunt de acord.

De ce avem nevoie de acest jurnal? În primul rând, permite nodurilor nou adăugate să calculeze conținutul bazei de date de la zero, fără a fi nevoie să aibă încredere în alt nod. În al doilea rând, abordează posibilitatea ca unele noduri să rateze unele tranzacții, din cauza timpului de nefuncționare a sistemului sau a unei erori de comunicații. Fără un jurnal de tranzacții, acest lucru ar face ca baza de date a unui nod să divergă de cea a celorlalți, subminând obiectivul unei baze de date partajate.

În al treilea rând, este posibil ca două tranzacții să fie în conflict, astfel încât doar una poate fi acceptată. Un exemplu clasic este a cheltuieli duble în care același bun este trimis la doi destinatari diferiți. Într-o bază de date peer-to-peer fără autoritate centrală, nodurile pot avea opinii diferite cu privire la tranzacția care trebuie acceptată, deoarece există nici un răspuns corect obiectiv. Cerând ca tranzacțiile să fie „confirmate” într-un blockchain, ne asigurăm că toate nodurile converg către aceeași decizie.

În cele din urmă, în Ethereum-stil blockchains, exact comanda a tranzacțiilor joacă un rol crucial, deoarece fiecare tranzacție poate afectează ceea ce se întâmplă în fiecare ulterioară. În acest caz, blockchain-ul acționează pentru a defini cronologia autorizată, fără de care tranzacțiile nu pot fi procesate deloc.

Un blockchain este literalmente un lanț de blocuri, în care fiecare bloc conține un set de tranzacții care sunt confirmate ca un grup. Dar cine este responsabil pentru alegerea tranzacțiilor care intră în fiecare bloc? În tipul de „blockchain privat” care este potrivit pentru aplicațiile de întreprindere, răspunsul este un grup închis de validatori („mineri”) care semnează digital blocurile pe care le creează. Această listă albă este combinată cu o formă de schemă de consens distribuit pentru a împiedica o minoritate de validatori să preia controlul lanțului. De exemplu, MultiChain folosește o schemă numită diversitatea minieră, în care minerii autorizați lucrează în a round robin modă, cu un anumit grad de clemență pentru a permite nodurile nefuncționale.

Indiferent de schema de consens folosită, nodurile de validare au mult mai puțină putere decât proprietarul unei baze de date centralizate tradiționale. Validatorii nu pot falsifica tranzacții sau modifica baza de date cu încălcarea regulilor acesteia. Într-un registru al activelor, asta înseamnă că nu pot cheltui banii altora și nici nu pot modifica cantitatea totală de active reprezentate. Cu toate acestea, există încă două moduri în care validatorii pot influența în mod nejustificat conținutul unei baze de date:

  • Cenzura tranzactiilor. Dacă un număr suficient de validatori se complică cu răutate, ei pot împiedica confirmarea unei anumite tranzacții în blockchain, lăsând-o permanent în limbo.
  • Rezolvarea părtinitoare a conflictului. Dacă două tranzacții sunt în conflict, validatorul care creează următorul bloc decide care tranzacție este confirmată pe blockchain, determinând respingerea celeilalte. Alegerea corectă ar fi tranzacția care a fost văzută prima, dar validatorii pot alege pe baza altor factori fără a dezvălui acest lucru.

Din cauza acestor probleme, atunci când implementați o bază de date bazată pe blockchain, trebuie să aveți o idee clară despre cine sunt validatorii tăi și de ce ai încredere în ei, colectiv dacă nu singur. În funcție de cazul de utilizare, validatorii pot fi aleși ca: (a) unul sau mai multe noduri controlate de o singură organizație, (b) un grup central de organizații care întrețin lanțul sau (c) fiecare nod din rețea.

8. Asigură-ți bunurile

Dacă ați ajuns până aici, poate ați observat că tind să mă refer la blockchain-uri ca baze de date partajate, mai degrabă decât la „registre partajate”. De ce? Pentru că, ca tehnologie, blockchain-urile pot fi aplicate la probleme cu mult dincolo de urmărirea proprietății activelor. Orice bază de date care are mai mulți scriitori care nu au încredere poate fi implementată printr-un blockchain, fără a necesita un intermediar central. Exemplele includ calendare partajate, colaborare în stil wiki și forumuri de discuții.

Acestea fiind spuse, deocamdată se pare că blockchain-urile sunt de interes în principal pentru cei care urmăresc mișcarea și schimbul de active financiare. Mă pot gândi la două motive pentru aceasta: (a) sectorul financiar răspunde la amenințarea (în retrospectivă, minusculă) a criptomonedelor precum bitcoin și (b) un registru al activelor este cel mai simplu și natural exemplu de bază de date partajată cu tranzacții interdependente create de mai multe entități care nu au încredere.

Dacă doriți să utilizați un blockchain ca registru al activelor, trebuie să răspundeți la o întrebare crucială suplimentară: care este natura activelor mutate? Prin aceasta nu mă refer doar la numerar sau obligațiuni sau conosament, deși bineînțeles că și asta este important. Întrebarea este mai degrabă: Cine stă în spatele activelor reprezentate pe blockchain? Dacă baza de date spune că dețin 10 unități de ceva, cine îmi va permite să revendic acele 10 unități în lumea reală? Pe cine dau în judecată dacă nu pot converti ceea ce este scris în blockchain în active fizice tradiționale? (Vezi asta acord de bunuri de exemplu.)

Răspunsul, desigur, va varia în funcție de caz de utilizare. Pentru activele monetare, ne putem imagina băncile de custodie care acceptă numerar în formă tradițională și apoi creditează conturile deponenților într-un registru distribuit alimentat de blockchain. În finanțarea comerțului, acreditivele și conosamentul ar fi susținute de banca importatorului și respectiv de compania de transport maritim. Și mai departe, în viitor, ne putem imagina un moment în care emiterea primară obligațiunile corporative are loc direct pe un blockchain de către compania care încearcă să strângă fonduri.

Concluzie

După cum am menționat în introducere, dacă proiectul dvs. nu se îndeplinește fiecare dintre aceste condiții, nu ar trebui să utilizați un blockchain. În absența oricăreia dintre primele cinci, ar trebui să luați în considerare unul dintre: (a) stocarea obișnuită a fișierelor, (b) o bază de date centralizată, (c) master-slave replicarea bazei de datesau (d) mai multe baze de date la care utilizatorii pot subscrie.

Și dacă îndeplinești primele cinci, mai este de lucru. Trebuie să fiți capabil să exprimați regulile aplicației dvs. în ceea ce privește tranzacțiile pe care o bază de date le permite. Trebuie să ai încredere în cine poți avea încredere ca validatori și cum vei defini consensul distribuit. Și, în sfârșit, dacă te gândești la crearea unui registru partajat, trebuie să știi cine va sprijini activele pe care le reprezintă acel registru.

Ai toate răspunsurile? Felicitări, aveți un adevărat caz de utilizare blockchain. Și Ne-am bucura sa primim vesti de la tine.

Vă rugăm să postați comentarii pe LinkedIn. Vezi și această continuare: Patru cazuri de utilizare blockchain autentice.

Timestamp-ul:

Mai mult de la multicatenari