Cointerra annonce goldstrike1 asic

CoinTerra Engineering Update: TerraMiner IV Hashing Live (Avril 2019).

Anonim

Divulgation: L'auteur de cet article est le fondateur et chef scientifique du projet Ethereum

La semaine dernière, Adam Back et Austin Hill ont publié une annonce sur Let's Talk Bitcoin, dans laquelle ils annonçaient leur nouveau projet: "Sidechains". L'idée, ils ont décrit, permettrait l'existence de chaînes de blocs alternatives, peut-être avec des règles différentes permettant différents types de fonctionnalités supplémentaires ou types de transactions, mais avec une unité monétaire dont la valeur est liée à celle du bitcoin. L'intention est de permettre l'expérimentation de différentes extensions du protocole Bitcoin, en utilisant des réseaux séparés pour éviter tout risque pour Bitcoin lui-même, tout en utilisant toujours la même unité monétaire sous-jacente. Dès que l'idée a été annoncée, le concept a suscité un grand intérêt de la part du public, ce qui a renouvelé l'espoir que le protocole Bitcoin devienne potentiellement beaucoup plus puissant qu'il ne l'est aujourd'hui.

Sous le capot

L'idée derrière les chaînes latérales n'est pas nouvelle; le concept a été autour depuis au moins l'année dernière en décembre, et un précurseur de l'idée a été autour pendant plusieurs années avant cela. Le précurseur, un protocole connu sous le nom d'ancrage unidirectionnel, était un mécanisme qui serait théoriquement utilisé pour gérer une transition de "Bitcoin 1. 0" à "Bitcoin 2. 0", et a fonctionné comme suit. Supposons que, dans Bitcoin 1. 0, 13 millions d'unités monétaires ont déjà été émises à travers l'exploitation minière, avec 8 millions encore à distribuer. Le modèle de distribution pour BTC2. 0 libérerait 8 millions d'unités par l'exploitation minière, selon le même calendrier que BTC1. 0 après ce point, mais les 13 autres millions seraient distribués par un mécanisme connu sous le nom de "proof-of-burn".

Essentiellement, on prendrait une unité de BTC1. 0, l'envoyer à une adresse indéfinissable (par exemple 1111111111111111111114oLvT2 ), et soumettre une preuve cryptographique attestant que cette transaction a été effectuée, signée par la même clé privée qui a envoyé la transaction, comme une transaction dans Bitcoin 2. 0 Selon le protocole Bitcoin 2. 0, cela donnerait à l'utilisateur le droit de recevoir une unité de 2. 0. C'est ce qu'on appelle un "one-way peg" parce que la valeur d'un BTC2. 0 peut être au plus égal à un BTC1. 0; sinon, les gens arbitreraient la différence en convertissant les bitcoins au taux de 1: 1. Cependant, en dehors de la vente de BTC2. 0 pour BTC1. 0 sur le marché, il n'y a aucun moyen de revenir en arrière, donc si l'expérience échoue la valeur de BTC2. 0 pourrait tomber à zéro.

Les sidechains Bitcoin utilisent une version améliorée de ce système appelée "two-way pegging", qui fonctionne comme suit. Afin de recevoir une unité de BTC2. 0, il faudrait prendre une unité de BTC1. 0 et envoyez-le dans un "script" que nous appellerons X et laisserons pour le moment non décrit. Un script dans Bitcoin est une adresse qui, au lieu d'être détenue par une clé privée, agit essentiellement comme une boîte de verrouillage qui débloque les bitcoins uniquement lorsqu'une transaction remplit certaines conditions.Par exemple, on peut avoir un script qui débloque les fonds à la première personne qui soumet un nombre premier à cinquante chiffres composé entièrement des chiffres 3 et 5. Faire la transaction, et publier une preuve cryptographique qu'une telle transaction a été faite, dans le Bitcoin 2. 0 blockchain donne droit à l'utilisateur à une unité de BTC2. 0.

