Livre blanc d’Ethereum, expliqué. Partie 1 – BBOD – Ethereum comment débuter

  • Linge de lit uni percale - Housse De Couette 1 Personneonne : 140x200cm - Blanc - ColombineTissée à partir d’un coton de très grande qualité, cette percale très serrée associe la beauté, la douceur et l’ultra résistance... pour un linge de lit Colombine®
    Tissée à partir d’un coton de très grande qualité, cette percale très serrée associe la beauté, la douceur et l’ultra résistance... pour un linge de lit Colombine® d'une longévité exceptionnelle !
  • Linge de lit uni percale - Drap Platvolant Froncé 1 Personne : 180x290cm - Blanc - ColombineTissée à partir d’un coton de très grande qualité, cette percale très serrée associe la beauté, la douceur et l’ultra résistance... pour un linge de lit Colombine®
    Tissée à partir d’un coton de très grande qualité, cette percale très serrée associe la beauté, la douceur et l’ultra résistance... pour un linge de lit Colombine® d'une longévité exceptionnelle !
  • Linge de lit uni percale - Drap-housse 1 Personneonne : 90x200cm - Blanc - ColombineTissée à partir d’un coton de très grande qualité, cette percale très serrée associe la beauté, la douceur et l’ultra résistance... pour un linge de lit Colombine® d'une l
    Tissée à partir d’un coton de très grande qualité, cette percale très serrée associe la beauté, la douceur et l’ultra résistance... pour un linge de lit Colombine® d'une longévité exceptionnelle !
?>

Board of Derivatives Blockchain

Dans le billet de blog suivant, nous décortiquerons le livre blanc d’Ethereum en le décrivant en profanes. Le magazine étant trop long pour tenir dans un article de blog, nous le diviserons en plusieurs sections. Nous essaierons d’expliquer les détails de niche mentionnés dans le livre blanc d’Etereum dans les termes les plus simples.

Nous savons tous que le développement de Bitcoin par Satoshi Nakamoto a donné naissance à la technologie monumentale connue sous le nom de – Blockchain. J’espère que vous savez déjà ce qu’est la technologie Blockchain, grâce à nos précédents articles.

Il existe de nombreuses autres applications pour la technologie Blockchain, dont certaines incluent: les pièces colorées, la propriété intelligente, le namecoin, les contrats intelligents ou les DAO (organisations autonomes décentralisées). Ces applications sont complexes à construire sur la blockchain Bitcoin. Pour résoudre ce problème, Ethereum propose un langage de programmation complet de Turing qui peut être utilisé pour créer des contrats intelligents ou coder des fonctionnalités complexes. Un langage Turing-complete peut principalement être utilisé pour simuler une machine Turing. Une machine de Turing est un modèle qui peut simuler n’importe quel algorithme informatique quelle que soit sa complexité.

La Fondation Ethereum suggère que tout ce qui précède peut être réalisé sans aucun problème avec les lignes de code. Nous validerons davantage cette déclaration dans ce blog et dans les prochains articles.

Les monnaies numériques prévalent depuis des décennies en tant que concept. Dans les années 80 et 90, une technique de cryptographie appelée Chaumian Blinding a été utilisée. Cependant, ils comptaient sur un intermédiaire centralisé qui était un contrevenant clair. Puis vint l’argent B qui proposa un système de consensus décentralisé, mais comment il serait possible de le réaliser fut discutable. Hal Finney a ensuite proposé des preuves de travail réutilisables qui, en combinaison avec le concept de monnaie B, semblaient au début prometteuses, mais les tentatives d’impliquer une telle solution ont échoué.

Satoshi Nakamoto a rassemblé tous ces concepts avec d’autres techniques primitives établies pour gérer la propriété grâce à des techniques de cryptographie. L’algorithme de consensus utilisé par Bitcoin Blockchain pour garder une trace des pièces est appelé preuve de travail.

