Ik weet het, ik weet het. Er zijn ontelbare cryptoprojecten, met een overvloed aan consensusmechanismen: op basis van arbeid en bezit, goud, olie, gebakken taarten (ja, zo eentje bestaat ook). Wat hebben we nog aan een andere? Dit zal ik voorstellen om te bespreken na het lezen van de 'verlichte' technische documentatie van het project *Constellation (). Natuurlijk, dit is geen volledige beschrijving van het algoritme, maar ik ben benieuwd naar de mening van de Habr-gemeenschap, of zo'n consensus waarde heeft of niet nodig is.
Er zijn niet veel letters meer, dus als je alleen maar wilt zeggen: 'bah, hoeveel kan er over crypto gesproken worden', doe dat alsjeblieft niet. Als je geïnteresseerd bent in nieuwe ontwikkelingen op het gebied van gedistribueerde systemen en je hebt iets te delen in de reacties, dan nodig ik je uit om verder te lezen.
P.S. Ik ben niet de auteur van de technologie en kan niet voor de volledige overdracht van de essentie instaan, dus ik waardeer commentaren met correcties als die er zijn.
De evolutie van synchrone consensus naar asynchrone
Knooppunten worden geselecteerd met behulp van een deterministisch proces (datzelfde dat in DHT wordt gebruikt, bijvoorbeeld bittorrent), dat dynamisch de taken van de knooppunten aanpast om de validatie te 'verlichten' of, om het eenvoudiger te zeggen, om consensus te bereiken. We kiezen groepen van 3 knooppunten en voeren consensusronden parallel uit, zodat één knooppunt facilitator kan zijn in meerdere blokken. Dit stelt ons in staat om transacties asynchroon te verwerken, wat in wezen betekent dat we tegelijkertijd meerdere blockchains aanmaken. Het proces lijkt op een web dat is gevormd door tal van draden, in tegenstelling tot knooppunten die in de loop van de tijd één keten vormen. Asynchrone of parallelle verwerking vormt de basis van schaalbaar programmeren, omdat het alle computerbronnen benut en de totale berekeningen versnelt. Dit netwerk wordt in de informatica een gericht acyclisch graf of DAG genoemd.

De bandbreedte van een lineaire blockchain vergeleken met het multiplicatieve effect van een DAG, waar we meerdere parallelle blockchains hebben.

Geometrische weergave van een lineaire blockchain versus een DAG. Zwarte stippen zijn blokken, witte stippen zijn knooppunten
We gebruiken 3 knooppunten in elke consensusronde, omdat dit ons enkele interessante wiskundige processen biedt om na te denken over de status, waarbij we een 'oppervlakvlak' over de gegevens vormen in de vorm van driehoeken met verbindingen. Vervolgens gebruikt het protocol de driehoeken om het optimale oppervlak te 'stitchen', dat geen overtollige of tegenstrijdige gegevens bevat en het minimaal mogelijke aantal driehoeken heeft. Algoritmisch is dit vergelijkbaar met een 'minimale snede' van een graaf, en wiskundig met een afgeleide of optimalisatiefunctie (waarvan de functie de kortste weg vindt die het kan oversteken over het oppervlak). Deze kortste weg is gelijk aan de optimale opslag van gegevens (transacties) in een groep databasetoegankelijkheid. Tegenstrijdige driehoekige 'tegels' zorgen ervoor dat het gebeurtenisoppervlak vlak en conflictvrij is.

Geometrische implementatie van detectie / verwerking van conflicten. Een conflicterend blok creëert een extra oppervlak tegel. We verwijderen de tegel van het extra oppervlak om een platte (= conflictvrije) gebeurtenisoppervlakte te behouden.
Consensus gebaseerd op reputatie
In een optimale gedecentraliseerde p2p reputatiesysteem moet elk knooppunt in staat zijn om zelfstandig zijn vertrouwen in andere knooppunten te bepalen. Ons systeem maakt gebruik van een speciaal model dat transitieve relaties of de relaties die een knooppunt heeft met andere knooppunten omvat bij het toekennen van een wereldwijde beoordeling. “Je bent zo goed als je bedrijf”. Het uiteindelijke resultaat is een “vervorming” of gradient, gebaseerd op transitief vertrouwen of reputatie in alle knooppunten in $DAG of de standaardkanaal. Dit kan worden beschouwd als een rasp of een kaasschaaf die het oppervlak van het 'oppervlakvlak' afschraapt en bepaalt welke “driehoekige tegels” moeten worden gewist en welke moeten blijven. Dit is hoe de logica van het conflict daadwerkelijk “driehoekige tegels” verwijdert.

