Proof of work

提供: tezos-wiki
移動先: 案内検索

「仕事の証明」は、生産するのが難しい(費用がかかり、時間がかかる)データであり、他の人が検証することが容易であり、特定の要件を満たすデータです。仕事の証拠を作成することは確率の低いランダムなプロセスになる可能性があるので、有効な証拠が生成される前に多くの試行錯誤が平均的に必要となります。 BitcoinはHashcash作業証明システムを使用しています。

このアイデアの1つのアプリケーションは、電子メールの迷惑メールを防ぐ方法としてHashcashを使用し、すべての電子メールで電子メールの内容(Toアドレスを含む)に関する作業の証明が必要です。合法的な電子メールは証明書を簡単に生成する作業を行うことができます(単一の電子メールにはあま​​り必要な作業は必要ありません)。しかし、大量のスパムメール作成者は、必要な証明書を生成するのが難しくなります。

Bitcoinでは、ブロック生成のためにハッシュキャッシュの証明が使用されています。ネットワーク参加者がブロックを受け入れるには、鉱夫はブロック内のすべてのデータをカバーする作業証明書を記入する必要があります。この作業の[難しさ]は、新しいブロックがネットワークによって生成される速度を10分ごとに1つに制限するように調整されます。成功した生成の可能性が非常に低いため、ネットワーク内のどのワーカーコンピュータが次のブロックを生成できるかは予測できません。

ブロックを有効にするには、現在のtargetよりも小さい値にハッシュする必要があります。これは、各ブロックが、それが生成されたことを示すことを意味します。各ブロックには前のブロックのハッシュが含まれているため、各ブロックには大量の作業をまとめたブロックの連鎖があります。ブロックを変更する(同じ前任者を含む新しいブロックを作成することによってのみ行うことができます)には、すべての後継者を再生成し、それらに含まれる作業をやり直す必要があります。これにより、ブロックチェーンの改ざんを防ぎます。

最も広く使用されている作業証明方式は、SHA-256に基づいており、[Bitcoin]の一部として導入されました。作業証明に使用される他のハッシングアルゴリズムには、Scrypt256CryptoNightHEFTY1Quark/ wiki / SHA-3 SHA-3scrypt-jane、scrypt-n、およびそれらの組み合わせ。

[編集]

私たちが作業する基本文字列が "Hello、world!"だとしましょう。私たちの目標は、SHA-256が '000'で始まる値にハッシュするバリエーションを見つけることです。我々は、nonceと呼ばれる最後に整数値を加え、毎回インクリメントすることによって文字列を変えます。 「こんにちは、世界!」の試合を見つける4251回試行します(ただし、最初の4桁の数字はゼロになります)。

 "こんにちは、世界!0" => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64  "こんにちは、世界!1" => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8  "こんにちは、世界!2" => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7  ...  "こんにちは、世界!4248" => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965  "こんにちは、世界!4249" => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6  "こんにちは、世界!4250" => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9

現代のコンピュータ上で4251ハッシュはそれほど多くの仕事(ほとんどのコンピュータは毎秒少なくとも400万ハッシュを達成することができます)ではありません。 Bitcoinは、ほぼ一定のブロック生成率を維持するために難しさ(したがってブロックを生成するために必要な作業量)を自動的に変更します。

Bitcoinでは、特にヘッダーにインクルードされたtransactionsに依存する Merkle treeが含まれているので、少し複雑です。これには世代交替、つまり自分のアドレスに「どこからでも」のトランザクションが含まれます。このトランザクションは、鉱夫に作業のインセンティブを与えるだけでなく、すべての鉱夫がユニークなデータセットをハッシュすることも保証します。

アルゴリズムリスト[編集]

伝統的な仕事の証明[編集]

#二重反復SHA256を使用した#hashcash #scrypt内部ハッシュを持つhashcash #Momentum誕生日の衝突 #鳩のサイクル証明書https://github.com/tromp/cuckoo #仕事関数のさまざまな他の証明(例えば、Ethereumにはいくつかの候補がありました)

Xの証明[編集]

ステークの証拠バーンの証拠

合意[編集]

Stellar Consensus Protocol

Category:Vocabulary Category:Proof-of-x Category:技術