La preuve du mécanisme de consensus sur le travail a constitué une avancée majeure dans ce domaine car elle a résolu deux problèmes principaux.

  1. Les nœuds du réseau peuvent désormais facilement accepter d’utiliser l’algorithme de consensus pour spécifier les transactions dans le grand livre distribué.
  2. Le problème de savoir qui décide d’entrer dans le grand livre distribué a été résolu en utilisant la puissance de calcul que chaque nœud est prêt à dépenser.

Pour les mineurs, cela signifie principalement – Plus de puissance informatique = Plus de mines bloquées = Plus de récompenses cryptographiques

Un autre concept appelé preuve de participation calcule l’importance d’un nœud dans le processus de vote en fonction du nombre de pièces qu’il possède et pas seulement des ressources de calcul.

La gestion de toute crypto-monnaie est essentiellement un système de transition d’état qui, à un certain moment, contient des informations sur le nombre de pièces dans les portefeuilles individuels et les transactions effectuées par ces portefeuilles.

Dans le diagramme ci-dessous, il y a trois blocs principaux à considérer

Etat – Il s’agit de toutes les informations sur le propriétaire du livre qui sont cryptées.

Transaction – Les blocs de transaction définissent le montant du transfert initié dans le système. Il contient également une signature définie par l’expéditeur.

Etat’ – Cet état se compose des informations sur le propriétaire final qui sont réparties sur tous les nœuds. Cette Etat’ fonctionnera alors comme Etat lors de la prochaine transaction.

Dans un environnement bancaire traditionnel, les États sont des bilans individuels et lorsque l’argent est envoyé de A à B, leurs enregistrements individuels sont mis à jour.

Il est évident qu’avec les banques traditionnelles, nous ne pouvons pas envoyer plus d’argent que nous n’en avons dans nos comptes individuels, une logique similaire a été appliquée ici qui est définie par la fonction suivante.

UTILISATION (S, TX) -> S ‘ou ERREUR

Pour illustrer cela à propos de l’exemple bancaire, nous pouvons le traduire par l’expression suivante.

CRYPTO

UTILISATION (S, TX) -> S ‘

BANQUES

USE (Alice: 50 $, Bob: 50 $, « envoyer 20 $ d’Alice à Bob ») = Alice: 30 $, Bob: 70 $

Ici, S est l’état d’origine où Alice et Bob ont 50 $ dans leurs comptes.

TX est la transaction qui définit « envoyer 20 $ d’Alice à Bob »

S ‘est l’état final qui reflète les équilibres mis à jour entre Alice et Bob

Avant de passer au scénario suivant, nous devons comprendre comment les avoirs en pièces dans les comptes individuels sont calculés.

Un « état » bitcoin a la collection de toutes les pièces qui sont avec la clé publique de leur propriétaire. La collecte de ces pièces est déterminée par le total UTXO associé à l’adresse. Les UTXO sont des sorties de transaction inutilisées qui, comme son nom l’indique, n’ont pas été utilisées par le propriétaire. Ces sorties sont mesurées en vérifiant si les pièces provenant du précédent propriétaire étaient également UTXO, pour commencer. Ceci est confirmé en vérifiant l’UTXO du propriétaire précédent et en le faisant correspondre avec la signature cryptographique produite par la clé privée du propriétaire précédent.

Analysons maintenant ce qui se passe si vous essayez de vendre des pièces que vous n’avez pas?

CRYPTO

UTILISATION (S, TX) -> ERREURS

BANQUES

APPLIQUER (Alice: 50 $, Bob: 50 $, « envoyer 70 $ d’Alice à Bob ») = ERREUR

1er Vérifiez la valeur mentionnée dans TX (70 $)

une. Si cette valeur n’est pas vérifiée par UTXO du propriétaire, elle n’est pas dans son compte. Retourne une erreur.

b. Si ladite signature cryptographique ne correspond pas à la signature du propriétaire, renvoyez une erreur.

2e Si la somme des UTXO du propriétaire est inférieure au nombre mentionné dans TX, renvoie une erreur.

