Știu, știu. Există o mulțime de proiecte criptografice, cu diverse consensuri: bazate pe muncă și deținere, aur, petrol, prăjituri coapte (da, există și așa ceva, da-da). Ce ne-ar mai aduce un altul? Asta vreau să discutăm după citirea traducerii documentației tehnice „simplificate” a proiectului *Constellation (). Bineînțeles, aceasta nu este o descriere completă a algoritmului, dar mă interesează părerea comunității Habr, dacă un astfel de consens are vreun sens sau este de prisos?
Sunt puține litere la această etapă, așa că, dacă doar vrei să scrii „uf, cât se poate vorbi despre criptomonede”, te rog să te abții. Dacă ești interesat de noi dezvoltări în domeniul sistemelor distribuite și ai ceva de împărtășit în comentarii, te rog să continui.
P.S. Nu sunt autorul tehnologiei, nu pot garanta pentru transmiterea completă a esenței, așa că voi fi bucuros să primesc comentarii cu corecturi, dacă vor exista.
Evoluția de la consensuri sincronizate la cele asincronizate
Nodurile sunt selectate folosind un proces determinist (același folosit în DHT, de exemplu, bittorrent), care reglează dinamic atribuțiile nodurilor pentru a facilita validarea sau, mai bine spus, pentru a ajunge la consens. Se selectează grupuri de 3 noduri și se desfășoară runde de consens în paralel, astfel încât un nod să poată acționa ca facilitator în mai multe blocuri. Aceasta ne permite să procesăm tranzacțiile asincron, ceea ce, în esență, înseamnă că se formează simultan mai multe blockchains. Procesul este similar unei pânze, formată din multe fire, spre deosebire de noduri care formează un singur lanț în timp. Procesarea asincronă sau paralelă este baza programării scalabile, deoarece permite utilizarea tuturor resurselor computerului, accelerând calculul total. Această rețea este numită grafic orientat aciclic sau DAG în informatică.

Lățimea canalului blockchain-ului liniar versus efectul multiplicativ al DAG-ului, unde avem mai multe blockchains paralele.

Implementarea geometrică a blockchain-ului liniar versus DAG. Punctele negre sunt blocuri, punctele albe sunt noduri.
Folosim 3 noduri în fiecare rundă de consens, deoarece acest lucru ne oferă unele procese matematice interesante pentru a analiza starea, formând „planul suprafeței” prin date sub formă de triunghiuri legate. Apoi, protocolul folosește triunghiurile pentru a „cosi” suprafața optimă, care nu conține date redundante sau contradictorii și are cel mai mic număr posibil de triunghiuri. Algoritmic — acest lucru este similar cu „tăierea minimă” a unui graf, iar matematic — este o derivată sau o funcție de optimizare (din care funcția găsește cel mai scurt drum pe care îl poate traversa pe suprafață). Acest drum cel mai scurt este echivalent cu stocarea optimă a datelor (tranzacțiilor) într-un grup de baze de date în disponibilitate. Triunghiurile „plăcilor” conflictuale, astfel încât suprafața evenimentului să fie uniformă și fără conflicte.

Implementarea geometrică a detectării / gestionării conflictelor. Un bloc conflictual creează o placă suplimentară a suprafeței. Eliminăm placa suplimentară a suprafeței pentru a menține o suprafață plată (= fără conflicte) a evenimentelor.
Consens bazat pe reputație
Într-un sistem de reputație p2p decentralizat optim, fiecare nod trebuie să aibă capacitatea de a-și determina singur nivelul de încredere față de celelalte noduri. Sistemul nostru utilizează un model special care include relații transitive sau relații pe care un nod le are cu alte noduri atunci când se acordă o evaluare globală. „Ești la fel de bun ca și compania ta”. Rezultatul final este un „deformație” sau un gradient, bazat pe încrederea transativă sau reputația în toate nodurile din $DAG sau canalul staționar. Acest lucru poate fi văzut ca o răzătoare pentru brânză care șterge suprafața „planului suprafeței” și decide care „plăci triangulare” să fie șterse și care să fie păstrate. Așa funcționează logica conflictului pentru a elimina efectiv „plăcile triunghiulare”.

