読者です 読者をやめる 読者になる 読者になる

ブロックチェーンとは (bitcoin wiki 和訳)

ブロックチェーンとはbitcoin wikiの文章を和訳してみる。
誤訳等指摘いただければ喜びます
Block chain - Bitcoin Wiki

A block chain is a transaction database shared by all nodes participating in a system based on the Bitcoin protocol. A full copy of a currency's block chain contains every transaction ever executed in the currency. With this information, one can find out how much value belonged to each address at any point in history.

ブロックチェーンとはBitcoinプロトコルに則ってシステムに参加しているすべてのノードの間でシェアされている取引(transaction)のデータベースである。ある通貨のブロックチェーンのフルコピーは、その通貨において今までに行われたすべての取引を含んでいる。この情報から、それぞれのアドレスが、歴史上の任意の時点においてどれだけの価値を持っているかを各自が見出すことができる。

Every block contains a hash of the previous block. This has the effect of creating a chain of blocks from the genesis block to the current block. Each block is guaranteed to come after the previous block chronologically because the previous block's hash would otherwise not be known. Each block is also computationally impractical to modify once it has been in the chain for a while because every block after it would also have to be regenerated. These properties are what make double-spending of bitcoins very difficult. The block chain is the main innovation of Bitcoin.

それぞれのブロックは前のブロックのハッシュを含んでいる。これは原初のブロック(the genesis block)から現在のブロックまでを一つのブロックの連なり(a chain of blocks)にする効果を持っている。それぞれのブロックは時系列的に前のブロックの後ろにくることが保証されている、というのはもしそうでなければ前のブロックのハッシュが知られることができないからである。また、それぞれのブロックは一度チェーンに含まれてしばらくすると改変することは、その後のそれぞれのブロックを再生成しなければならないため計算量的に実行不可能である。これらの性質によりBitcoinの多重利用(double spending)はとても難しいものとなる。ブロックチェーンはBitcoinの主たるイノベーションである。


Honest generators only build onto a block (by referencing it in blocks they create) if it is the latest block in the longest valid chain. "Length" is calculated as total combined difficulty of that chain, not number of blocks, though this distinction is only important in the context of a few potential attacks. A chain is valid if all of the blocks and transactions within it are valid, and only if it starts with the genesis block.

もしそれが最長のValidなチェーンの最新のブロックである場合、正直な生成者達はブロックの上に(それを彼らが生成するブロックの中で参照しながら)構築するのみである。「長さ」はブロックの数ではなく、チェーンの難しさの総和として計算されるが、この区別はいくつかの潜在的な攻撃の文脈においてのみ重要になるものである。あるチェーンは、それに含まれるすべてのブロックと取引が有効であり、原初のブロックから始まっている場合においてのみ有効である。

For any block on the chain, there is only one path to the genesis block. Coming from the genesis block, however, there can be forks. One-block forks are created from time to time when two blocks are created just a few seconds apart. When that happens, generating nodes build onto whichever one of the blocks they received first. Whichever block ends up being included in the next block becomes part of the main chain because that chain is longer. More serious forks have occurred after fixing bugs that required backward-incompatible changes.

チェーン上のどのブロックにも、原初のブロックに至るたった一つのパスがある。しかしながら、原初のブロックから来るときには分岐が存在しうる。2つのブロックがほんの数秒の違いで生成されたときに、一つのブロック分岐が生まれることが時々ある。これが起きたときには、ノードはどちらでも先に受信した方のブロックの上に構築を行う。次のブロックに含まれるブロックはそれがより長くなるため結局はメインチェーンの一部となる。後方互換性の無い変更が必要なバグの修正後により深刻なフォークが起こったこともある。


Blocks in shorter chains (or invalid chains) are not used for anything. When the bitcoin client switches to another, longer chain, all valid transactions of the blocks inside the shorter chain are re-added to the pool of queued transactions and will be included in another block. The reward for the blocks on the shorter chain will not be present in the longest chain, so they will be practically lost, which is why a network-enforced 100-block maturation time for generations exists.

短い方のチェーン(もしくは無効なチェーン)に含まれるブロックは何にも用いられない。Bitcoinクライアントが他のより長いチェーンに切り替わった場合、短い方のチェーン内のすべての有効な取引のブロックはキューに積まれた取引のプールに再度追加され、他のブロックに組み込まれることとなる。短い方のチェーンへの報酬は最長のチェーンにおいては贈呈されないため、それらは事実上失われる。これが、生成に対してネットワークにより強制された100ブロックの熟成期間が存在する理由である。

These blocks on the shorter chains are often called "orphan" blocks. This is because the generation transactions do not have a parent block in the longest chain, so these generation transactions show up as orphan in the listtransactions RPC call. Several pools have misinterpreted these messages and started calling their blocks "orphans". In reality, these blocks have a parent block, and might even have children.

短いチェーン上のこれらのブロックはしばしば「孤児」(orphan) ブロックと呼ばれる。これはその生成取引(?: 原文 the generation transactions )が最長ブロックにおいて親ブロックを持っておらず、そのためこれらの生成取引はlisttransaction RPCコールにおいて孤児となって現れる。幾つかのプールはこれらのメッセージを誤解して、これらのブロックを「孤児」と呼び始める。実際にはこれらのブロックは親ブロックを持っており、子供さえ持っているかもしれないのだ。

Because a block can only reference one previous block, it is impossible for two forked chains to merge.

ブロックは前のブロック一つを参照することしかできないため、二つの分岐したチェーンをマージすることは不可能である。

It's possible to use the block chain algorithm for non-financial purposes: see Alternative chain.

ブロックチェーンアルゴリズムを金融ではない目的に使うことは可能である:Alternative chain を見よ

The block chain is broadcast to all nodes on the networking using a flood protocol: see Block chain download.

ブロックチェーンはfloodプロトコルを使ってネットワーク上のすべてのノードにブロードキャストされる: Block chain download を見よ

ーーー
この文書のライセンスは
http://creativecommons.org/licenses/by/3.0/