3e Si la transaction est valide, transférez de l’argent au destinataire. Ce transfert se fait en supprimant l’entrée UTXO de l’expéditeur et en l’ajoutant sous l’adresse de clé publique du destinataire.

Étape 1a empêche l’expéditeur d’envoyer des pièces qui n’existent pas et l’étape 1b empêche l’expéditeur d’envoyer des pièces d’autres personnes.

étape 2 s’assure qu’il y a suffisamment de pièces avec l’expéditeur avant de procéder à la transaction.

Étape 3 terminer le processus en soustrayant les valeurs de l’expéditeur et en l’ajoutant au portefeuille du destinataire.

Maintenant, ces étapes peuvent sembler faciles à visualiser, mais dans les coulisses, il se passe beaucoup de choses.

Les exemples suivants devraient vous aider à mieux comprendre.

Supposons que vous sortiez pour acheter un tas de bananes. Pour une raison vague, 1 banane coûte 75 $. Dans un cadre traditionnel, pour voir si vous pouvez vous permettre la banane chère et chère, ouvrez votre portefeuille et vérifiez le solde. Vous avez deux billets de 50 $ chacun pour un total de 100 $ (50 + 50 = 100, duh!). Ces deux notes ont été données par votre maman pour acheter des bananes.

Pour pouvoir vous permettre cette banane, vous devez remettre vos deux billets de 50 $ au vendeur de bananes et il vous rendra 25 $ avec une combinaison de billets en USD. Vous êtes maintenant l’heureux propriétaire de ce cours super cher. Le vrai problème qui vous attend maintenant est d’expliquer à votre maman le prix d’un cours.

C’est assez facile à comprendre, alors voyons ce qui se passe dans une transaction de crypto-monnaie typique.

Gardez à l’esprit qu’Alice veut envoyer 75 BTC (oui, Alice est sale riche) à Bob. Pour continuer, elle vérifie d’abord si elle a 75 BTC dans son portefeuille. Pour contrôler cela, elle doit résumer toutes ses UTXO (entrées de valeur). Considérez cet UTXO comme les deux billets de 50 $ dans l’exemple précédent. Cependant, Alice a deux valeurs UTXO dans son portefeuille de 50 BTC chacune. Cela signifie qu’Alice a reçu deux transactions dans son portefeuille. Chaque UTXO vaut 50 BTC.

Nous savons maintenant que vous ne pouvez pas couper un billet de 100 $ en deux parties pour le diviser en deux billets de 50 $, ce qui rendrait le billet de 100 $ inutile. En crypto-monnaie, cependant, vous pouvez effectuer des microtransactions en divisant 1 pièce en dix pièces de 0,1. Cependant, cette division n’est pas simple.

Pour transférer 75 BTC à Bob, Alice va créer une transaction avec les deux 50 entrées BTC pour sortir deux sorties. Une sortie sera donnée à Bob, un autre solde sera reversé au portefeuille d’Alice.

50BTC + 50BTC → 75BTC à Bob + 25BTC à Alice

Dans ce scénario, Bob n’a pas la confiance nécessaire pour retourner le solde par rapport à l’exemple précédent. Au contraire, la transaction gère le retour de la production du solde restant à Alice.

Dans une société idéale où nous pourrions compter sur un système centralisé de toutes les transactions, cette étape serait totalement inutile. Mais nous essayons de créer un système de consensus décentralisé qui pourrait briser le monopole des banques sur nos économies. L’exploitation minière est une méthode qui nous permet de combiner le système de transition d’état avec un système de consensus afin que tous les nœuds du réseau s’accordent sur les transactions. Ces transactions sont combinées et regroupées en blocs, comme illustré dans la figure ci-dessous.

Le réseau Bitcoin produit 1 bloc toutes les dix minutes. Chaque bloc a un horodatage, un nonce (un nombre arbitraire non répétable), une référence au bloc précédent mentionné comme Prevhash dans le diagramme ci-dessus, et la liste de toutes les transactions qui ont eu lieu après la rupture du bloc précédent. Cette blockchain sans fin représente toujours le dernier état du livre distribué et obtient ainsi son nom – Blockchain.

