LIVRE BLANC BLOCK COLLIDER - block collider team created: February 11, 2017 revised: January 17, 2018

La page est créée Cédric Cordier
 
CONTINUER À LIRE
LIVRE BLANC BLOCK COLLIDER - block collider team created: February 11, 2017 revised: January 17, 2018
LIVRE BLANC BLOCK COLLIDER

        block collider team

       created: February 11, 2017
       revised: January 17, 2018
                 v0.9.9
LIVRE BLANC BLOCK COLLIDER - block collider team created: February 11, 2017 revised: January 17, 2018
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