ビットコイン

ビットコイン

貨幣の代替の意味では腐った仕組みだと思うが、技術的に興味はあるのでまとめる。

構成要素として

  • 全取引履歴(世界中に分散保存されている全取引履歴)
  • ユーザー(ビットコインを移動させたい人)
  • マイニング(ビットコインの移動処理)

の3つがある?

送金する

A さんから B さんに送金するとする。

AさんはBさんのビットコインアドレスをBさんから聞く(別に公開情報なので入手の方法はどうでもよい)。

A さんは A さんのビットコインアドレス(自分だから当然知っている)から B さんのビットコインアドレスへいくら送るという指定をビットコインネットワークへ流す。 この際にこの取引情報をAさんの秘密鍵で電子署名する。つまりこの取引情報は世界中でAさんにしか作れないし、それをAさんの公開鍵で開ければ世界中の人がそれはAさん起点の取引だとわかる。 Aさんのビットコインが減ってBさんのコインが増える取引なのでAさんの正当性が必要なのは当然。

ネットワークへ流された取引情報はネットワーク全体で共有され検証される。 Aさんの公開鍵で開くことができるのでそれはAさんの正しい取引だとわかる。 ネットワーク上には取引の全履歴があるので、当然今までの、Aさんの履歴を見ることができる。 Aさんが所有している残高がわかるので、この取引きが成立できるのかもわかる。(履歴の正当性の検証は後述) Bさんのアドレスがあるのでその存在も確認できる。 この取引は実行してOKであると判断される。(それも複数で)

取引するとは、つまり取引履歴に新しく書き込むということになる。

簡単に書き込むことはできない。

今までの取引情報のダイジェスト値に対してナンスという修正値を加えて、そこから生成される値が決められた条件に合致しなければならない(冒頭にゼロが連続する等)。 元のダイジェスト値とノンスがわかれば生成される値は一発でわかるが、生成される値から合致するナンスを発見することは数学的に困難。

なので、世界中のコンピュータで分散し、この問題のノンスを力技で発見することとになる。

該当ノンスが発見されたら、それをネットワークでさらに分散して、そのノンスが確かに正しいものかを検証する。 これにより検証結果が検証される。

これにより、履歴追記処理が行われ、データ上ビットコインが移動したことになる。

追記処理された履歴はさらにネットワーク上に分散共有され次の取引に備える。

疑問

2つのアドレス間を単にいったりきたりするだけの場合はどうなるのか? 価値とその仕組みの間に関係が無いので、これだと単にパワーを消費(させる)するだけでは? そもそも効率が悪いことを意味としているので、気にならないのかもしれんが

このマイニング処理で得られたビットコインはどのように履歴に追記されるのか? この追記にマイニングが必要なら無限にマイニングが発生するんだと思うが?

取引に対して、取引手数料というのがマイナーに支払われるらしいが、 この報酬はなんなのか?ビットコインの仕組みの一つなのか?それとも外部の仕組みなのか? ビットコインの仕組みの一つならその報酬はどこに分割されるのか?勝者総取り? そしてその報酬がビットコインならば、その報酬支払いの取引の検証は誰がやるのか?マイニングの無限連鎖になるのではないのか?

memo

とりあえずまとめていく

コインの実体

コインの実体は無く、世界中のコンピュータに分散保存されている取引の全履歴がビットコインといえばビットコインとなる。

分散することによって、障害耐性を持ち、数学的に改ざん困難にすることで価値を保存し、オープンにすることで検証が容易になっている。

どのアドレスから、どのアドレスにいくらというのが全部記録される。

ビットコインアドレス

銀行に例えると、口座番号みたいなもの・・・らしい

ビットコインで相手に送りたい場合、このアドレスを指定して処理をする。

27 ~ 34 の自分の「公開鍵」のダイジェスト値

秘密鍵を持っているのでこの「口座?」を開ける?

電子署名

秘密鍵でなんらかのデータを鍵を掛けること。 これが公開鍵で開けられるならそのデータの所有や決定に対して権利を持つことが証明される。

bitcoin/start.txt · 最終更新: 2021-03-31 18:44 by ore