Les étapes suivantes vérifient la validité d’un bloc:

  1. Vérifiez si le bloc précédent référencé par le bloc existe et est valide.
  2. Vérifiez que l’horodatage du bloc est plus grand que pour le bloc précédent et moins de deux heures à l’avance.
  3. Vérifiez que la preuve de travail sur le bloc est valide.
  4. Soit S[0] être l’état à la fin du bloc précédent.
  5. Supposons que TX est la liste des transactions du bloc avec n transactions. Pour tout i dans 0… n-1, définissez S[i+1] = UTILISATION (S[i], TX[i]) Si une application renvoie une erreur, quittez et retournez false.
  6. Renvoyer vrai et enregistrer S[n] comme l’état à la fin de ce bloc.

Points 1 à 3 sont simples. Cependant, les trois points suivants peuvent sembler un peu déroutants. Comprenons comment cela fonctionne.

Comme mentionné au paragraphe 4, soit S[0] être l’état à la fin du bloc 5624.

À l’heure pile 5 il est mentionné que pour chaque transaction n, il existe un état spécial comme suit:

Donc avec la fonction → S[i+1] = UTILISATION (S[i], TX[i])

Nous avons les éléments suivants:

S[1] = UTILISATION (S[0], TX[0]) ← Première transaction

S[2] = UTILISATION (S[1], TX[1]) ← Deuxième transaction

.

.

S[n] = UTILISATION (S[n-1], TX[n-1]) ← nième transaction

Si vous vous souvenez de la fonctionnalité que nous avons lue dans la rubrique précédente. Nous devrions pouvoir tracer la valeur de S en fonction de la fonction Appliquer.

UTILISATION (S, TX) -> S ‘

Ceci est principalement utilisé pour lier différentes transactions et blocs. Ainsi, chaque transaction dans le bloc définit une transition d’état valide en utilisant les fonctions ci-dessus d’une transaction à l’autre. Cependant, l’état n’est stocké nulle part dans le bloc et est calculé uniquement en partant de l’état du bloc spécifique, pour chaque transaction dans ce bloc. Cela donne finalement une sortie de S[n] qui agira comme S[0] pour le bloc suivant.

L’ordre des transactions est de la plus haute importance car si B crée une transaction impliquant des fonds (UTXO) envoyés (créés) par A, la transaction effectuée par A doit avoir lieu avant B pour que le bloc soit valide.

La preuve de travail requise est que le double hachage SHA256 pour chaque bloc qui est un nombre de 256 bits doit être inférieur à une cible ajustée dynamiquement. Ces objectifs dynamiques varient de temps en temps de sorte que les mineurs fournissent une bonne puissance de calcul pour confirmer leurs preuves du travail. Étant donné que la fonction SHA256 est complètement pseudo-aléatoire et imprévisible, la seule façon de la briser est par de simples essais et erreurs ou par force brute.

Supposons que la cible dynamique soit définie sur ~ 2150, le réseau doit alors atteindre une moyenne de 2 (256-150), ce qui correspond à 2106 tentatives avant qu’un bloc valide ne soit trouvé. Cette cible dynamique est réinitialisée à chaque bloc de 2016 et calibrée à une nouvelle valeur cible. En moyenne, un nouveau bloc est produit toutes les dix minutes sur le réseau Bitcoin. Pour tous les gros efforts que les mineurs font en facilitant nos transactions et en résolvant des problèmes mathématiques complexes, ils reçoivent des Bitcoins en récompense. La récompense initiale était de 25 BTC par bloc brisé. Actuellement, la récompense est de 12,5 BTC par bloc cassé. C’est ainsi que les bitcoins circulent. Les Bitcoins attribués aux mineurs sont de nouveaux Bitcoins débloqués à partir de 21000000 Bitcoins, ce qui est la limite stricte pour les Bitcoins qui peuvent jamais être en circulation.