DAG met een conflicterende tegel die door een “gebogen” ruimte gaat, die een gradient is die vergelijkbaar is met een kaasschaaf en van plan is om de conflicterende tegel te verwijderen of 'te wissen'.
Deeltijd/volledige schaalvergroting van het knooppunt
In netwerktheorie staat de optimale distributie vaak bekend als 'zonder opschalen', wat kan worden beschreven als een hiërarchische opstelling met grote centrale knooppunten die veel kleinere perifere knooppunten beheren. Deze distributie is zichtbaar in de natuur en, bovenal, op het internet. Constellation maakt gebruik van deze architectuur voor 'opschaling', of het verhogen van de bandbreedte of capaciteit van onze grafiek.

Het effect van hiërarchische verdeling. We kunnen meer knooppunten toevoegen en zo de bandbreedte vergroten.
Hylochain - Ondersteuning voor kanaal gebaseerde applicaties.
Onze benadering van applicatieondersteuning kan worden gezien als een 'gedecentraliseerd platform voor slimme contracten'. In plaats van dat een centraal netwerk alle logica uitvoert en alle gegevens van de applicatie verwerkt, coördineert Constellation de gegevens van de applicatie met 'standaardkanalen', die kunnen worden gezien als een televisiestation dat alle gegevens uit het standaard systeem uitzendt. Elk standaardkanaal kan zijn eigen logica voor validatie implementeren, waardoor het probleem van orakels kan worden opgelost door de authenticiteit van gegevensproducenten door middel van transversale controles van samenstellende standaard systemen te verifiëren. Netwerken van standaardkanalen bieden parallelle ondersteuning voor applicaties, waardoor de reactietijd wordt versneld, wat in netwerken met slimme contracten beperkt is door traditionele synchrone consensus.

Twee standaardkanalen die 'compatibel' zijn via het $DAG-netwerk. Ze kunnen interactie hebben of worden geïnterpreteerd, aangezien beide 'ingebed' zijn met $DAG door het implementeren van hybride knooppunten $DAG + Kanaal.
De reden waarom het Hylochain wordt genoemd, is dat we in onze benadering van applicatiesupport gebruik hebben gemaakt van een functioneel programmeermodel, Recursion Schemes, om een MapReduce-interface te creëren. In het bijzonder kunnen de Hylomorphism (Hylomorfisch) en Metamorphism (Metamorfiche) recursieschema's geïntegreerd worden om verifieerbare verzoeken en streamingverbindingen via de standaardkanalen te creëren door algebraïsche datatypes te controleren, net zoals opcodes voor slimme contracten worden gecontroleerd. Het eindresultaat is een functionele MapReduce-interface die bekend is bij data-engineers en compatibel is met de bestaande big data-technologie.

Hylomorphic en Metamorphic standaardkanalen voor contrast. In de metamorfose toestandsgegevens van twee standaardkanalen worden verzonden naar een blok in de meta-kanaal. In Hilo nemen we de vorige toestand van het kanaal en gebruiken deze om twee andere kanalen op te vragen (een specifieke vraag stellen), en vervolgens slaan we het resultaat van de aanvraag op in het blok.
Tokenomics en de connectie met Hylochain
Wanneer een standaardkanaal is aangemaakt, kan het in een $DAG-kanaal worden geïntegreerd, maar met behulp van de ACI of Application Chain Interface. Deze interface is gewoon een JSON-object met configuratie-informatie en een openbare sleutel die aan het kanaal is gekoppeld. De reden dat we de openbare sleutel aan het standaardkanaal koppelen, is om een brokermechanisme voor data van het standaardkanaal te creëren. Wanneer het standaardkanaal is uitgerold, stellen ontwikkelaars zelf in hoe betalingen uit netwerken van $DAG worden verdeeld tussen knooppunten en operators.

Stroom voor de aankoop van toegang tot informatie of wijziging van informatie. Een verzoek wordt naar $DAG gestuurd, middelen worden naar de rekening van het kanaal gestuurd, het resultaat wordt naar de koper gestuurd, en de transactiesom wordt naar het $DAG-netwerk gestuurd, dat vervolgens de middelen voor het standaardkanaal ontgrendelt.
Bron: habr.com