DAG cu o placă conflictuală, traversând un spațiu „deformat”, care este un gradient similar cu o răzătoare pentru brânză, și se va strădui să elimine sau „să șteargă” placa conflictuală.
Scalarea parțială / completă a nodului
În teoria rețelelor, distribuția optimă este adesea cunoscută sub denumirea de „fără scalare”, care poate fi descrisă ca o organizare ierarhică cu noduri centrale mari, care controlează multe noduri periferice mai mici. Această distribuție se regăsește în natură și, în special, pe internet. Constellation folosește această arhitectură pentru „scalare”, sau pentru a crește lățimea de bandă sau capacitatea Grafului nostru.

Efectul împărțirii ierarhice. Putem adăuga mai multe noduri, extinzând lățimea de bandă.
Hylochain — Suport pentru aplicații bazate pe canale.
Abordarea noastră pentru suportul aplicațiilor poate fi văzută ca o „platformă descentralizată de contracte inteligente”. În loc de o rețea centrală care să execute întreaga logică și să proceseze toate datele de la aplicație, Constellation coordonează datele aplicației prin „canale de stat”, care pot fi considerate ca o stație de televiziune ce difuzează toate datele din sistemul de stat. Fiecare canal de stat poate implementa propria logică de verificare, rezolvând problema oracolelor prin autentificarea transitară a producătorilor de date și verificarea transitară a sistemelor de stat compuse. Rețelele de canale de stat oferă suport paralel pentru aplicații, accelerând timpul de adoptare, care, în rețelele cu contracte inteligente, este limitat de consensul tradițional sincron.

Două canale de stat care sunt „compatibile” prin rețeaua $DAG. Ele pot interacționa sau fi interpretate, deoarece ambele sunt „integrate” cu $DAG prin desfășurarea de noduri hibride $DAG + Canal.
Motivul pentru care se numește Hylochain este că în abordarea noastră pentru suportul aplicațiilor am folosit modelul funcțional de programare Recursion Schemes pentru a crea o interfață MapReduce. În special, schemele de recursie Hylomorphism (Hylomorfism) și Metamorphism (Metamorfoză) pot fi integrate pentru a crea interogări verificabile și conexiuni de streaming prin canale standard, prin verificarea tipurilor de date algebrice la fel cum sunt verificate op-code-urile pentru contractele inteligente. Rezultatul final este o interfață funcțională MapReduce, cunoscută de inginerii de date și compatibilă cu tehnologia existentă de big data.

Hylomorphic și Metamorphic canale standard pentru contrast. În starea metamorphic, datele din două canale standard sunt trimise într-un bloc în metacanal. În Hilo, luăm starea anterioară a canalului și o folosim pentru a solicita (a pune o întrebare specifică) două alte canale, apoi păstrăm rezultatul interogării într-un bloc.
Tokenomica și legătura ei cu Hylochain
Odată ce canalul standard este creat, poate fi integrat în canalul $DAG, dar folosind interfața ACI sau Application Chain Interface. Această interfață este pur și simplu un obiect JSON cu informații despre configurație și o cheie publică asociată canalului propriu-zis. Motivul pentru care asociem cheia publică cu canalul standard este crearea unui mecanism de brokeraj pentru datele canalului standard. Odată ce canalul standard este desfășurat, dezvoltatorii decid cum se împart plățile din rețeaua $DAG între noduri și operatori.

Flux pentru achiziția de acces la informații sau modificarea informațiilor. Solicitarea este trimisă în $DAG, fondurile sunt trimise pe contul canalului, rezultatul este trimis cumpărătorului, iar suma de control a tranzacției este trimisă în rețeaua $DAG, care apoi deblochează fondurile pentru canalul standard.
Sursa: habr.com
