本ページはプロモーションが含まれています
ビットコインは通貨として認識されておりますがその仕組みは初心者にとって難解なものです。しかし仕組みを学ぶと自然とビットコインに対しての理解が深まり、利用するにも投資するにもとても有益なものになります。今回は「ビットコインアドレス」が作成されるまでの仕組みを初心者向けに解説していきます。
ビットコインアドレスとは
ビットコインアドレスとはビットコインの口座を指します。まずビットコインは暗号技術によって「秘密鍵」と「公開鍵」が作成されます。秘密鍵はビットコインを送金する際の電子署名をする暗号として、そして「公開鍵」はビットコインを紐づけておき公開鍵保有者のビットコイン残高を示してくれます。
ビットコインシステムではまず「秘密鍵」が作成され、「秘密鍵」から「公開鍵」は作成されます。そして「公開鍵」からビットコインアドレスが作成される、という順番になります。
ビットコインアドレスが秘密鍵からどのようにして作成されていくのか、順を追って解説をしていきます。
スポンサー
秘密鍵の作成
まず、秘密鍵が作成される手順です。秘密鍵はランダムな文字列をある関数に通すことによって作成されます。この最初のランダムな文字列は「ノンス(ナンス)」と呼ばれます。(よく出てくる単語「ノンス」とは)
秘密鍵、公開鍵、ビットコインアドレスの元になるのはこの「ノンス」という文字列です。このノンスを生成することによってビットコインの「鍵」は作られます。そしてノンスを「ハッシュ関数」に通す事で「秘密鍵」は作られるのです。ですのでビットコインウォレットを作るサイト(例えばbitaddressなど)ではまずランダムな文字列であるノンスを作成するところから始まります。
ランダムな文字列、ノンスを生成する事のできるシステムは「乱数生成器」と呼ばれます。登録制のログインができるショッピングサイト等でパスワードを設定する際に「ランダムに作成する」というボタンがあったりしますがそれは「乱数生成器」によってノンスを作成しているのです。これと同様のシステムがビットコインウォレットの最初の段階で取り入れられているのです。
そしてハッシュ関数は「一方向性」のある関数なので秘密鍵からノンスを割り出す事はできません。ノンスから秘密鍵を作る事はできても、秘密鍵からノンスは分かり得ないのです。(ハッシュ関数って何?)
公開鍵の作成
ナンスをハッシュ関数に通すことによって「秘密鍵」が作成されたら秘密鍵を用いて「公開鍵」を作成します。公開鍵を秘密鍵から作る際にもある演算を利用します。ハッシュ関数を利用するわけではありませんが異なる一方向性のある演算です。ここでポイントは「公開鍵」から「秘密鍵」を割り出せない、という事です。「公開鍵」はその名の通り「公開される」鍵なのでここから「秘密鍵」を割り出せてしまえば元も子もありません。
この一方向性によりビットコインのセキュリティは確保されているのです。
ビットコインアドレスの作成
公開鍵が作成されたらビットコインアドレスが作成されます。ビットコインアドレスは公開鍵をハッシュ関数に通したものです。公開鍵は既にビットコインを保有している残高を示してくれているのですがその文字列が長く、扱いずらいので公開鍵を短くしてビットコインを作成します。
一方向性のあるハッシュ関数が利用されているのでビットコインアドレスから公開鍵を導くことはできません。しかしビットコインを送金する際には公開鍵が必要なので公開鍵もビットコインアドレスと合わせて公開されることになります。
ビットコインを送金する際に初めて公開鍵は公開されるので、送金をしていないビットコインアドレスは最もセキュリティ上安全だと言えます。仮にビットコインアドレスが分かっても公開鍵を導くことは困難ですし、公開鍵が分かっても秘密鍵までさらにまた導かなくてはなりません。
コールドウォレット(オフラインのウォレット)で、一度も送金に利用していなければそれはかなりセキュリティの高いウォレットとなるのです。
まとめ
ビットコインアドレスが作成されるまでの仕組みは以上です。ビットコインを利用する際はそこまで必要になる知識ではありませんが、ビットコインをより安全に利用する為にはあった方がいい知識です。
例えばノンスを作成する時にウォレットサービス(秘密鍵を作成し、自分で管理するタイプのウォレットサービス)が正確にランダムな文字列を与えているか、という事を調べる事はとても大切なことです。また多額のビットコインであればどういったウォレットで、それも利用していないウォレットに入れておくことがどれだけセキュリティを高めるのか等を知ることができます。
このようにビットコインを扱う際には知識をしっかりとつける事がリスク対策に繋がっていくのです。
関連記事
スポンサー