1.walletがトランザクションを発行し、参加者全員にブロードキャスト
2.受け取った承認者がハッシュ計算。先に見つけたブロックがブロックチェーンに追加
3.walletが別のトランザクションを発行し、全員にブロードキャスト
4.受けっとた承認者がハッシュ計算。複数のノードが同時に見つけた場合はブロックチェーンは分岐する
5.次に別のノードがブロックを追記した時、追記されたブロックチェーンが正となる
Byzantine Faultに対応
参加サーバはローカル通信のみでよい
多数決の代わりとなるのはCPU演算力
電気代が安い地域に集中する懸念がある
from random import randint from hashlib import sha256 previous_hash = "****" cnt = 1 nonce = str(randint(0, 1000000)) header = sha256(f'{previous_hash}{nonce}'.encode()).hexdigest() while header[:4] != "0000": text = 'loop:{}, header:{}, header[:4], nonce:{}\n' print(text.format(cnt, header, header[:4], nonce)) nonce = str(randint(0, 1000000)) header = sha256(f'{previous_hash}{nonce}'.encode()).hexdigest() cnt += 1 text = 'loop:{}, header:{}, header[:4]:{}, nonce:{}' print(text.format(cnt, header, header[:4], nonce))