
この連載は、ブロックチェーン素人の私が無謀にもサトシナカモトの論文を読んでみようという見切り発車な企画です笑
さて、前回に引き続いてサトシナカモトのビットコインの論文を読み進めていきましょう!
まだ前回の記事を読んでいない方はこちら!
英語原著論文はこちら
1) Bitcoin: A Peer-to-Peer Electronic Cash System - Bitcoin.org
日本語訳はこちら
2) 日本語で読むビットコイン原論文 [by Satoshi Nakamoto]
論文解説サイトはこちら
3) http://kogarashi.net/pitchblende/bitcoinwhitepaper
では、まずは2、取引のチャプターから!
2. 取引
一つの電子コインは、連続するデジタル署名のチェーンと定義される。電子コインの各所有者は、 直前の取引のハッシュと次の所有者のパブリック・キー(公開鍵)をデジタル署名でコインの最後 に加えることにより、電子コインを次の所有者に転送する。受取人は一連の署名を検証すること で、過去の所有権を検証できる。
無論、問題は受取人には過去の所有者がコインを二重使用していないことを検証できないことに ある。一般的な解決法は信用のおける中央機関もしくは造幣局を間に入れ、全取引を監視させる ことである。取引の度にコインは造幣局に戻され、新しいコインが発行され、造幣局から新しく発 行されたこのコインのみが二重使用されていないものとして信用される。この解決法の問題は、全 取引が造幣局を通じて行われるため、銀行と同様に造幣局を運営している企業に、金融システム 全ての運命が左右されることである。必要なのは、コインの受取人に今までの所有者らが二重署 名していないことを知らせる方法である。この目的においては、最初の取引だけが論点であるの で、後の二重支払いの試みについては関係のないものとする。取引がなかったことを明確にする には全取引を監視する必要がある。造幣局モデルでは造幣局が全取引を監視し取引の順番を決 定していた。これを第三者機関なしに行うには、取引が公開され、参加者たちが受け取った順番 の唯一の取引履歴に合意することのできるシステムが必要となる。受取人は取引毎に、取引が行われた時点で大多数のノードがそのコインが初めて使用されたことに賛同したという証明を必要と する。
2)より引用
3)より引用
デジタル署名の履歴そのものをコインとするというのは前回の記事でご紹介しました。
しかしながら、なんだかよくわからないですね、、、
ここでは3つの聞きなれない単語が出てきました。
です。ひとつひとつ確認していきましょう!
「xが分かればf(x)は簡単に求められるが、yが分かってもf(x)=yとなるxを求めるのは非常に難しい」ような関数f
3)より引用
をもちいて今までの取引履歴のデータを小さくしたもののことです。
ハッシュ化すると、情報自体を圧倒的に減らすことができます。
デジタル署名そのものをコインと定義するならば、コインというのは過去の取引データ全てにあたりますので、そのデータを毎回やりとりしていては容量が重すぎます。
なのでハッシュ化して情報量を減らす必要があるということですね。
そして、元のデータが少しでも改ざんされると、ハッシュ値が全然違う値になる性質があるので、改ざんしずらいという特徴があるそうです!
公開鍵と秘密鍵というのは対になる2つの鍵を利用してデータの暗号化と復号を行う暗号方式です。
ビットコインにおいては「公開鍵=アドレス」、「秘密鍵=暗証番号」という位置付けで使われています。
AさんからBさんにコインを送る際、送金情報(送信するビットコイン、Bさんのアドレス等の情報)をAさんしか知り得ないAさんの秘密鍵を用いてデータ変換します。
これをデジタル署名と言います。
そのデジタル署名を他の人が、Aさんの公開鍵で正しく復号できれば、確実にAさんがBさんに送金したということが確認できるわけです。
3)より引用
つまり、利用者1→利用者2に送金する場合(図の真ん中)を例にとって考えてみると、
利用者1までの「デジタル署名の履歴」(=コインそのもの。左側のボックス)に、次の利用者2の公開鍵(アドレス)の情報を加えてハッシュ化し、利用者1の秘密鍵(暗証番号)で署名する。
そして受け取った利用者2は、利用者1の公開鍵(アドレス)で検証して、ハッシュ値が再現できれば、間違いなく送金を確認することができます。
なんとなくわかった気がするぞ!
次のチャプターに行ってみましょう!
3. タイムスタンプ・サーバー
提案する解決法は、まずタイムスタンプ・サーバーから始まる。タイムスタンプ・サーバーは、タイ ムスタンプされる複数アイテムを含むデータブロックをハッシュとして処理し、そのハッシュを新聞 や Usenet ポスト[2-5]のように広範囲に公開する。タイムスタンプにより、そのデータがタイムスタ ンプされた時点でハッシュとなるために存在していたことが証明される。各タイムスタンプはそのハ
ッシュの中に直前のタイムスタンプを含んでいくことでチェーンを形成し、タイムスタンプが増える たびに以前のタイムスタンプを強化していく。
2)より引用
3)より引用
という単語が出てきましたね。
タイムスタンプとはなんでしょうか?
ビットコインでは一つのブロックを形成するのに10分かかります。
その10分間に行われた全取引データのハッシュを作成し、時間経過に沿って、チェーンのように連ねていきます。
これによってある時間帯にある取引が行われたことが明確に証明されるとのことです。
そして、時間が経てば経つほどチェーンが連なっていくので、過去の取引を改ざんしようと思ったらその後のブロックのハッシュが全て狂い、全てを計算し直さなければならなくなり、事実上不可能になるということです。
んー、、わかったようなわからないような笑
とりあえず今回はこれくらいにしておきましょう!
読み進めていけばさらに理解が深まるかもしれません!
ではこの続きはまた次の投稿で!
イイね!お待ちしています!