Maintenant, la définition de X est simple: X débloque les fonds (souvenez-vous, c'est une unité de BTC1 .0) si une preuve cryptographique valide prouve que l'expéditeur a détruit une unité de BTC2. 0. Ainsi, il existe un mécanisme pour convertir BTC 1. 0 en BTC2. 0, et ce même mécanisme crée un autre mécanisme, limité en valeur au nombre total de BTC2. 0 créé, qui peut être utilisé pour convertir BTC2. 0 retour à BTC1. 0. Par conséquent, à double sens.

Le mécanisme que ces "preuves cryptographiques" utilisent repose sur une construction cryptographique utilisée dans Bitcoin appelée arbre Merkle. Dans un bloc Bitcoin, au lieu d'avoir directement toutes les transactions directement dans le bloc, seul un hachage de 32 octets est inclus dans l'en-tête du bloc. Ce hachage de 32 octets est lui-même calculé à partir de deux autres hachages de 32 octets, dont chacun provient de deux autres hachés de 32 octets, et ainsi de suite jusqu'à ce que finalement les valeurs en bas soient les transactions elles-mêmes. C'est précisément le but de ce mécanisme de permettre l'existence de preuves compactes qu'une transaction spécifique est dans un bloc spécifique; tout ce dont on a besoin, c'est la seule branche de hachage allant de cette transaction au nœud racine, soit un total de 10 hachages pour 1000 transactions ou 20 hachages pour un million de transactions. C'est impossible à forger; Si vous essayez de changer même une seule transaction dans l'arbre, les changements se propagent vers le haut à travers les hachages jusqu'à ce que finalement le nœud racine finisse complètement différent.

Cependant, cela ne résout pas complètement le problème; Tout ce qu'il vous dit, c'est qu'un bloc, quelque part, contient une transaction donnée. Cela ne vous dit pas que la transaction est dans la chaîne principale; en réalité, les mêmes bitcoins utilisés dans la transaction pourraient déjà avoir été envoyés à une source différente, rendant la transaction invalide. Il y a deux façons de résoudre cela. Une approche, et de loin la plus simple, est pour le mécanisme de preuve dans Bitcoin 2. 0 de demander non seulement pour la branche d'arbre Merkle, mais aussi pour la blockchain remontant six blocs, un peu comme un commerçant demandant six confirmations, en utilisant puissance minière comme un proxy pour la validité. Pour plus de sécurité, un nombre beaucoup plus important de blocs comme 60 peut être requis. Cette approche est simple et semble répondre à tous les paramètres requis.

Défis

Cependant, le mécanisme décrit ci-dessus est très imparfait. Lorsqu'un commerçant ordinaire demande six confirmations, le lancement d'une double attaque contre ce marchand nécessite de produire six blocs plus rapidement que le reste du réseau combiné en temps réel, une tâche qui nécessite au moins 30% de la puissance totale du réseau pour fonctionner avec tout taux de réussite non négligeable. Avec le mécanisme de rattachement bidirectionnel décrit ci-dessus, cependant, un mineur malveillant avec même 1% de hashpower peut générer six blocs, voire soixante blocs, finalement, et ensuite utiliser ces blocs pour réclamer frauduleusement tout BTC1.0 qui ont été mis dans la BTC2. 0 lockboxes (ou, dans l'autre sens, réclamer frauduleusement un nombre illimité de BTC2.0). Un patch possible qui peut venir à l'esprit est de demander à la même personne qui a créé le lockbox de l'ouvrir, limitant ainsi la quantité de dommages qui peuvent être causés par personne, mais cela ne résoudra pas le problème car le mineur malicieux peut facilement autre. Le problème fondamental, à savoir qu'il n'existe aucun moyen de valider la blockchain qui ne se met pas à jour, est soit très difficile à résoudre, soit ne peut être résolu en restant purement dans le paradigme de script "lockbox statique" de Bitcoin.

Une autre approche, qui peut résoudre ce problème sans difficulté excessive, est plus complexe et intrusive. Il faut essentiellement inclure ce qu'on appelle un "client léger" pour Bitcoin 1. 0 en Bitcoin 2. 0. Le client léger est plus facilement décrit comme un "contrat" ​​de longue durée, un programme sur la blockchain avec une grande quantité de état qui s'exécute chaque fois qu'une transaction lui est envoyée, qui accepte les blocs et vérifie les en-têtes de bloc exactement de la même manière qu'un client Bitcoin sur votre téléphone mobile le ferait. Ce contrat garderait alors une liste courante de tous les en-têtes de bloc dans Bitcoin 1. 0, et afin de recevoir un BTC2. 0 il faudrait soumettre une preuve cryptographique que vous avez effectué la transaction requise dans BTC1. 0 dans le contrat, avec un dépôt de garantie de 0. 1 BTC2. 0.

Le contrat vérifierait que la preuve est valide, aboutirait à un bloc qui se trouve dans la mini-blockchain interne du contrat, puis attendrait l'une des deux choses suivantes. D'abord, une fois soixante Bitcoin de plus, les blocs de 0, 0 seront ajoutés dans le contrat, il libérerait une unité de BTC2. 0 à l'expéditeur plus le dépôt de garantie. Alternativement, si quelqu'un d'autre soumet une preuve cryptographique que la transaction est invalide pour une raison quelconque (par exemple, il dépense des bitcoins qui n'existent pas) dans ce délai, alors ils recevront le dépôt de garantie.

Cela résoudrait le problème de sécurité, mais présente un défaut important: il ne peut pas être fait dans le protocole Bitcoin tel qu'il est. Il est assez facile à implémenter dans un protocole comme Ethereum, car il est spécialement conçu pour les contrats, mais la fonctionnalité de script de Bitcoin ne permet pas l'existence de contrats qui ont un état interne, donc faire cela à l'intérieur de Bitcoin nécessiterait un changement substantiel. le protocole Bitcoin 1. 0. En fin de compte, l'approche adoptée par Austin Hill et Adam Back peut ne pas ressembler exactement à l'une ou l'autre de ces stratégies; Cependant, la complexité du problème montre qu'il reste de nombreux défis à relever.

Exploitation minière

Une autre question importante est la suivante: comment ces chaînes latérales seront-elles sécurisées? Le mécanisme standard pour sécuriser une chaîne de blocs est l'extraction, mais l'extraction nécessite un mécanisme pour récompenser les mineurs sur cette chaîne. Dans une chaîne latérale, chaque unité de la chaîne secondaire doit être protégée par un script-lockbox contenant une unité de BTC sur la chaîne de blocs Bitcoin, il n'y a donc pas de possibilité simple d'émettre des unités monétaires de chaîne nulle part.Il y a deux possibilités pour cela: les frais de surestaries (c'est-à-dire une taxe annuelle sur tous les BTC de la chaîne latérale) et les frais de transaction. Cependant, ces deux sources fournissent des revenus relativement faibles, et il n'est donc pas du tout certain que de vieilles mines indépendantes puissent résoudre le problème.

Il existe deux approches pour contourner ce problème. Une approche consiste à sécuriser la chaîne latérale par une preuve d'enjeu, en utilisant les faibles recettes provenant des frais de transaction pour compenser les parties prenantes participantes avec un taux d'intérêt. Cependant, cette approche serait très difficile à implémenter dans une chaîne latérale, car les calculs impliqués dans la validation de la preuve de participation sont probablement trop complexes pour être implémentés directement sur une chaîne de blocs. L'autre approche, et celle promue par Adam Back et Austin Hill, s'appelle «fusionner-minier»; essentiellement, les mineurs incluent dans les blocs Bitcoin des données provenant à la fois du bloc Bitcoin et du bloc Namecoin, permettant aux mineurs d'assurer la sécurité pour les deux chaînes en même temps en utilisant le même effort de calcul.

Cependant, comme le soutient Peter Todd, développeur Bitcoin, le concept de fusion-extraction présente un défaut de sécurité très important: à moins que la majorité des mineurs de Bitcoin n'accepte de fusionner une chaîne particulière, cette chaîne n'est sûrement pas sécurisée. . Pour comprendre pourquoi, considérons d'abord le cas d'un altcoin plus traditionnel, dans notre exemple qui exécute SHA256 pour la simplicité (si l'altcoin utilise un algorithme personnalisé, alors les mineurs de Litecoin peuvent retirer l'attaque à la place). Si l'altcoin a 5% du hashpower de Bitcoin, alors pour attaquer la chaîne via une double dépense, au moins 5% de la puissance du réseau Bitcoin devrait temporairement se rediriger vers l'extraction sur l'altcoin. C'est potentiellement possible, mais c'est un mouvement coûteux: tandis que l'attaque est en place, les mineurs de Bitcoin perdraient le revenu de l'extraction sur Bitcoin. Dans le cas d'une chaîne latérale fusionnée, cependant, l'extraction sur la ligne principale d'une chaîne latérale ou l'attaque sont toutes deux gratuites, de sorte qu'il n'y aurait pas de désincitation économique à attaquer la chaîne alternative. Ce n'est pas une simple conjecture; il y a eu des exemples réels de pools miniers attaquant des chaînes fusionnées en réalité.

Mis à part la sécurité, cette dépendance à l'extraction de fusion expose aussi une autre limite inquiétante de l'idée de chaînes latérales: alors que l'esprit de la cryptomonnaie est sans doute celui de l'innovation sans permission, créer une chaîne secondaire nécessite la permission et l'aide active de 50 % de tous les opérateurs de pool de minage Bitcoin. Ces limitations suggèrent que le protocole des chaînes latérales, tout en étant excellent pour de nombreux cas d'utilisation, ne sera certainement pas idéal pour tous.

La promesse

Si les problèmes techniques liés aux chaînes latérales peuvent être résolus, quelle est leur promesse? À l'heure actuelle, le développement de crypto-monnaie peut essentiellement être classé en quatre quadrants. Le premier quadrant est constitué de projets qui utilisent la devise Bitcoin et la chaîne de blocs Bitcoin - essentiellement, Bitcoin lui-même. Le deuxième quadrant est celui des protocoles qui utilisent la blockchain Bitcoin mais pas la monnaie Bitcoin; Mastercoin, pièces de monnaie colorées et Counterparty en sont d'excellents exemples.Le troisième quadrant utilise à la fois une monnaie indépendante et une blockchain indépendante; cela contient des applications comme (pour prendre des exemples très disparates) Ripple, Litecoin et NXT. Maintenant, avec les sidechains, le dernier quadrant a également été rempli: en utilisant un réseau indépendant mais en utilisant Bitcoin comme devise sous-jacente.

Il sera intéressant de voir à quelles applications cette niche fonctionne le mieux. Pour de nouveaux écosystèmes entiers, ce n'est probablement pas la bonne approche; Il est peu logique pour un réseau complètement indépendant comme Ripple ou Ethereum de lier financièrement son jeton interne principal à Bitcoin et de les exposer aux mouvements de prix de chacun. Dans le cas d'efforts aussi importants, il est souvent judicieux d'expérimenter différentes politiques monétaires; L'éther d'Ethereum a un modèle d'émission linéaire qui libère constamment un certain nombre fixe d'unités monétaires chaque année, alors que Ripple a libéré tous les 100 milliards d'unités de XRP à l'organisation Ripple en une seule fois, et les libère progressivement aux développeurs, investisseurs et les personnes participant à des projets informatiques distribués. Pour une fourche qui est destinée à servir de changement de protocole majeur, comme la mise à niveau de SHA256 vers SHA3 ou dans le cas d'ordinateurs quantiques d'ECDSA vers des signatures Lamport ou NTRU, cela prend tout son sens. Pour tout ce qui est au milieu, ce sera au cas par cas de le comprendre.

Dans le cas d'Ethereum, il faut garder à l'esprit une particularité: Ethereum est une plate-forme de consensus cryptographique à usage général, et non un "altcoin" spécifique. Ainsi, on peut avoir plusieurs devises différentes coexistant sur la plate-forme Ethereum comme des contrats; on peut avoir des anciennes monnaies fixes ennuyeuses, des monnaies avec une politique monétaire gérée par une organisation autonome décentralisée, des monnaies pour subventionner la recherche scientifique ou fournir un revenu de base, et même des monnaies avec un mécanisme intégré d'échange bidirectionnel pour agir comme des chaînes latérales. Ainsi, Ethereum ne peut être catégoriquement classé dans le quadrant des chaînes latérales ou dans le quadrant Ripple / Litecoin / NXT; il existe dans les deux.

En effet, il est très probable que dès que le bloc de la genèse d'Ethereum sera lancé, il y aura des chaînes latérales pour Bitcoin, Litecoin et Dogecoin mises en œuvre en tant que contrats dans les trois mois. Si les chaînes latérales peuvent être mises en œuvre avec succès et en toute sécurité, Ethereum peut même devenir le moyen privilégié pour stocker BTC, LTC ou DOGE en utilisant de puissants contrats de stockage multisignature impliquant des fonctionnalités telles que les limites de retrait. Entre les contrats sur une chaîne polyvalente, les altcoins spéciaux à haute performance, les serveurs OpenTransactions quasi-centralisés, les side-chains et Bitcoin lui-même, une chose devient claire: les cryptocurrences vont pouvoir interopérer comme jamais auparavant.