[Python] Les lycéens d'Ikiri expliqueront la blockchain aux débutants en 10 minutes! !! !!

1. À propos de cet article

## 1-1. Introduction Cet article a été impressionné par mon élève du secondaire [Udemy: Une introduction au développement de la blockchain à partir de zéro en commençant par Python enseigné par un ingénieur actif de la Silicon Valley](https://www.udemy.com/share/1021OSAkIbdVdQQXo=0). , Je l'ai écrit avec l'espoir que tout le monde lisant cet article le prendra. J'ai terminé cette leçon en deux jours, donc si vous êtes déjà familier avec le développement, je pense qu'il est tout à fait possible de le comprendre et de le mettre en œuvre en un jour. Je présenterai également des articles qui m'ont aidé à comprendre.

(Je suis content de pleurer si tu l'aimes)

1-2. Ce qui est expliqué dans cet article

Dans cet article, nous allons d'abord expliquer et comprendre brièvement BlockChain. Ensuite, je vais vous expliquer l'explication technique de BlockChain </ font> et réseau P2P </ font>. Et enfin, nous examinerons à quel type d'application cette technologie appelée BlockChain peut être appliquée à l'avenir.

Je vais expliquer l'utilisation de Bitcoin comme exemple, donc je pense que cela conduira à une compréhension de Bitcoin.

Assurez-vous de les lire dans l'ordre. Je pense que c'est difficile à comprendre même si vous le lisez du milieu.

1 à 3. Lecteurs cibles

  • Ceux qui sont intéressés par BlockChain
  • Ceux qui ont étudié BlockChain mais ne comprennent pas --Pour ceux qui lisent l'article pour le moment
  • Ceux qui veulent en savoir plus sur les monnaies virtuelles populaires

Quoi qu'il en soit, je vais expliquer à partir de 1 pour les personnes ci-dessus.

1-4. Environnement de développement

Python3.7(Anaconda)

PC: macOS Catalina version 10.15 (mémoire 8 Go, Intel Core i5)

IDE de développement: PyCharm

2. Qu'est-ce qu'une blockchain?

Je vais vous expliquer la blockchain à partir de maintenant.

2-1. Crypto-monnaie et BlockChain

Outre l'histoire technique de BlockChain, je vais d'abord expliquer la position de BlockChain en utilisant la crypto-monnaie comme exemple. Tout d'abord, considérez la situation où vous envoyez de l'argent via une banque ordinaire. Considérez la situation où M. A envoie 1000 yens à M. B ci-dessous. スクリーンショット 2019-10-16 7.08.57.png Une fois par la banque, la banque approuve ainsi le virement et le virement est terminé. Et le grand livre bancaire (base de données) conservera les enregistrements des différentes transactions comme indiqué ci-dessous. スクリーンショット 2019-10-16 7.16.34.png

Cependant, il existe une compréhension implicite des envois de fonds via cette banque. Cela signifie que vous ** faites confiance à la banque **. Tout le monde est convaincu que ** les banques ne modifieront pas cette transaction **, vous pouvez donc envoyer de l'argent via la banque. Par exemple, si une banque envoie 1000 yens mais que seulement 500 yens sont réécrits sans autorisation, cette banque ne sera pas digne de confiance et personne n'enverra d'argent à cette banque.

Et dans ce cas, la banque est principalement responsable de deux choses.

--Vérifiez si cette transaction est légitime --Enregistrer les données de cette transaction

à propos de ça. Il est impossible de vérifier si cette transaction est valide même si vous essayez d'envoyer 10000 yens de M. M qui n'est pas inscrit auprès de cette banque à M. A. De plus, ce n'est pas une transaction légitime d'essayer d'augmenter le solde de M. A à 1000000 yens sans autorisation. Les banques vérifient cela. En outre, l'enregistrement des données de transaction est comme indiqué dans la figure précédente.

** BlockChain remplace ces deux rôles. ** **

Et dans la blockchain, ** sans mettre en place une banque centrale, tous les participants vérifieront que la transaction est correcte **. C'est la partie importante. Assurez-vous de vous en souvenir.

Alors, comment le remplacez-vous? Je vais vous expliquer en parlant techniquement.

2-2. P2P et serveur / client

BlockChain est pris en charge par un réseau appelé P2P. Alors, quel type de réseau est le P2P?

2-2.1 Réseau de type serveur / client

Tout d'abord, le réseau que nous utilisons habituellement est un réseau appelé Serveur / Client. Le réseau de type Serveur / Client effectue les transactions comme suit.

serverclient.png

Lorsque le côté client demande au côté serveur de "me donner des données!", Le côté serveur renvoie les données en conséquence.

Par exemple, considérez Twitter. Le serveur appartient à Twitter et les clients sont nos smartphones et ordinateurs personnels. Ouvrez l'application Twiiter et vous verrez les tweets de la première personne que vous suivez. Lorsque vous ouvrez l'application, le smartphone du client demande au serveur Twitter de "me donner les tweets des personnes que vous suivez!", Et le serveur dit "ce sont les données". Est retourné et passe à la chronologie.

Dans ce cas, que faire si le serveur de Twitter tombe en panne? Lorsque vous ouvrez l'application, même si le côté client le demande, vous ne pourrez pas renvoyer les données correspondantes. En d'autres termes, nous ne pourrons pas recevoir le service en tant que Twitter.

Ensuite, que faire si les performances de traitement du serveur de Twitter sont très faibles? Lorsque l'application est ouverte, même si le côté client le demande, le côté serveur prend énormément de temps pour trouver les données. Ensuite, nous mettons beaucoup de temps à utiliser Twitter, et parfois le serveur tombe en panne, ce qui nous rend stressés.

En résumé, voici les inconvénients des réseaux de type Serveur / Client.

  • Si le serveur tombe en panne, le réseau ne peut pas être maintenu et le service ne peut pas être utilisé.
  • Si les performances de traitement du serveur sont faibles, il n'est pas possible de fournir des services pesants.

Ceci est moins fiable car vous ne savez pas quand le serveur tombera en panne.

Le réseau P2P élimine ces deux inconvénients.

2-2.2 Réseau de type P2P

P2P.png

Le réseau de type P2P ressemble à la figure ci-dessus. Expliquons plus en détail.

Tout d'abord, dans un réseau P2P, il n'y a pas de rôle de serveur ou de client comme auparavant. ** À l'inverse, chaque ordinateur qui participe au réseau est à la fois un serveur et un client. ** **

Deuxièmement, chaque ordinateur a ses propres données et tout le monde gère ces données. Donc, ** Même si l'un de ces ordinateurs tombe en panne, le réseau peut être exploité et entretenu. ** Par conséquent, il est plus fiable que le réseau de type Serveur / Client.

En outre, tous les ordinateurs qui participent au réseau agissent comme des serveurs, de sorte que plus il y a d'ordinateurs qui participent au réseau, meilleures sont les performances de traitement du réseau ** dans son ensemble. ** **

Par conséquent, voici les avantages des réseaux de type P2P, et ils surmontent les inconvénients des réseaux de type Serveur / Client.

  • Le réseau peut être exploité et entretenu même si un ordinateur tombe en panne.
  • Les performances de traitement de l'ensemble du réseau sont très élevées

3. Explication détaillée

Ici, nous expliquerons BlockChain en détail.

ブロックチェーン.png

C'est difficile à comprendre même si on dit que la blockchain stocke des données comme le montre la figure ci-dessus. Je vais vous expliquer en détail. Je vais expliquer l'utilisation de Bitcoin comme exemple d'une manière facile à comprendre.

Tout d'abord, qu'est-ce qu'un bloc?

Un bloc est un ** certificat de données de transaction **. Par exemple, M. A a envoyé 1 Bitcoin à M. B. Cependant, comme expliqué précédemment, pour envoyer de l'argent, tous les participants doivent ** vérifier que la transaction est correcte **. Le certificat de vérification est un bloc. Cependant, ce certificat ne peut pas être facilement altéré. Il y a longtemps, M. A a envoyé 1 Bitcoin à M. B, mais cinq ans plus tard, M. A avait des problèmes avec l'argent, il a donc décidé de ne pas l'envoyer. Je vais. Ce serait difficile si vous pouviez faire ça (pas vraiment). Par conséquent, ce certificat (bloc) est enregistré afin qu'il ne puisse pas être altéré. Laissez-moi vous expliquer comment cela fonctionne.

Premièrement, il y a quatre éléments d'information dans le bloc. Il y en a quatre: ** valeur de hachage précédente **, ** horodatage **, ** nonce **, ** transaction **. Je vais expliquer chacun individuellement.

Le premier est l'horodatage. L'horodatage est l'heure à laquelle la transaction est vérifiée comme étant correcte. Cela garantit ** quand ** que cette transaction a été approuvée comme correcte.

Vient ensuite la transaction. Une transaction correspond aux données de la transaction réelle. [2-1](# 2-1. Crypto-monnaie et BlockChain) est une explosion bancaire. Ce sont des données de transaction.

Vient ensuite la valeur de hachage précédente. Nous développerons plus soigneusement d'ici. Voyons maintenant à quoi ressemble le bloc réel. (Ceci est un bloc, pas une chaîne. Une chaîne est une chaîne de blocs.)

ブロックの中身.png

Outre le contenu détaillé, la partie bleu clair est le nonce, la partie jaune-verte est la valeur de hachage précédente, la partie violette est l'horodatage et la partie rose est la transaction. Puisqu'il s'agit d'un bloc, il y a un tel bloc avant ce bloc (bien sûr, chaque numéro, etc. est différent). La valeur de hachage de l'ensemble du bloc précédent est ** la valeur de hachage du bloc précédent **. La raison pour laquelle la valeur de hachage du bloc précédent est incluse comme information du bloc suivant est ** parce qu'elle n'est pas falsifiée **. Si vous trafiquez le bloc précédent, les informations de la "valeur de hachage du bloc précédent" contenues dans le bloc suivant changeront, donc la valeur de hachage de la version hachée de ce bloc changera. (Voir la figure suivante)

ブロック改ざん.png

En d'autres termes, si vous trafiquez un bloc, tous les blocs suivants changeront. En conséquence, il n'est plus possible de ** réécrire (modifier) un seul bloc **.

Enfin, je vais vous expliquer le nonce. Un nonce est une ** réponse à une question **. Alors quel est le problème? Plus tôt, j'ai expliqué que la blockchain vérifie que la transaction est correcte lorsque tout le monde ajoute un nouveau bloc. Chez bitcoin, la méthode de vérification s'appelle ** Proof of Work ** (PoW). Nonce est la réponse de PoW. La preuve de travail n'est qu'une méthode de vérification en bitcoin, et il existe plusieurs autres méthodes de vérification. Par exemple, la devise Ripple utilise ** Proof of Consensus **, et NEM Coin utilise ** Proof of Importance **. (Pour plus de détails, recherchez «Liste d'algorithmes de consensus»)

Cette preuve de travail utilise ce qu'on appelle un nonce pour vérifier que ce bloc est correct. Premièrement, au moment où l'accord est conclu (au stade de la tentative d'ajout d'un bloc), le nonce n'est pas encore connu. Ce que nous savons, c'est la transaction (le contenu de la transaction) et la valeur de hachage du bloc précédent. On retrouve donc un nonce dont le résultat du calcul est dérivé à partir de deux informations connues (la valeur de hachage de la transaction et le bloc précédent) et un nonce tel qu'une variable que l'on ne connaît pas encore a une certaine valeur fixe. (Cela ressemble à une équation. C'est comme chercher un nonce qui donne transaction + prev_hash + nonce = Ans (Ans est une réponse fixe). Strictement différent, mais sensuellement le même, ce calcul Puisqu'il n'y a pas d'opération inverse dans la méthode, vous changez simplement la valeur nonce, et si elle correspond, cette valeur sera le nonce correct final.) La preuve de travail consiste à changer la valeur nonce et à trouver le nonce correct.

** Mining ** signifie émettre ** une nouvelle devise en Bitcoin **, et le mineur (mineur) qui a réussi la preuve de travail en premier recevra les pièces émises.

4. Mise en œuvre de BlockChain

Tout d'abord, le flux de mise en œuvre sera expliqué.

スクリーンショット 2019-12-11 23.44.45.png

Cette fois, je vais expliquer ①② dans la figure ci-dessus. Veuillez voir la vidéo d'Udemy pour la conversion API du serveur blockchain et la construction du réseau blockchain Cliquez ici pour la vidéo d'Udemy.

La création de blockchain et la création de portefeuille sont également expliquées ici pour seulement environ 20% du total, veuillez donc regarder la vidéo.

Tout d'abord, créez une classe blockchain qui sera un dessin de conception. Ensuite, nous mettrons en œuvre PoW, nonce et minage (c'est uniquement Bitcoin) qui composent la blockchain. C'est ①.

Ensuite, créez un portefeuille en ②. Un portefeuille est un portefeuille de monnaie virtuelle. C'est tout. Ici, nous allons générer une adresse blockchain qui identifie votre portefeuille personnel. Apprenez ensuite à signer et à certifier des transactions pour le trading de devises virtuelles.

4-1 Implémentation Blockchain

4-1.1 Créer une classe blockchain

Vous trouverez ci-dessous un schéma de conception approximatif de la blockchain.

La plupart des ** sender_blockchain_address ** et ** destinataire_blockchain_adress ** à venir sont des expéditeurs et des destinataires. Les variables qui identifient chacun.

Si vous avez lu les explications jusqu'à présent, il n'y a rien de particulièrement difficile, donc je pense que vous pouvez comprendre si vous le lisez comme un commentaire.

import hashlib
import json
import time
class BlockChain(object):

    def __init__(self, blockchain_address=None):
        self.transaction_pool = [] 	#Transactions qui n'ont pas encore été authentifiées
        self.chain = []	#Blockchain pour stocker les transactions authentifiées
        self.create_block(0, self.hash({})) 
        self.blockchain_address = blockchain_address
        
    #Méthode pour faire un bloc
    def create_block(self, nonce, previous_hash):		 
        """
Comment créer un nouveau bloc
        1.Liste des transactions incomplètes(transaction_pool)Obtenir les informations de blocage de
        2.Ajouter des blocs à la blockchain
        3.Vider les transactions inachevées
        """
        block = {
            'timestamp': time.time(), #Temps de négociation
            'transactions': self.transaction_pool, #Contenu de la transaction(Importer d'une liste de transactions non approuvées)
            'nonce': nonce, #Nonce
            'previous_hash': previous_hash #Valeur de hachage du bloc précédent
        }
        self.chain.append(block) #Ajouter à la blockchain
        self.transaction_pool = [] #Vider la liste des transactions non approuvées
        return block
  
    #Méthode pour trouver la valeur de hachage du bloc
    def hash(self, block):			
        return hashlib.sha256(json.dumps(block).encode()).hexdigest() #Renvoie la version hachée en hexadécimal
      
    #Méthode pour effectuer une nouvelle transaction
    #Faites une nouvelle affaire ici et la transaction est créée_Ajouté à la blockchain avec block
    def add_transaction(self, sender_blockchain_address,
                        recipient_blockchain_address, value,
                        sender_public_key=None):
        #Faire le contenu de la transaction
        transaction = {
            'sender_blockchain_address': sender_blockchain_address, #Qui a envoyé
            'recipient_blockchain_address': recipient_blockchain_address, #Qui a reçu
            'value': float(value) #valeur(Somme d'argent)Certains
        }
        #Ajouter à la liste des transactions non approuvées
        self.transaction_pool.append(transaction)
        return True

4-1.2 Mise en œuvre de PoW, nonce, exploitation

Comme expliqué précédemment, PoW (Proof of Work) utilise la valeur de hachage et le nonce de la transaction et du bloc précédent, et change le nonce jusqu'à ce qu'une certaine chaîne de caractères dérivée des trois devienne une valeur fixe. Je vais continuer.

#Une méthode pour vérifier si la valeur est une valeur fixe
def valid_proof(self, transactions, previous_hash, nonce,):
        guess_block = {
            'transactions': transactions,
            'nonce': nonce,
            'previous_hash': previous_hash
        }
        guess_hash = self.hash(guess_block)
      	#Renvoie vrai si les 3 caractères précédents sont 000, faux sinon
        return guess_hash[:3] == '0'*3

#Une méthode qui change constamment la valeur nonce jusqu'à ce qu'elle atteigne une valeur fixe
def proof_of_work(self):
        transactions = self.transaction_pool.copy()
        previous_hash = self.hash(self.chain[-1])
        nonce = 0
        #Continuez à changer la valeur nonce jusqu'à ce qu'elle atteigne la valeur fixe
        while self.valid_proof(transactions, previous_hash, nonce) is False:
            nonce += 1
        return nonce

Tout d'abord, dans la méthode valid_proof, en utilisant la transaction ** et la valeur de hachage et le nonce du bloc précédent décrit précédemment, il est vérifié si une certaine chaîne de caractères dérivée des trois devient une valeur fixe **. Je suis. guess_block est le bloc provisoire et guess_hash est sa valeur de hachage. guess_hash est une chaîne dérivée de trois. ** Bien sûr, il n'y a pas d'opération inverse car il est haché. ** **

guess_hash [: 3] signifie les 3 premiers caractères de la chaîne guess_hash. Par conséquent, cette fois, nous continuerons à changer la valeur nonce jusqu'à ce que les 3 caractères avant guess_hash deviennent 000.

Dans la méthode proof_of_work, la valeur nonce est modifiée jusqu'à ce que la valeur de retour de la méthode valid_proof devienne vraie. Le nonce commence à 0 et la valeur du nonce est incrémentée de +1 jusqu'à ce que la réponse soit atteinte. La méthode valid_proof et la méthode proof_of_work sont deux et un.

Ensuite, je vais expliquer à propos de minig. Comme expliqué précédemment, l'exploitation minière consiste à ** émettre une nouvelle devise en Bitcoin **. La condition pour émettre la nouvelle monnaie est la personne qui a réussi le PoW.

#La devise qui peut être reçue comme récompense pour l'exploitation minière est l'expéditeur(sender)Parce qu'il n'y a pas
 MINING_SENDER =  'THIS IS MINING SENDER' 
#Décidez d'une récompense minière
 MINING_REWAES = 1
#Méthode d'exploitation
 def mining(self):
    	#Les récompenses obtenues grâce au minage sont également des transactions, alors ajoutez-les à la liste des transactions non approuvées.
       	self.add_transaction(
            sender_blockchain_address=MINING_SENDER,
            recipient_blockchain_address=self.blockchain_address,
            value=MINING_REWARD)
        nonce = self.proof_of_work()
        previous_hash = self.hash(self.chain[-1]) #Hash le bloc précédent
        #Créer un bloc en utilisant le nonce et la valeur de hachage du bloc précédent
        self.create_block(nonce, previous_hash) 
        return True

Comme vous pouvez le voir dans le programme ci-dessus, nous envoyons simplement MINING_REWAES à l'adresse PoW. Pour le moment, la source de remise est MINING_SENDER, car il n'y a pas de source de remise lors de l'émission d'une nouvelle devise dans le secteur minier.

Il ne reste plus qu'à enregistrer la transaction sous forme de bloc.

4-2. Créer un portefeuille

Le portefeuille n'est pas spécifiquement lié à la blockchain, il agit simplement comme un ** portefeuille en monnaie virtuelle **, nous ne parlerons donc que de la signature et de la certification des transactions.

Examinons maintenant de plus près les adresses de la blockchain. Tout d'abord, toutes les personnes impliquées dans la blockchain ont une ** clé publique ** et une ** clé privée **. La clé publique et la clé privée sont un mécanisme de cryptage (veuillez gg pour plus de détails). Puisque l'individu est identifié par cette clé publique et cette clé privée, l'identification que la transaction de monnaie virtuelle a été envoyée à qui à qui peut être sauvegardée par cette chaîne de caractères de clé publique et de clé privée. Cependant, la clé publique et les chaînes de clé privée sont des chaînes très longues, et le stockage de cette longue chaîne pour chaque transaction exercerait une pression considérable sur la capacité de la blockchain en tant que base de données. Ce serait donc bien s'il y avait quelque chose comme une adresse qui pourrait identifier un individu avec une chaîne plus courte. C'est l'adresse de la blockchain. Cette adresse blockchain est générée à partir des clés publiques et privées. Le mécanisme est compliqué et je ne le comprends pas (état presque copier-coller), donc si vous voulez savoir comment générer une blockchain, veuillez suivre le cours Udemy.

4-2.1 Signature et certification des transactions

La signature et la preuve de transaction sont une preuve que lorsqu'un portefeuille envoie une transaction à un ordinateur qui compose le P2P, elle ** est réellement envoyée par cette personne **. Cela signifie qu'il serait exact que M. A envoie l'information «M. A enverra 100 yens à M. B», mais ce serait une erreur si M. C l'envoyait. Cela le prouve. Pour le prouver, nous enverrons la ** clé publique de A **, la ** transaction ** et la ** signature ** sous forme d'ensemble. La signature est une chaîne générée à partir de la clé privée et de la transaction. Créer une Sinature et envoyer une clé publique, une transaction et une signature s'appelle ** signature **. Ensuite, recevoir la clé publique, la transaction et la signature et vérifier leur exactitude s'appelle ** certification **.

class Transaction(object):

    def __init__(self, sender_private_key, sender_public_key,
                 sender_blockchain_address, recipient_blockchain_address,
                 value):
        self.sender_private_key = sender_private_key
        self.sender_public_key = sender_public_key
        self.sender_blockchain_address = sender_blockchain_address
        self.recipient_blockchain_address = recipient_blockchain_address
        self.value = value

    def generate_signature(self):
        sha256 = hashlib.sha256() #utiliser sha256
        #Effectuer une transaction
        transaction ={ 
            'sender_blockchain_address': self.sender_blockchain_address,
            'recipient_blockchain_address': self.recipient_blockchain_address,
            'value': float(self.value)
        }
        sha256.update(str(transaction).encode('utf-8'))
        message = sha256.digest()
        private_key = SigningKey.from_string(
            bytes().fromhex(self.sender_private_key), curve=NIST256p)
        private_key_sign = private_key.sign(message)
        signature= private_key_sign.hex()
        return signature

↑ Programme de signature


def verify_transaction_signature(
            self, sender_public_key, signature, transaction):
        sha256 = hashlib.sha256()
        sha256.update(str(transaction).encode('utf-8'))
        message = sha256.digest()
        signature_bytes = bytes().fromhex(signature)
        verifying_key = VerifyingKey.from_string(
            bytes().fromhex(sender_public_key), curve=NIST256p)
        verified_key = verifying_key.verify(signature_bytes, message)
        return verified_key

↑ Programme de preuve

5. Position future de BlockChain

Après avoir appris la blockchain, vous comprendrez pourquoi vous avez besoin de cette technologie.

5-1. Avantages et inconvénients de la blockchain

Comme tous ceux qui ont lu l'article jusqu'à présent le comprendront, revoyons les avantages et les inconvénients de la blockchain.

Il y avait un article écrit plus en détail, donc je pense que vous devriez le lire. Cliquez ici pour l'article

Le premier avantage est qu'il est ** décentralisé **. En joignant votre ordinateur au réseau blockchain, vous n'avez pas à concentrer vos données et votre puissance en un seul endroit. Facebook a toutes les données, tout comme la concentration du pouvoir. Le pouvoir est distribué en gérant les données ensemble.

La prochaine étape consiste à créer un ** réseau de confiance **. Puisque nous construisons un réseau avec de nombreux ordinateurs, le taux de maintenance et les performances seront plus élevés que la construction d'un réseau avec un ordinateur.

Et cela signifie qu'il ne peut pas être falsifié **. C'est parce que le bloc contient un hachage du bloc précédent.

Tout d'abord, l'inconvénient est que la consommation d'énergie côté utilisateur est importante. Puisque PoW continue de calculer, la consommation d'énergie augmentera. Par conséquent, dans l'exploitation minière de Bitcoin, il semble qu'il n'y ait pas beaucoup de nouveaux participants car le coût de l'électricité pour l'exploitation minière n'est pas à la mesure des récompenses reçues de l'exploitation minière.

Vous pouvez également les empêcher de dupliquer quoi que ce soit. Je pense que la valeur de la technologie qui ne peut pas être dupliquée ne sera créée qu'à l'ère où tout peut être dupliqué par un ordinateur.

5-2. Exemple commercial de blockchain

Je voudrais vous présenter une entreprise que j'ai personnellement trouvée intéressante.

1.Bitcoin Eh bien, c'est une monnaie virtuelle que tout le monde connaît. Je n'expliquerai pas en particulier. Bitcoin.org

2.bPassport Bitflyer gère les informations personnelles en cours de développement. Récemment, l'achat et la vente non autorisés d'informations personnelles entre entreprises sont devenus un problème, il est donc important que les individus puissent choisir fermement à quelle entreprise fournir des informations personnelles. https://crypto.watch.impress.co.jp/docs/event/1210425.html

3.Verisart veriart aide à faire la distinction entre faux et authentique en stockant les données d'image de l'œuvre d'art sur la blockchain. J'ai trouvé très intéressant que l'art et la technologie soient connectés. https://verisart.com

etc J'ai trouvé un lien cohérent, je vais donc le présenter. https://innovation.mufg.jp/detail/id=322

6. Enfin

Dans les références, je présenterai des livres et des articles qui ne sont pas directement liés à cet article mais qui ont été très utiles dans mon étude.

6-1. Merci

Je suis content de pleurer si vous aimez que cela me motive !!

6-2. Références

Les documents suivants ont été très utiles et seront présentés.

  • Peaks: Cryptocurrency Created from Zero * Nous expliquerons en profondeur la blockchain, la méthode de cryptage à clé publique et le réseau P2P dans un format interactif, et implémenterons une crypto-monnaie appelée SimpleBitCoin à partir de zéro. Enfin, nous examinerons les problèmes de la crypto-monnaie et considérerons les destinations de l'application. Pour ceux qui ont l'habitude de développer avec Python.

  • [Udemy: Une introduction au développement de la blockchain à partir de zéro en commençant par Python enseignée par un ingénieur actif de la Silicon Valley](https://www.udemy.com/share/1021OSAkIbdVdQQXo= /) * Implémentez une crypto-monnaie simple pour quiconque comprend la grammaire de base Python. Si vous voulez comprendre BlockChain, ce cours est le plus rapide.

Contenu du cours Comprenez le fonctionnement de la blockchain. Apprenez le développement de base de la blockchain en utilisant Python Comprendre l'authentification des transactions par blockchain. Vous pouvez créer un mécanisme de hachage qui connecte les blockchains. Comprendre l'algorithme de consensus qui dérive des nonces dans le minage de blockchain Comprendre le fonctionnement de la formation de consensus décentralisé blockchain. Comprendre comment la monnaie virtuelle est envoyée et reçue.

Recommended Posts