frais de transaction : Ethereum est-il essentiellement Bitcoin avec le script Turing-complete ?


Ethereum est-il essentiellement Bitcoin avec un langage de script Turing-complete et, si je comprends bien, où est placé le script à exécuter (pas son hash) dans la blockchain Ethereum ?

C’est un peu une simplification (Ethereum a d’autres améliorations comme GHOST) mais pour nos besoins (discuter de la façon dont un langage de script complet de Turing pourrait être implémenté), c’est essentiellement précis.

Si c’est le cas, pourquoi Ethereum ne se contente-t-il pas de mettre des hachages de ses scripts dans la blockchain Bitcoin, d’envoyer les scripts à exécuter par un autre moyen sécurisé tel que via un réseau P2P (ce qui réduirait considérablement le gonflement de la blockchain), et d’éviter d’être un altcoin tout à fait ?

frais de transaction : Ethereum est-il essentiellement Bitcoin avec le script Turing-complete ?

L’une des caractéristiques importantes d’Ethereum est que vous pouvez conditionner les dépenses de fonds à la sortie d’un script. Par exemple, vous pouvez écrire un script de loterie qui accepte de l’argent d’un groupe de personnes différentes et envoie au hasard tout l’argent au gagnant. Imaginons que nous modifions ce système pour que seul le hash du script soit inclus dans la blockchain :

  • S’il ne s’agit pas d’une règle de consensus, les autres nœuds accepteront une transaction qui ne satisfait pas le script joint. En d’autres termes, si les nœuds ne peuvent pas voir l’intégralité du script, comment un nœud peut-il savoir si quelqu’un réclamant les gains de la loterie est réellement autorisé à le faire ?
  • S’il s’agit d’une règle consensuelle, cela introduit une nouvelle série de problèmes. Tout d’abord, afin de savoir si un bloc est valide, vous devez télécharger les scripts depuis le réseau P2P et vérifier que tous les scripts sont valides. Cela augmente le temps nécessaire pour vérifier les blocs, et donc augmente le nombre de blocs orphelins.

    Le deuxième problème que cela introduit est que les nœuds complets qui se synchronisent pour la première fois ont besoin de ces scripts, sinon ils ne pourront pas vérifier que les blocs sont valides. Par conséquent, les scripts doivent être stockés indéfiniment, au cas où de nouveaux nœuds rejoindraient le réseau.

    Cela ne résout pas vraiment le gonflement de la blockchain – cela ne fait que déplacer le problème.

Il existe cependant une autre solution qui utilise la blockchain Bitcoin. Vous pouvez suivre l’exemple de Counterparty et créer un système dans lequel vous envoyez une transaction Bitcoin avec des métadonnées supplémentaires pour l’identifier comme une pièce colorée. Vous ne modifiez pas les règles de validité des transactions sur le réseau principal ; vous dites plutôt que si la transaction ne suit pas certaines règles, alors ce n’est pas une transaction TuringCoin valide dans le but d’établir la propriété de TuringCoins. (Toutefois, d’autres transactions TuringCoin dans le même bloc seraient toujours valides.)

Ce n’est pas un altcoin au sens traditionnel (vous utilisez la blockchain de Bitcoin et vous devez payer des frais de transaction Bitcoin), mais c’est un altcoin dans le sens où vous créez votre propre jeton qui n’est pas fongible avec Bitcoin.

Sinon, la limite de gaz est-elle la véritable caractéristique distinctive d’Ethereum par rapport à Bitcoin ?

La limite de gaz dans Ethereum est présente essentiellement pour la même raison que les gens ont proposé de rendre invalides les transactions en Bitcoin supérieures à 100 Ko : sinon, il devient possible de créer un bloc qui prend beaucoup de temps à valider.