不可逆性
取引データ(履歴)である「トランザクション」は、「何月何日にAからBに○○BTCを送金した」というようなデータが記録され、これが「ブロック」になります。このデータについてはオープン化されているので、誰でも確認ができます。
しかし、トランザクションの「具体的な取引内容」については、ハッシュ関数によって暗号化されるという大きな特徴があります。ハッシュ関数というのは、元になるデータから一定の文字数の不規則な文字列(ハッシュ値)を生成する関数で、同一のデータであれば同じハッシュ値が生成されるのですが、少しでも異なる場合は全く異なるハッシュ値が生成されるのです。
生成された文字列から、元のデータを読み取ることもできません。つまり「不可逆性」を持っているわけで、これが大きな特徴なのです。
ブロックデータには、ハッシュ関数で暗号化されたトランザクションと、直前ブロックデータのハッシュ値が含まれます。直前のハッシュ値と、特別な数字「ナンス値」を見つけ出すことによって整合性が得られ、ブロックがブロックチェーンへ新たに追加される工程を「承認」といいます。
ハッシュ値によって暗号化されているので、取引の「履歴」として記録されても、「内容詳細」は確認できないので安心です。新たにブロックを追加する際は、直前のブロックのハッシュ値と、次のブロックに含まれるトランザクションと「ナンス値」をハッシュ関数によって暗号化します。この整合性を確認して「承認」するには膨大な計算が必要で、「マイニング」といいます。
ビットコインの発行総量は事前に決められていて、2140年までに2,100万BTC(上限数)に達すると想定されています。「マイニング」というブロックチェーンが生まれる仕組みは、ビットコインの急激な増減が起きないように調整しているわけです。ブロックチェーンは、まだ活用されはじめた初期段階の技術ですから、処理速度などの課題が残っています。