LIVRE BLANC BLOCK COLLIDER - block collider team created: February 11, 2017 revised: January 17, 2018
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
LIVRE BLANC BLOCK COLLIDER block collider team created: February 11, 2017 revised: January 17, 2018 v0.9.9
SOMMAIRE 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Implications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Cas d'utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Mécanique des chaînes multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 Chaînes de tissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Conflits des chaînes multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Le minage sur Collider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1 Approche consensuelle : "Preuve de la distance" . . . . . . . . . . . . . . . . 10 3.2 Le défi du calcul de la distance de montage . . . . . . . . . . . . . . . . . . . . 13 3.3 NRG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4 Le minage de transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Dynamique des transactions à chaînes multiples . . . . . . . . . . . . . . . . . . . . 17 4.1 Notions de base sur les transactions . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Jetons marqués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Promesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.4 Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Innovations instrumentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.1 Routiers en bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.2 Le protocole FIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.3 Routage optimisé des blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6 Regard vers l'avenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.1 Considérations protocolaires pour le développement . . . . . . . . . . . . . . . . 25 6.2 Vision et orientation future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Références 27 2
1 introduction 3 "Écrire des programmes qui ne font qu'une chose et qui le font bien. Écrire des programmes pour travailler ensemble." — Doug McIlroy, l'inventeur de tuyaux Unix[14] 1 Introduction La multi-chaîne Block Collider est un grand livre distribué à grande vitesse construit sur des ensembles de blocs provenant d'autres chaînes de blocs, intégrant ces chaînes ensemble et permettant de nombreuses caractéristiques inter-chaînes. La multi-chaîne supporte les mises à jour d'équilibre de latence ultra-faible avec le Financial Information eXchange (FIX) protocol et innove sur la réduction du travail et des incitations pour la vitesse du réseau des mineurs, de sorte que la multi-chaîne résultante repousse la frontière de la vitesse et du débit des chaînes de blocs. La multi-chaîne Block Collider est créée en collaboration exclusivement par des mineurs décentralisés de pair à pair - sans points d'échec, des oracles ou des validateurs. 1.1 Motivation Les cryptocurrences sont des "jardins murés" qui ne peuvent pas réutiliser, déclencher ou exécuter des transactions avec d'autres chaînes de blocs. Si Alice veut exécuter le contrat intelligent de Bob, elle ne peut envoyer de la crypto monnaie qu'à partir de la chaîne de blocs sur laquelle Bob a déployé le contrat intelligent. Ce manque de coopération étouffe l'innovation et entrave considérablement l'utilisation pratique. Les temps de blocage et les frais rendent de nombreuses chaînes de blocage mal adaptées aux gros volumes de transactions ou à la négociation. Les chaînes latérales érigées pour alléger la pression centralisent le réseau et sont entre les mains de quelques coopératives de minage ou startups, isolés des avancées paradigmatiques de la conception décentralisée, et à la merci des structures de pouvoir qui exigent une confiance injustifiée. ©2018 Block Collider Freedom through Cryptography
1 introduction 4 Ponter des chaînes avec une chaîne multiple, c'est comme construire des routes entre les bâtiments. Hypothétiquement, on pourrait construire un bâtiment qui a tout, mais dans la pratique, certains bâtiments sont construits pour y travailler, d'autres pour y vivre - tant que les citoyens veulent être dans plusieurs bâtiments à différents moments, les routes ont de la valeur. La communauté crypto telle qu'elle existe démontre une grande variété de caractéristiques à travers les chaînes de blocs - certaines chaînes ont des temps de blocages rapides, certaines chaînes ont des contrats intelligents expressifs, d'autres sont purement déflationnistes et constituent une excellente réserve de valeur. Tant que les utilisateurs ont besoin de fonctionnalités de plus d'une chaîne de blocs, il est nécessaire de relier ces chaînes avec une chaîne multiple. C'est pourquoi la philosophie de conception d'Unix recommande que chaque programme fasse une chose bien[14], et que le système d'exploitation rende le raccordement de ces excellentes pièces modulaires simple et efficace (par exemple, par l'intermédiaire de tuyaux). La multi-chaîne Block Collider permet d'appliquer cette philosophie aux chaînes de blocs en offrant la possibilité d'une communication et d'une coopération entre les chaînes. 1.2 Implications Avec l'adoption de la technologie multi-chaînes de Block Collider : • Les transactions et les contrats intelligents peuvent être initiés ou exécutés par des contrats intelligents sur d'autres chaînes de blocs. • les transactions sécurisées peuvent être pontées entre des chaînes de blocs sans "témoins", "nœuds de confiance" ou centralisation de quelque nature que ce soit. • Les transactions entre chaînes peuvent être accélérées au-delà de la vitesse de l'une ou l'autre chaîne pontée. • Les contrats intelligents peuvent être garantis pour s'exécuter automatiquement. ©2018 Block Collider Freedom through Cryptography
1 introduction 5 • Les développeurs d'applications distribuées peuvent combiner de manière modulaire les caractéristiques exotiques des chaînes de blocs à travers l'écosystème. • Les développeurs d'applications distribuées peuvent intégrer la capacité d'équilibrage de charge entre les chaînes. Toutes ces caractéristiques peuvent se produire sans modification du code de l'une ou l'autre des chaînes pontées - le système est conçu pour être compatible avec l'écosystème existant. De plus, avec ses temps de blocages rapides, et avec la déduplication drastique du travail que son architecture fournit, la chaîne Block Collider constitue une plate-forme exceptionnelle sur laquelle construire des systèmes véritablement décentralisés. 1.3 Cas d'utilisations La technologie à chaînes multiples est une étape cruciale pour l'écosystème des cryptomonnaies. Voici quelques exemples de cas d'utilisation clés que la technologie multi-chaînes Block Collider permet. Echanges décentralisés Les bourses sont actuellement un goulot d'étranglement primaire dans l'industrie de la cryptographie. Le fait d'être inscrit à la cote d'une bourse est l'un des principaux facteurs qui influent sur les prix des actifs cryptographiques, et les questions techniques liées aux bourses ont un impact négatif sur l'ensemble de l'industrie. La multichaîne de Block Collider permettrait d'effectuer des échanges entre cryptocurrencies sans aucun point central de défaillance, ce qui permet d'appliquer les caractéristiques de robustesse inhérentes aux réseaux des blockchains à cette fonction cruciale de l'industrie. Couvertures contractuelles intelligentes inter-chaînes La protection contre le piratage est une préoccupation majeure pour de nombreux participants aux marchés du crypto, car les failles de sécurité ont causé d'importantes pertes de capital. Étant donné que les chaînes multiples de Block Collider peuvent déclencher une action sur une chaîne lorsqu'un événement est déclenché par un autre, un cas d'utilisation potentiel est de fournir des couvertures de contrat intelligentes. En d'autres termes, lorsqu'un compte d'une chaîne de blocs (dont on sait qu'il n'est accessible à personne d'autre que le fournisseur de couverture) est vidé, un compte d'une autre chaîne de blocs est crédité du montant perdu. Ainsi, les tiers peuvent se prémunir contre les risques de sécurité de manière cryptographique.
2 multichain mechanics 6 Exécution Automatique et Garantie d'un Contrat Intelligent (AGSCE). Actuellement, les contrats intelligents nécessitent un événement déclencheur pour s'exécuter. Certains services centralisés existent pour programmer les déclencheurs, comme le réveil Ethereum[4]. La multichaîne de Block Collider intègre une garantie d'exécution future du contrat dans la chaîne, de sorte qu'aucun service centralisé ou tiers n'est requis pour cette caractéristique essentielle. 2 Mécanique des chaînes multiples 2.1 Chaînes de tissage La poussée architecturale clé derrière la technologie multichaînes de Block Collider est l'encapsulation de l'état actuel de chacune des chaînes pontées dans la multichaînes Block Collider. C'est-à-dire qu'à tout moment t, le bloc le plus courant du Block Collider en cours d'exploitation (ou qui vient d'être exploité) fait référence au bloc le plus récent de chacune des chaînes supportées (ou "pontées"). Arrière-plan : Chaînes de blocs standard Dans les chaînes de blocs communs (y compris Bitcoin, Ethereum et la plupart des autres), une séquence de blocs est enchaînée pour éviter les doubles dépenses et les crédits/débits de valeur non autorisés. Chaque bloc est une combinaison des données de transaction racine de Merkle, d'une racine d'état dans certaines chaînes, du hachage de l'en-tête et d'une référence au hachage de l'en-tête d'un bloc précédent. Le bloc lui-même peut être référencé de façon unique par son hachage d'en-tête, donc ce hachage est utilisé comme clé de mise en cache ou clé de requête. BTC Block Hash #0: 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f BTC Block Hash #1: 00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048 ©2018 Block Collider Freedom through Cryptography
2 multichain mechanics 7 Chacun de ces hashes forme une séquence d'en-têtes de blocs, le bloc validé le plus récent de la chaîne étant le plus grand "numéro de bloc" et la tête de la chaîne. Au moment de la rédaction de ce document, selon CoinMarketCap, il y a 609 chaînes de blocs qui mine, chacune émettant ces hashes à des vitesses variables à travers un réseau de milliers de machines[8]. "Base Tuples" : Unifier les derniers blocs sur chaque chaîne pontée. Dans la chaîne Block Collider, chaque bloc fait référence au bloc de tête de chacune des chaînes pontées - ce n-uplet est appelé "n-uplet de base" du bloc. Plus précisément, le n-uplet de base d'un bloc Collider peut faire référence à n'importe quel bloc valide récent sur une chaîne pontée dont le parent a été référencé dans le n-uplet de base d'un bloc Collider précédent. Ceci permet à la chaîne Collider de servir de chaîne unificatrice pour toutes les chaînes pontées. En raison de la nature combinatoire des tuples de base. la chaîne de bloc collisionneur de blocs est toujours plus rapide que la chaîne de blocs pontée la plus rapide. Par exemple, puisqu'il y a actuellement un nouveau bloc Ethereum toutes les 30 secondes[9] et un nouveau bloc Bitcoin toutes les 9,2 minutes[7], un Block Collider multichaîne de ces deux chaînes aurait un nouveau bloc pour chaque nouvelle combinaison de blocs, soit environ toutes les 28 secondes. Considérons l'exemple suivant (pas à l'échelle) : Notez que dans cet exemple, Ethereum Block 4 est réutilisé une seule fois - la réutilisation des blocs dans les tuples de base est un phénomène courant, ce qui permet de s'en assurer : Block Collider block(BTC block 1, ETH block 4) < Block Collider block(BTC block 2, ETH block 4) Dans l'exemple ci-dessus, la chaîne de blocs d'Ethereum au bloc 4 de l'ETH est une instance de Block Collider qui est la chaîne la plus rapide. Ce concept devient plus clair lorsque nous ajoutons une troisième chaîne de blocs dans le mélange. Dans l'exemple suivant, pour deux blocs d'Ethereum, un bloc WAVES est émis pour chaque deux blocs d'Ethereum : ©2018 Block Collider Freedom through Cryptography
2 multichain mechanics 8 BTC block ETH block WAVES block Block Collider block BTC block 1 ETH block 1 WAVES block 1 BC block 1 ... ETH block 2 ... BC block 2 ... ... WAVES block 2 BC block 3 ... ETH block 3 ... BC block 4 ... ETH block 4 ... BC block 5 ... ... WAVES block 3 BC block 6 BTC block 2 ... ... BC block 7 ... ETH block 5 ... BC block 8 ... ETH block 6 ... BC block 9 N'oubliez pas que ces tableaux représentent la même période de temps écoulé. Notez l'augmentation du taux d'émission de blocs de la chaîne Block Collider, en ce sens que le nombre total de blocs est passé de 7 dans le premier exemple à 9 dans le deuxième exemple. L'ajout d'une autre chaîne de blocs (dans ce cas Waves) augmente le nombre de combinaisons dans Block Collider. Vitesse du bloc Puisque le Bloc collisionneur multichaîne émet un nouveau bloc chaque fois qu'une chaîne pontée émet un nouveau bloc, le nombre de nouveaux blocs Bloc collisionneur est la somme du nombre de nouveaux blocs dans toutes les chaînes pontés. Cela signifie que la vitesse du bloc (c'est-à-dire le nombre de blocs minés dans un intervalle donné, V) de la multichaîne Block Collider est approximativement la somme de la vitesse du bloc de chacune des chaînes supportées (modulo le temps qu'il faut pour que les nouveaux blocs de chaînes pontées se heurtent dans la multichaîne Collider). Puisque l'intervalle de blocs (le temps entre les blocs, T) est l'inverse de la vitesse (T = 1), cela se traduit par une relation harmonique entre la multichaîne Block Collider et ses chaînes pontées. C'est- à-dire, pour chaque chaîne de blocs pontés i de la multichaîne Block Collider : ©2018 Block Collider Freedom through Cryptography
2 multichain mechanics 9 X VBC ≈ Vi i 1 X 1 ≈ TBC Ti i En ajustant le seuil de difficulté du calcul pour extraire un bloc, la complexité de calcul de chaînes supplémentaires peut être contrôlée pour maintenir une latence faible avec un hashrate équivalent, même si la vitesse augmente nécessairement. Dans l'exemple précédent, les mineurs de la première itération de la formation Block Collider, "BTC + ETH", recherchent des "paires de bases" tandis que dans la seconde, ils recherchent des "triples de base" pour "BTC + ETH + WAVES" et ainsi de suite. De cette façon, le Collider multi-chaînes tire parti de la variance des chaînes pontées pour créer une chaîne de blocs unique se déplaçant rapidement tout en soutenant les opérations d'émission inter-blocs de confiance qui sont particulièrement utiles pour les transactions ou opérations d'actifs à grande vitesse. En raison de la variabilité de la découverte de blocs sur toutes les chaînes de blocs, où Ethereum par exemple varie de 6 secondes à 2 minutes et Bitcoin varie généralement de 5 à 15 minutes, il sera impossible pour les mineurs d'essayer d'anticiper les combinaisons qui font que la séquence de blocs de blocs de blocs de collision favorise une chaîne. Cela augmente considérablement la difficulté de calcul des attaques de contrecarrer les attaques à chaînes multiples qui impliquent le déplacement de la puissance minière sur le Block Collider. La réduction de la durée du bloc a des conséquences sur les taux d'obsolescence et les incitations à la centralisation. Pour lutter contre ces problèmes, Block Collider sépare l'exploitation des blocs de l'exploitation des transactions minières. Ce concept sera abordé dans la prochaine section. 2.2 Conflits des multi-chaînes Parce que chaque bloc sur le Collider fait référence à des blocs sur des chaînes supportées, lorsqu'il y a désaccord sur une chaîne supportée quant à savoir quel bloc est la tête, les mineurs de Block Collider hériteront d'une partie de ce conflit. Une stratégie à chaînes multiples serait de laisser ces conflits passer à travers le collisionneur, laissant la chaîne du collisionneur se diviser et se résoudre comme n'importe laquelle de ses chaînes se divise et se résout. Cependant, cela créerait un plancher très élevé sur le taux d'usure du Collider, induirait des incitations discontinues pour les mineurs en bloc, et créerait des problèmes supplémentaires pour s'assurer que la scission se résout. Au lieu de cela, le Collider permet d'inclure dans un tuple de base tout bloc valide récent (y compris les orphelins et les oncles) dont le parent a déjà été référencé dans un tuple de base. "Recency" tel qu'utilisé ©2018 Block Collider Freedom through Cryptography
3 mining on the collider 10 ici signifie que la profondeur du bloc n'est pas sensiblement inférieure au bloc de profondeur le plus élevé qui a été observé sur cette chaîne, le seuil de recency variant pour chaque chaîne pontée (et déterminé par la stratégie oncle/orphelin de chaque chaîne). Aux fins du calcul de la vitesse de la chaîne Collider résultante, cette permissivité orpheline augmente la vitesse effective du bloc des chaînes pontées d'un facteur déterminé par le taux d'orphelins de cette chaîne. Prenons l'exemple suivant : une chaîne multiple BC est construite sur des chaînes BTC et ETH, et dans chaque bloc ETH à nombre pair, il y a un désaccord sur la profondeur-1. Notons qu'un bloc devient orphelin, par exemple " 2 ", et notons que les désaccords de profondeur-1 impliquent que chaque bloc a un parent non orphelin ; alors nous pouvons observer ce qui suit : Notez que le bloc ETH orphelin ou non orphelin peut apparaître en premier dans la chaîne BC, car on ne sait pas lequel est lequel jusqu'à ce que le fractionnement soit résolu. Notez aussi qu'il y a un "backtracking" limité autorisé, mais que pour de faibles taux d'usure, un tel backtracking est très localisé. Enfin, notez l'augmentation effective de la vitesse du bloc BC ; puisque l'ETH dans cet exemple a un taux de 1 , sa vitesse effective est augmentée de 3 (1 − 13 )−1 = 1.5, ou une augmentation de 50% . 3 Le minage sur collider 3.1 Approche consensuelle: "Preuve de Distance" Block Collider utilise une version modifiée du consensus de Nakamoto pour déterminer le prochain bloc de tête, c'est-à-dire, au cœur du bloc : Les nœuds considèrent toujours la chaîne la plus longue comme étant la bonne et continueront à travailler pour l'étendre. Si deux nœuds diffusent simultanément des versions différentes du bloc suivant, ©2018 Block Collider Freedom through Cryptography
3 mining on the collider 11 certains nœuds peuvent recevoir l'un ou l'autre en premier. Dans ce cas, ils travaillent sur le premier qu'ils ont reçu, mais sauvent l'autre branche au cas où elle deviendrait plus longue. Le lien sera rompu lorsque la prochaine preuve de travail sera trouvée et qu'une branche deviendra plus longue ; les nœuds qui travaillaient sur l'autre branche passeront ensuite à la branche la plus longue. [15] Block Collider modifie cela en introduisant un nouvel algorithme pour le défi informatique nécessaire à l'exploitation d'un nouveau bloc, qui est basé sur la distance d'édition des chaînes de caractères et qui est décrit plus loin dans cette section. Ce défi généralise l'idée de filtrer les hashes en dessous d'un certain seuil dans l'idée de filtrer les hashes à une certaine distance d'un ensemble de référence - d'où "Preuve de Distance". Un bloc Bloc Collisionneur de blocs, comme les autres blocs, inclut des transactions et des références à des blocs précédents et des preuves sous la forme d'autres en-têtes de blocs de blocs afin de valider le travail effectué sur chaque bloc. Cependant, contrairement à d'autres chaînes de blocs, les blocs Block Collider n'ont pas un nombre fixe de transactions. Au lieu de cela, chaque bloc a un "solde de distance" que la somme des distances de transaction du bloc doit rester en dessous, ce qui est basé sur le nombre d'emblèmes que le mineur de bloc possède. Bonus de taille de bloc d'emblème (EBSB) Les emblèmes sont les macro-actifs cryptographiques émis par Block Collider. Les mineurs de blocs se voient accorder un bonus de taille de bloc basé sur le nombre d'emblèmes qu'ils détiennent, en permettant un espace supplémentaire pour les transactions dans un bloc, ce qui à son tour augmente les frais de transaction qu'ils peuvent collecter. Par analogie, imaginez un chariot minier - plus le mineur de bloc peut charger dans le chariot, plus son paiement pourrait être important si on trouve de l'or. Les emblèmes permettent aux mineurs de blocs d'avoir des chariots plus grands. En comparaison, les blocs Bitcoin et Ethereum ne peuvent accepter qu'un certain nombre de transactions en raison de leur taille ou de leurs limites de gaz. Alors qu'une certaine limite est nécessaire pour éviter la congestion du réseau à partir de blocs énormes, des limites fixes arbitraires sont clairement une réponse sous-optimale. La taille variable des blocs permet un alignement incitatif supplémentaire, ce qui permet aux mineurs plus investis dans le réseau (littéralement) de produire plus à partir de leur travail. De plus, la taille fixe des blocs force les transactions à être classées uniquement en fonction des frais, alors que le mécanisme Block Collider permet des canaux latéraux plus flexibles pour influencer la priorité par le biais de la "distance de transaction" de la transaction. Avec le Block Collider multichaîne, chaque bloc est plafonné par une somme maximale de "distances de transaction" (expliquées plus en détail plus loin dans cette section) contenue dans chaque transaction. Cela signifie que si la distance totale maximale pour le bloc est de 5, alors le mineur serait en mesure d'accepter 10 transactions de distance 0,5 (0,5 - 10 = 5). Ainsi, les transactions avec des distances plus faibles ont une plus grande chance d'entrer dans un bloc avec des frais minimaux, de sorte qu'un utilisateur peut pré-miner la distance et augmenter la probabilité d'inclusion
3 mining on the collider 12 dans un bloc même avec des frais moins élevés. Dans le cas contraire, une transaction peut inclure l'absence de travail et des frais importants qui incitent le mineur à affecter une partie de son énergie minière à l'ajout de la transaction. Que l'utilisateur pré-mine ou non sa transaction, les emblèmes augmentent la distance maximale du mineur de bloc qui peut être incluse, par exemple de 10 à 12 dans la figure suivante : Les emblèmes n'augmentent pas la probabilité que le mineur trouve le bloc suivant ; le même score de distance doit être trouvé quel que soit le nombre de transactions acceptées dans le bloc. De plus, la prime à l'emblème est sublinéaire (c'est-à-dire qu'il y a des rendements décroissants pour la propriété de l'emblème), ce qui équilibre l'incitation économique et la centralisation (puisque l'utilité marginale des emblèmes sera la plus élevée pour ceux qui ont moins d'emblèmes). Seuil de difficulté dynamique Parce que l'intervalle de bloc du Block Collider multichaîne dépend de l'intervalle de bloc de ses chaînes pontées, garantir un intervalle de bloc est infaisable. Il y a plutôt des délais cibles pour chacune des six fourchettes prévues, soit 5,5 secondes, 3,5 secondes, 3,5 secondes, 1,5 seconde et 0,5 seconde. C'est-à-dire qu'au début, la multichaîne Collider est ciblée pour libérer un nouveau bloc avec un retard d'environ 5,5 secondes par rapport au bloc le plus récent de toutes les chaînes de blocs pontées. Le seuil de difficulté de défi est ajusté dynamiquement pour s'adapter à ces fenêtres cibles. Si une solution n'a pas été trouvée lorsqu'un nouveau bloc supplémentaire provenant de la même chaîne pontée est observé, il y a une diminution temporaire du seuil, ce qui permet aux mineurs du Collider de rattraper rapidement les blocs émis à un rythme plus rapide que prévu. En plus de fournir un ajustement pour des taux de blocs exceptionnels sur une chaîne pontée, cela lisse également les situations où la distance de montage est particulièrement difficile à trouver (par exemple, par analogie géométrique, lorsque les distances entre les hachages des chaînes pontées sont distales). ©2018 Block Collider Freedom through Cryptography
3 mining on the collider 13 3.2 Le défi du calcul de la distance de montage Le "minage" du Collider multichaîne est le défi informatique de finding un hash que satisfies une distance minimale d'édition entre les hashes des chaînes membres, ses transactions, et son bloc précédent. Block Collider utilise l'algorithme Cosine Similarity[17] pour évaluer la similarité entre deux hashes. Les approches traditionnelles basées sur le hachage peuvent être considérées comme trouvant un seuil sur la distance entre le hachage découvert et le point de référence arbitraire de "zéro" - c'est-à-dire que tout hachage à une certaine distance D de zéro est également inférieur à un certain seuil de hachage (également D). Edit distance étend cette notion implicite de distance en espace multidimensionnel. Étant donné que la distance d'édition et les défis plus traditionnels de la preuve du travail partagent ce noyau fondamental, les deux approches peuvent facilement ajuster la difficulté de calcul en déplaçant leur seuil de distance. Pour répondre au défi informatique de Block Collider pour l'exploitation de blocs miniers, un mineur de blocs doit continuer à choisir au hasard des nonces et à calculer : hash_attempt := hash(miner_public_key + nonce) La contestation peut prendre fin lorsque le résultat est satisfaisant (dans le cas des deux chaînes) : RO(hash_attempt, BTC block hash) < D && RO(hash_attempt, ETH block hash) < D ou, de façon équivalente : max(RO(hash_attempt, BTC block hash), RO(hash_attempt, ETH block hash)) < D Une fois qu'un mineur de bloc trouve un nonce dont le hash résultant satisfait au seuil de contrainte, il propa-gate sa solution au réseau pour gagner la récompense de bloc, qui inclut une partie des frais ©2018 Block Collider Freedom through Cryptography
3 mining on the collider 14 alloués dans les transactions soumises à ce bloc. Chaque bloc du bloc Collisionneur de blocs contient des références au bloc précédent et les états d'en-tête de toutes les chaînes de blocs pertinentes utilisées dans sa construction. Edit Distance Traditional PoW Distance measured from reference points measured from zero "multivariate" "univariate" threshold easily adjusted threshold easily adjusted Distance de traitement dans l'exploitation minière de blocs : Exemple Imaginez un Collisionneur multichaîne à trois blocs. Nous commencerions alors avec trois chaînes de caractères, chacune d'entre elles envoyant le hachage de l'en-tête d'un bloc d'un autre bloc de la chaîne de blocs : BTC: 0000000000000000006abfe31e59af9f81b3fc84a1a25a8fdc095e429dc6dffa ETH: 0x73413ff99013f6007b72e299aee87da63311602ae4dfb1466b254b7c89b8e1bd NEO: 0b58e3e1980eb79c293ee1d047997c5a7092da8d49813c2407e90f85e0ba1f9e Imaginez que le seuil actuel sur ce Collider multichaîne est de 0,29. Pour extraire un nouveau bloc dans la chaîne de blocs racine, le mineur de bloc itérerait à travers un jeu de caractères ou un nombre aléatoire, hachant des chaînes de caractères jusqu'à ce qu'il trouve un hachage inférieur à 0,29 pour tous les blocs. Avec un seul travailleur Web sur un processeur Intel Core i7, un mineur prototype a trouvé la solution suivante en 32,6 secondes : Solution: c53a147e80b2ae87c50d62dfdc82501d0405c9734d0daf6197918f182ca6c7f5 Modifier la distance dans l'exploitation minière des transactions Dans le cas du forage transactionnel, un mineur transactionnel doit d'abord calculer les données de transaction, puis essayer des nonces aléatoires successifs : hash_target := hash(transaction_data) hash_attempt := hash(miner_public_key + nonce) La distance d'édition de transaction est alors la distance entre le hash_attempt (basé sur le travail du mineur) et le hash_target transaction ID (TXID) : tx_dist := RO(hash_attempt, hash_target) * byte_size(transaction_data) ©2018 Block Collider Freedom through Cryptography
3 mining on the collider 15 Chaque bloc ne peut inclure qu'une certaine somme de distances de transaction (tx_dist), déterminée par le nombre d'emblèmes auxquels le mineur de bloc a accès. Un mineur de transaction peut continuer à exploiter une transaction pour une distance inférieure, pour une plus grande chance d'être inclus dans un bloc, ou peut simplement diffuser sa solution et attendre l'inclusion. Les implications de la séparation de l'exploitation minière par transaction et de l'exploitation de blocs miniers sont abordées dans la section précédente. Avantages de la distance de montage D'un point de vue intuitif, la prise d'un hachage de données transforme les données en un type d'espace irrémédiablement différent - c'est l'intention des hachages, qui sont aussi connus sous le nom de "fonctions de trappe" . Puisque la chaîne Collider génère son propre hash, qui fait référence à d'autres hashes, pour des raisons de simplicité, aucun espace supplémentaire n'a besoin d'être defined, et toutes les opérations peuvent avoir lieu entre les hashe s sans entrer dans les trappes. Cet engagement envers l'élégance permet d'intéressantes interprétations géométriques de l'espace de hachage, puisque Cosine Similarity est symétrique et est une métrique bien formée. De plus, en tant que sous-produit du calcul d'une distance d'édition, l'algorithme génère une description de la façon d'éditer une chaîne pour la transformer en une autre, de sorte que la validation de la distance d'édition est plus simple à calculer que le calcul. Cette asymétrie vient s'ajouter à l'asymétrie déjà présente dans les points de devinette dans l'espace de hachage pour en trouver un à une distance appropriée, ce qui est la caractéristique clé des défis de calcul. Enfin, alors que de nombreux algorithmes de hachage sont intentionnellement conçus pour être coûteux en calcul sans autre but, la distance d'édition est en fait un problème utile à résoudre. Si l'on trouve des optimisations pour les boucles internes de défis informatiques artificiels, aucun grand progrès n'a été réalisé. En plaçant un problème réel et utile au cœur du défi informatique de Block Collider, tout travail d'optimisation des solutions qui en résulte profite également au reste de la communauté informatique sous la forme de meilleurs algorithmes de base. Edit Distance computational challenge grants... 1. Extension naturelle multidimensionnelle et géométrique de la minimisation d'un hachage. 2. Asymétrie accrue dans l'exploitation minière par rapport à la validation 3. Algorithme altruistiquement significatif pour l'optimisation ©2018 Block Collider Freedom through Cryptography
3 mining on the collider 16 3.3 NRG NRG (Non-Relational Graphs) est la devise de la chaîne exploitée sur le Block Collider. Il s'agit de la rémunération principale utilisée pour effectuer des transactions et attribuer des mineurs, similaire à "Gas" sur Ethereum, sauf qu'elle est divisée en son propre jeton. Comme Emblems, NRG dispose d'un approvisionnement fixe ; le total disponible est d'environ 9,8 milliards de NRG. Contrairement aux emblèmes, le NRG peut être miné. Les avantages de l'exploitation minière NRG diminuent avec le temps, de sorte que l'exploitation minière peut se poursuivre à l'infini sur son approvisionnement fixe. 3.4 Exploitation minière Pour extraire des transactions, un mineur de transactions doit d'abord évaluer tout calcul requis pour la transaction. Un mineur de transaction trouve alors un nonce qui, combiné avec la clé publique du mineur de transaction, se trouve à une certaine distance du hachage des données de transaction (expliqué plus en détail dans la section ci-dessus sur "Le défi du calcul de la distance d'édition"). Un mineur de transaction peut continuer à exploiter une transaction pour une distance inférieure, pour une plus grande chance d'être inclus bientôt dans un bloc, ou peut simplement diffuser sa solution et attendre l'inclusion. Ainsi, le mineur de transaction doit être au courant des taux en vigueur sur le marché pour l'inclusion des transactions afin de maximiser les frais recueillis. Block Mining Transaction Mining One winner per block Many winners per block Contributes to network security Contributes to network throughput Fees in NRG Fees in NRG Based on an edit distance challenge Based on an edit distance challenge Tilts to network speed and hashing power Tilts to network speed and performant databases Si un mineur de transaction a des intérêts non rémunérés dans une transaction (par exemple, si le mineur de transaction est l'une des parties à la transaction, ou si le mineur de transaction a été payé dans un canal latéral), le mineur de transaction peut continuer à exploiter une distance de transaction pour être encore plus faible, de sorte que les honoraires payés dans la chaîne Collider peuvent être remplacés par une puissance de calcul. Ce mécanisme simple d'incitations hors bande permet à un nouveau type de fournisseur de services cryptographiques, qui peut utiliser la puissance de calcul pour s'assurer que les transactions sont affichées, parce que les transactions avec de plus petites distances de transaction sont plus susceptibles d'entrer dans un bloc même sans frais élevés. ©2018 Block Collider Freedom through Cryptography
4 multichain transaction dynamics 17 Deuxièmement, un autre fournisseur de services est activé, car certaines transactions passent à travers les mailles du filet et ne sont pas exploitées. Les petits mineurs, qui n'ont peut-être pas le matériel nécessaire pour travailler de façon rentable sur des blocs, peuvent participer au réseau en écoutant les transactions autrement manquées (probablement de la part de clients lite-clients), en les exploitant et en diffusant par la suite la transaction à tous leurs pairs pour réclamer une partie des frais inclus dans la transaction. Avantages de la séparation de l'extraction des transactions de l'extraction des blocs miniers Alors que d'autres chaînes explorent la stratégie d'inclure le travail des oncles (blocs en compétition avec un bloc récent dans la chaîne) pour obtenir certains avantages des blocs périmés[11][18][13][13], Block Collider gagne des avantages similaires en séparant l'extraction de transactions de l'extraction de blocs. Tandis que les mineurs de bloc se disputent les biens immobiliers plus rares de gagner le bloc suivant, les mineurs de transaction com-pete dans un espace beaucoup moins encombré avec moins de chance de conflit, ce qui diminue la quantité de travail de réplication entre eux. Ainsi, bien que Block Collider ne se plie pas dans le travail à partir de blocs périmés, la quantité de travail de calcul perdu à partir de blocs périmés est considérablement réduite par rapport à d'autres chaînes. Separate Transaction Mining means... 1. Reduced duplication of work, leading to increased efficiency 2. Increased barrier to network centralization 3. Opportunity for miner specialization, leading to increased efficiency D'un point de vue économique, on peut considérer cette séparation comme la scission d'une industrie verticalement intégrée - en permettant la concurrence dans deux espaces, le risque de centralisation est réduit, puisqu'un acteur devrait gagner le jeu de la centralisation aux deux niveaux. D'autant plus que l'exploration de transactions et l'exploration de blocs ont des exigences fondamentales très différentes (en mémoire, en type informatique et en architecture), la division de ces fonctions permet une plus grande efficacité grâce à la spécialisation. 4 Dynamique des transactions à chaînes multiples Au cours de l'année écoulée, plusieurs tentatives ont été faites pour créer un "marché décentralisé", comme Token from Coinbase[5], Swap[6], ShapeShift[1] et 0x[19]. ©2018 Block Collider Freedom through Cryptography
4 multichain transaction dynamics 18 Bien que bien intentionnés et non dépourvus de nouvelles fonctionnalités pour le trading, ils sont sévèrement limités en raison de leur dépendance à Ethereum, et donc de la vitesse du bloc d'Ethereum. Actuellement, l'expérience exige qu'un utilisateur attende le prochain bloc d'Ethereum pour récupérer sa soumission de l'intention de négocier, puis au moins un autre bloc pour que la partie adverse accepte cette intention et achève le commerce. Si chaque bloc d'Ethereum prend 30 secondes, ce processus peut prendre quelques minutes. Cela suppose également le cas peu probable que les transactions de l'une ou l'autre partie soient ramassées par les mineurs dans le bloc qui suit immédiatement leur transaction. D'autre part, jusqu'à présent, toutes les solutions qui n'ont pas été construites sur la chaîne Ethereum ont été centralisées. Avec les fondations décrites dans les sections précédentes en place, le Block Collider multichaînes peut accueillir des transactions multichaînes beaucoup plus rapidement et de manière véritablement décentralisée. Les services qui utilisent le Block Collider seront en mesure de servir les carnets de commandes avec des mises à jour beaucoup plus rapides, bien plus rapides que la fréquence de génération de blocs d'une chaîne de blocs pontée. Ils pourront également faciliter les transactions croisées au lieu des "token swaps", qui sont pour l'instant entièrement sur la chaîne de blocs d'Ethereum ou effectués sur des bourses centralisées. 4.1 Notions de base sur les transactions Les transactions pour le Collider sont stockées sur une table de hachage distribuée (DHT), que les mineurs utilisent pour synchroniser avec d'autres nœuds et valider le travail. On s'attend à ce que les nœuds se synchronisent uniquement avec ce tableau pour éviter l'utilisation de filtres de blooms qui retardent les chaînes de blocage en raison de leur incapacité à référencer des plages partielles. La méthode de stockage proposée est très similaire à IPFS[10], en ce sens qu'un client peut stocker localement tout ou partie de la chaîne. Puisque la multichaîne Block Collider se synchronise avec de nombreuses chaînes de blocs, elle conserve ou a accès à l'état de chaque chaîne temporairement. Ceci permet au Collisionneur de configurer des transactions qui s'exécutent lorsqu'un événement particulier se produit sur l'une des chaînes pontées. Les rovers de blocs (processus qui découvrent et distribuent des blocs, discutés dans la section suivante) sont l'outil idéal pour la diffusion de transactions destinées à être exécutées sur chaque chaîne de blocs membre. Les mineurs exploitant ces blocs de rovers signeront la soumission de la transaction qui valide leur droit à la redevance. Comme le réseau s'étend, nous nous attendons à ce qu'il soit économique pour les rovers et les mineurs de se séparer, c'est pourquoi ce processus n'exige que la signature privée valide et non une paire de base. ©2018 Block Collider Freedom through Cryptography
4 multichain transaction dynamics 19 4.2 Jetons marqués La multichaîne Block Collider a des monnaies marquées, qui est une unité de valeur pour chaque chaîne pontée. Ces jetons marqués ne sont disponibles que sur des chaînes qui supportent des actifs symbolisés ou des chaînes latérales et pourraient être comparés à des "pièces de couleur"[3]. Par exemple, sur Ethereum, le Collider utilise Marked Ethereum (ou M-ETH) qui est un jeton Ethereum ERC20. Chaque transaction dont ce jeton fait partie est automatiquement une partie valide de la multichaîne Block Collider. Les jetons marqués sont observés par les rovers (discutés dans la section suivante) et sont utilisés pour accélérer la synchronisation entre pairs. Ce qui suit serait une transaction qui, même si elle est exécutée sur Ethereum, pourrait être récupérée à partir de la multichaîne Block Collider. 0xd12Cd8A37F074e7eAFae618C986Ff825666198bd Transferred:TXID -23 M-ETH 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413 +22.999 M-ETH L'utilisation d'octets pour identifier le jeton n'est pas unique à Block Collider ; c'est la même manière que la chaîne de blocs d'Ethereum identifie qu'un jeton particulier a été transféré. Toute transaction ou bloc peut être transmis au Block Collider. En théorie, ce processus pourrait être utilisé si un jeton d'une chaîne de blocs devenait plus précieux que la chaîne elle-même, et par la suite, les mineurs du Block Collider pourraient la fusionner en tant que sa propre chaîne en utilisant le drapeau byte comme différentiateur de sa chaîne hôte. 4.3 Promesses Sur la multichaîne Block Collider, les promesses sont des transactions cryptées qui décryptent et s'exécutent lorsqu'un événement sur une autre chaîne est observé. Il y a deux éléments clés d'une promesse Collider : les données privées et le filtre de bits. Les données privées sont une transaction qui est destinée à être exécutée à un moment futur, qui est cryptée. Cela peut être lourd en données, comme un dump de documents, ou plus lourd en calcul, comme un contrat intelligent à exécuter. Le filtre de bits indique où chercher la clé de déchiffrement pour déchiffrer la transaction. Le filtre de bits doit être une simple tranche de bits, potentiellement compte tenu de certaines contraintes, d'un hash de transaction sur une chaîne pontée. Un mineur de transaction ayant l'intention d'exploiter une promesse surveillerait la chaîne identifiée jusqu'à ce que le filtre à bits trouve une tranche qui correspond et soit capable de décrypter les données privées. Il décrypterait ensuite les données privées dans une transaction, et afficherait cette transaction, réclamant des frais à la fois de la promesse originale et facultativement de la transaction de la chaîne de blocs pontés. ©2018 Block Collider Freedom through Cryptography
4 multichain transaction dynamics 20 Exemple de promesses Les promesses sur la multichaîne de Block Collider permettent facilement une mise en œuvre entièrement décentralisée de Wik-ileaks. Imaginez qu'Alice a des informations sur son employeur qui, selon elle, devraient être rendues publiques et qu'elle veut s'assurer que, dans le cas où une libération contrôlée n'est pas possible, il y aura quand même un dépôt de documents. Alice pourrait mettre une copie cryptée en ligne et utiliser une promesse Collider pour la diffusion des clés. Plus précisément, Alice pourrait mettre en place une promesse qui resterait silencieuse tant que certaines données sont postées sur n'importe quelle chaîne pontée, signée avec sa clé privée. Si elle arrêtait son émission "Heartbeat", la promesse décrypterait et afficherait une transaction avec la clé pour les données privées au Collider ou à n'importe quelle chaîne pontée. 4.4 Rappels Les rappels sont un moyen compatible avec les incitatifs d'exécuter des transactions à chaînes multiples entre utilisateurs. Ils sont l'évolution naturelle des "swaps atomiques", qui peuvent non seulement échanger des pièces de monnaie, mais aussi exécuter des transactions arbitraires basées sur des conditions ou sur des transactions sur d'autres chaînes de blocs. Les rappels sont exécutés en deux étapes : la mise en place et l'exécution. Chaque action après l'étape de mise en place est assurée avec une garantie, offerte par n'importe quelle partie qui a la possibilité de passer à l'action et de s'en aller. De cette façon, si l'une des parties rompt ce protocole en plusieurs étapes, la partie restante est rendue entière avec la garantie de la partie défenderesse. Lors de l'étape de configuration, l'initiateur du rappel affiche d'abord une transaction de rappel, qui établit et finance une adresse bonus, et qui fournit des informations partielles pour configurer les adresses de garantie. L'adresse de bonus est financée et couvre une partie des honoraires des mineurs au cours de la transaction. L'adresse de la garantie est l'endroit où une réserve de valeur suffisante est conservée, de sorte que si un acteur se retire de la transaction, la contrepartie peut toujours être rendue entière par le montant du compte de garantie, et de sorte que la sauvegarde n'est jamais dans l'intérêt économique de l'une ou l'autre partie. En réponse à l'opération de rappel initiale, un répondant affiche une opération de rappel en réponse, qui finance une adresse en prime et fournit des renseignements partiels pour établir des adresses de garantie. La combinaison des informations des deux parties spécifie entièrement les adresses de garantie, qui sont verrouillées et déverrouillées en fonction de l'état actuel de la transaction[16]. À l'étape de l'exécution, l'initiateur et l'intimé alternent pour remplir partiellement (ou entièrement) les transactions. Pour que le protocole soit compatible avec les mesures incitatives, la garantie fournie par chaque garantie doit annuler toute perte potentielle de la partie adverse. ©2018 Block Collider Freedom through Cryptography
4 multichain transaction dynamics 21 Naïvement, la garantie doit avoir au moins autant de valeur que ce qui est transféré pour maintenir la compatibilité des incitations. Toutefois, en permettant l'exécution partielle, la garantie peut être jusqu'à k fois moins précieuse que l'ensemble de la transaction, où k est le nombre de pièces partielles en lesquelles la transaction complète est divisée. De cette façon, il y a un compromis naturel entre la rapidité d'exécution et le montant de la garantie que l'une ou l'autre partie est prête à offrir en garantie. Chaque pièce de l'étape d'exécution comprend une minuterie d'expiration. Si le délai expire avant que la partie concernée n'effectue le transfert total ou partiel convenu, ils sont considérés comme étant défectueux et leur garantie est confisquée. La dynamique exacte est ouverte à la personnalisation, de sorte qu'en plus d'être rendue entière, il pourrait y avoir des frais de commodité supplémentaires pour défection sur une contrepartie. Exemple de Rappels Imaginez Bob veut offrir d'échanger 5,0 ETH contre 0,2 BTC. Bob crée une transaction de rappel, qui finance une adresse bonus, qui sert à financer les frais miniers couverts par le protocole, et fournit des informations partielles pour établir une adresse de garantie (CBob). Bob propose que ce rappel se produise en 5 pièces, donc son adresse collatérale doit couvrir 1.0 ETH (puisque 5.0ETH / 5 pièces = 1.0ETH). Imaginez qu'Alice et Carol veulent toutes les deux devenir des contreparties à cette transaction. Alice et Carol soumettent toutes deux des transactions en réponse à la transaction de rappel de Bob, qui tente de financer une adresse bonus et de financer une adresse collatérale (CAlice, CCarol). Un mineur de bloc en choisit un (disons Alice, sans perte de généralité). L'équilibre de Carol n'est pas affecté puisque sa réponse n'a pas été choisie. Maintenant que l'installation est terminée, Bob et Alice passent à l'étape de réalisation, les deux avec au moins 1 5 de la valeur de leur compte de garantie. Pour la première pièce, Bob transfère un cinquième de ce qu'il a promis (c'est-à- dire 1,0 ETH) sur le compte d'Alice. Son transfert débloque la garantie dans son compte et bloque la garantie dans le compte de garantie d'Alice. Ensuite, Alice transfère un cinquième (ou 0,04 BTC) au compte de Robert, et ce transfert débloque son compte de garantie, et verrouille à nouveau le compte de garantie de Robert. Cela se poursuit pièce par pièce jusqu'à ce que la transaction soit complète. Si, à n'importe quelle étape, Bob ou Alice ne poursuit pas la transaction comme prévu, il y a clairement assez dans le compte de garantie du défecteur pour fournir un dédommagement à la partie coopérante, qui peut alors conclure la transaction ailleurs. ©2018 Block Collider Freedom through Cryptography
Vous pouvez aussi lire