タグ: "仕組み"

Lightning&Raiden ビットコインとイーサリアムのオフチェーン技術とは?

Lightning&Raiden ビットコインとイーサリアムのオフチェーン技術とは?

2018/02/10 at 3:28 PM 0 comments
  スケーラビリティ問題 ビットコインやイーサリアムを始めとした仮想通貨は近年非常に注目されており、利用者は急激に増加しています。そこで問題になるのが利用者の増加にシステムが追いつかなくなり送金・着金に非常に長い時間がかかってしまう「詰まり」と呼ばれる現象です。 本メディアでは過去の記事で、この「詰まり」がなぜ発生してしまうのか解説しています。これの問題はスケーラビリティ問題と呼ばれており、これを解決する有力な方法の一つとして、ステートチャネルを利用したオフチェーン処理が開発されています。 これは具体的にはビットコインでは「Lightning」、イーサリアムでは「Raiden」という名前で開発が進められています。 本記事ではステートチャネルについて簡単に触れた上で、LightningとRaidenについて紹介します。 オフチェーン処理 オフチェーン処理とは、本来ブロックチェーンの上で行われる取引を、ブロックチェーンに書き込まずに行うことを意味します。 トランザクションの詰まりの原因は、そもそもブロックチェーンがある時間内に処理できるトランザクションの量に限りがあるからです。この時間内で処理できる取引数は、ビットコインで1秒あたり7件程度、イーサリアムで15件程度とされています。 そこで、取引の一部をブロックチェーンに書き込まないオフチェーン処理を利用することによって、実際のブロックチェーンに書き込まれる取引数を減らし、時間あたりの取引数制限の影響を大幅に減らすことができるようになります。 オフチェーン処理の分かりやすい例として、「取引所内での取引」を挙げましょう。本来ビットコインの取引が成立するまで30~60分待つ必要がありますが(詰まりが起こればこれ以上に待ち時間は長くなります。)、取引所内での取引が一瞬のうちに完了するのは、取引所内での取引はブロックチェーンに書き込まれず、取引所のサーバー上でのみ処理されているからです。 ただし、取引所におけるオフチェーン処理のセキュリティ管理は各取引所によるため、オンチェーン処理ほど安全ではありません。そこで、このようなオフチェーンの取引をセキュアに個人間でも実現しようとしているのがLightningやRaidenです。 ステートチャネル ​LightningとRaidenは共に、ステートチャネルと言われる技術に根ざしています。ステートチャネルとは「ある2者間でオフチェーン取引を行うための場」の事を指します。 一つのステートチャネルでは、チャネルが開かれてから決められた時間内で起こった取引については、ブロックチェーン上に記録されません。 そしてチャネルを終了する時(予め決められた時間内か、又は両者がチャネルを閉じる事に同意した時)、元々の2者の残高から、チャネル内の全ての取引を行った後の2者の残高になるよう、ブロックチェーンに取引が記録(オンチェーン処理)されます。 特に金銭の支払いに関するステートチャネルのことを、ペイメントチャネルと呼びます。 ここで、AさんからBさんへのペイメントチャネルを用いた支払いについて考えます。 Aさんは、Bさんが経営するカフェの常連客で、週に5回もやって来て数百円のドリンクを注文し、ビットコインで支払おうとしています。ビットコインでの送金手数料が1回0.001BTCだとすると、Aさんは手数料だけで週に0.005BTC(1BTC=100万円だとして5000円)も支払うことになります。 また支払いがブロックチェーン上で承認されるまで、毎回1時間ほど待たなければいけません。 そこでAさんは、Bさんとの間にペイメントチャネルを作りました。このチャネルの有効期間が1週間だとすると、この期間の間にAさんがカフェで支払った5回の支払いは全てペイメントチャネル上で行われブロックチェーンに記録されません。そして、1週間が経過してペイメントチャネルを閉じる時、AさんからBさんへ支払った総額が計算され、一つのトランザクションとしてブロックチェーンに記録されます。 このような取引の方法を取ることで、ペイメントチャネルの中で取引を行う分には手数料が掛からず、またマイニングによる承認も必要ない為、ブロックが承認される時間を待つ必要ありません。 ペイメントチャネルを利用するために掛かる手数料は、最後にチャネルを終了する際に、Aさん・Bさんの最後の残高の状態を反映する為に行うトランザクションにかかる手数料だけになります。 ステートチャネルを利用したオフチェーンでの支払いの仕組みについては、こちらの記事で詳しく解説されています。 LightningやRaidenが実現されれば、この手数料の掛からない2者間でのステートチャネルが、複数の参加者の間に複数ある場合でも、ネットワークを辿って支払いが可能になります。この仕組みを利用することによって、以下のメリットがもたらされます。 スケーラビリティ問題の解決 ステートチャネル内で行われた支払いは、ブロックチェーン上には記録されません。そのため、十分なステートチャネルが存在すれば、理論的には現在の数千〜数万倍の数のトランザクションの処理が可能になると言われており、現在問題になっているトランザクションの詰まりの問題を解決することが期待されています。 手数料の削減 1つのステートチャネルを使用する際の手数料だけを支払えば、ステートチャネル内での支払いに対する手数料は実質掛からなくなります。これは一回のトランザクションの手数料を大幅に安くすることを意味しています。 トランザクション処理の高速化 ステートチャネルでの支払いは、マイニングによる承認が必要ないので非常に高速に行う事ができます。 LightningとRaidenの相違点 Bitcoin Lightningとイーサリアム Raidenの考え方は、どちらもステートチャネルが複数繋がったネットワークを利用して、オフチェーンで取引を行うという仕組みを採用しており、基本的にアイディアは同じです。但し両者の間には、利用目的の違いがあります。 ビットコインは元々、ブロックチェーンを利用した新しいお金として開発されており、Lightningネットワークはビットコインを通じた支払いを、より便利に行う事を目的にしています。 対してイーサリアムは、お金としての機能に加えて、分散型アプリケーション(DApps)やスマートコントラクト機能を持つトークンが利用できるプラットフォームとして開発されており、RaidenネットワークではDAppsの運用やトークンの交換をサポートしています。 例えばRaidenを使うことによって、Youtubeに代わる分散型のDTubeというサービスを作ることもできます。DTubeはイーサリアム上で動作するDAppsであり、DTuber(YoutubeでのYoutuber)は一定の金額以上を獲得しないと広告料が引き出せないYoutubeと違い、自分の動画が見られたその瞬間に少額の広告料の支払いを得る事が可能になります。 “Additionally, many decentralized applications can run on the speed and scalability of the Raiden Network. For example, a decentralized payment appreciation service. Think of dTube, Steem's decentralized video service, yet instead of creators being paid only when the user chooses to upvote them, they get paid constantly for every second watched. This can set things up to compete better with Youtube, where creators are paid for every ad watched, yet get rid of all of the paywalls and ads in the process.” (引用:https://steemit.com/bitcoin/@mooncryption/scaling-cryptos-bitcoin-lightning-network-vs-ethereum-raiden-network) その他にもRaidenでは、イーサリアム準拠のトークンを扱えることから、分散型取引所(DEX)への応用にも期待されています。DEXについては本サイトのこちらの記事に詳細が解説されています。 LightningとRaidenの開発状況 LightningのDeveloperチームがMediumに掲載したポストによると、Lightningは全てのテストを完了し、現在実際のビットコインのメインネットで動かすことができる1.0RC版がリリースされています。 実際にLightning LaboのYoutubeページでは、Lightningを使って高速にコーヒーの支払いを行っているデモ動画が上がっており、たった1秒ほどで支払いが完了している事が確認できます。 また2018年1月24日には、シリコンバレー地区のあるコーヒーショップでBitcoin Lightningを利用した支払いが始まったようです。 Setup Backyard Brew https://t.co/aGFHfUOfMP with a Lightning-Mainnet coffee storefront interface. If you are near Palo Alto come by if you want to test buying coffee with Lightning! I bought the first cup, coffee tastes so much better with Lightning 😬 pic.twitter.com/8JWo3gcCbR — Alex Bosworth ☇ (@alexbosworth) 2018年1月23日 イーサリアムのRaidenについても、既にイーサリアムのテストネットであるRopsten上で動かすことができるRiden Network v0.1.0が公開されています。 LightningとRaidenの懸念点 これら2つのアルゴリズムが用いているステートチャネルには、いくつかの懸念や問題点が提起されています。 ルーティング問題 1対1でのステートチャネルでの支払いの考え方はとてもシンプルです。しかし、これがステートチャネルを連結させたネットワーク上での話しになると、どのステートチャネルを経由すれば目的の取引を効率的に成立させられるのかを計算する必要があります。 これはルーティング問題として議論されていましたが、現在ではインターネットで用いられているBroader Gateway Protool(BGP)に似た手法を用いて解決されています。 流動性の問題 ステートチャネルを介した多くの支払いが成功するには、ある程度の金額がデポジットされたステートチャネルができるだけ多く開かれていて、かつオンラインである必要があります。 しかし、ユーザーが多くの仮想通貨をデポジットしておくことは、オフチェーン処理にとって良いことではありますが、そのユーザー個人には何の利益もありません。 よって、ステートチャネルネットワークには十分な流動性が確保されないという問題があります。数学的なシミュレーションからも、ステートチャネルネットワークを利用したシステムが非合理的であるといった厳しい批判も見られます。 まとめ 近年急激にユーザーが増加し、スケーラビリティ問題に直面しているビットコインやイーサリアムについて、それぞれの解決策として開発されているLightningとRaidenについて解説しました。 ステートチャネルネットワークを利用することによって、大きく利便性を向上することが期待されますが、まだモデルとしては不完全な部分があるのが現状です。しかし、両者共に積極的に新しい解決策が提案されており、問題が解決されリーズナブルな処理が実現されるのも時間の問題なのかもしれません。
ビットコインやイーサリアムの保管、仮想通貨ウォレットの種類や仕組み

ビットコインやイーサリアムの保管、仮想通貨ウォレットの種類や仕組み

2018/02/08 at 7:42 PM 0 comments
ビットコイン(Bitcoin,BTC)やイーサリアム(Ethereum,ETH)をはじめとした仮想通貨、ホット/コールドウォレットやハードウェアウォレット等、様々な保管方法があり、セキュリティ対策が必要です。日本の大手取引所コインチェックで盗難事件が起き、仮想通貨のセキュリティに関心を寄せた方も多いでしょう。 本記事では、仮想通貨取引所に保管するリスク、ウォレットの種類や特性を解説し、適切な保管方法を考察します。仮想通貨における暗号技術や送金の仕組み、セキュリティに関する基礎について詳しく知りたい方は、こちら。 取引所で頻発していた盗難事件 コインチェック事件 2017年1月26日に、ビットコインやイーサリアムなどを取り扱う日本最大手の仮想通貨取引所/販売所の「Coincheck」に保管されている、5億2300万XEM(約580億円相当)がハッキングされました。読者の皆さんにも被害に遭われた方がいたのではないでしょうか。Coincheckは被害に遭った26万人に対する全額保証を発表しましたが、日本では仮想通貨への不安感を強く印象付ける事件となりました。 過去の盗難事件 しかし、日本のメディアではあまり報道されていないだけで、同様の被害は世界中で発生しています。仮想通貨に関するハッキング被害は一番有名なもので、2011年にあったマウントゴックス(Mt.Gox)での75万ビットコインの消失事件(2018年1月31日の価値にして約8000億円に相当)。最近では、2017年12月19日にも、韓国の仮想通貨取引所Youbitが、当時での換算レートで約7600万円相当の資金をハッキングによって盗難されています。 過去にあった仮想通貨取引所の大規模なハッキング被害についてはCoinDatabaseにまとめられています。 取引所に預けている仮想通貨は安全? これらの事件から総じて学べることは、取引所に預けることが安全とは言い切れないという事です。そこで本記事では取引所より安全と言われている仮想通貨の保有方法であるウォレットでの保管の基本的な仕組みや、種類、そしてそれぞれの特徴について解説します。 仮想通貨のウォレットとは? 仮想通貨はブロックチェーン技術に基づいています。ブロックチェーンの基本的な仕組みについては過去の記事を御覧ください。また、この記事をより深く理解するために、仮想通貨の取引で用いられる公開鍵と暗号鍵に関する記事を読むことをお勧めします。 仮想通貨のウォレットとは簡単に言ってしまえば、その名の通り仮想通貨を保管する ”お財布” です。ですが厳密には仮想通貨の所有権を示す ”秘密鍵” と呼ばれる文字列がその中に保管されています。 仮想通貨の管理は全て秘密鍵によって行われます。秘密鍵を使うことでその鍵に紐付いた資金をブロックチェーン上で動かすことができます。逆にこの秘密鍵が盗み出されることは、その鍵に紐付いた資金が盗まれることと同然だと言えます。 仮想通貨取引所が被害に合っているハッキングでは多くの場合、顧客から預かっている大きな金額の仮想通貨が紐付いた秘密鍵が盗み出される事で被害が発生しています。 取引所での保管 取引所で仮想通貨を管理していると、パソコン・スマートフォンのブラウザから、取引所のサイトにアクセスして利用することができます。取引所では、秘密鍵の管理を自分で行う必要はなく、必要な処理は全て取引所側が行います。 そのため、仮想通貨に関する知識が無くても、メールアドレスとパスワードでログインするだけで送金・受金・交換などの取引ができ、便利である反面、セキュリティは取引所に委ねられます。また取引所によって、セキュリティの高さはまちまちであり、そのセキュリティレベルは外部の利用者からはなかなか分かりません。 加えて、どんなにサービス自体のセキュリティが高くとも、サービスにログインするパスワードを盗み出されてしまってハッキング被害に合うというケースもあります。TNWの記事によると、香港の仮想通貨取引所「Binance」の偽サイトを通じて、ログインパスワードが盗み出された被害が報告されています。 bitFlyerでは、この様な事態に備えて、三井住友海上火災保険と保険契約を提携しており、不正ログインにて日本円が出金された際には500万円まで保証するサービスを行っています。 セキュリティレベルを高める努力を行なっている仮想通貨取引所ですが、多くのユーザーの資金を一括で管理している限り、ハッキングの攻撃対象になることは避けられません。この点で、取引所に仮想通貨を預けるということは、ウォレットでの保管よりも危険と言えるでしょう。 取引所のメリット・デメリット ○仮想通貨の知識が無くても簡単かつ便利に利用できる ○どこからでもブラウザを通じてアクセスできる ○場合によっては取引所側での補償制度がある ☓セキュリティレベルは取引所に委ねられている ☓ハッキングの対象になりやすい 仮想通貨のウォレットでの保管 ウォレットと一口に言っても、その形や特長に幾つかの種類があります。以下に代表的なウォレットとそのメリット・デメリットをまとめます。 ローカルウォレット(クライアントウォレット) ローカルウォレットは、自分のパソコンやスマートフォンに、それぞれの仮想通貨専用のソフトウェアをインストールして使うタイプのウォレットです。ビットコインのBitcoin coreが代表的なものとして挙げられます。 ローカルウォレットでは、秘密鍵の情報は自分のパソコン・スマートフォンに保存されるので、紐付けられた仮想通貨を完全に自分の手元で管理していることになります。ローカルウォレットでは、状況に応じてオフラインでの管理なども可能であり、自分で適切に管理することで、取引所より安全に仮想通貨を管理できます。 しかし、秘密鍵はウォレットがインストールされている端末に保存されているので、他の端末では仮想通貨を管理できないことや、その端末がウィルスに感染したり故障した際に、仮想通貨が盗まれてしまったり、取り出せなくなってしまうことがありえます。 ローカルウォレットのメリット・デメリット ○仮想通貨を自分で管理(取引所の倒産・サービス停止の影響を受けない) ○仮想通貨取引所に比べて安全性は高い ▲自分で秘密鍵の管理が必要(ある程度の仮想通貨の知識が必要) ☓パソコンのウィルス感染によるハッキング、故障による損失の可能性 ペーパーウォレット 仮想通貨の秘密鍵を紙に印刷して保存する方法が、ペーパーウォレットです。ペーパーウォレットはインターネットから隔離されているので、ハッキングをすることはできず、印刷された秘密鍵を誰にも見られることが無い限り、最も安全に仮想通貨を保管することができます。 ペーパーウォレットは以下の作成支援サイトから印刷して作成することができます。 Bitcoin: https://www.bitaddress.org/ Ethereum: https://www.myetherwallet.com/ しかし、ペーパーウォレットはただの暗号文字列が書かれた紙であり、他のコンピューター上で使うウォレットでできる、残高の確認や取引の作成などの基本的な機能はもちろんありません。 このような作業をペーパーウォレットで行うには、ウィルスに感染していない安全なパソコンを使ってペーパーウォレットの暗号鍵を読み込む必要があります。また、物理的にペーパーを紛失した際に、仮想通貨が取り戻せないので管理方法には気をつけなければいけません。 ペーパーウォレットのメリット・デメリット ○ハッキングされることはない ○紙などに印刷して簡単に管理可能 ☓操作性が悪い(資金移動、残高の確認などが単体でできない) ☓盗難や紛失の可能性 ビットコインペーパーウォレットの例(https://www.bitaddress.org/にて作成) ハードウェアウォレット ハードウェアウォレットはペーパーウォレットの安全性と、ローカルウォレットの利便性を併せ持ったウォレットです。その見た目は小さなデバイスであり、数多くの仮想通貨の保管に対応している「Ledger Nano S」や、古くからハードウェアウォレットとして定評のある「Trezor(トレザー)」があります。 ハードウェアウォレットでは、ペーパーウォレット同様に秘密鍵がインターネットから隔離されます。この秘密鍵は、ハードウェアウォレットの中の専用のICチップに保管されており、パソコンやスマートフォンから簡単にアクセスして、秘密鍵に紐付いた資金を移動させたりすることができます。 ハードウェアウォレットに保存した秘密鍵を使用する際には、専用のパスコードの入力が求められるようになっているので、ペーパーウォレットと違い、もしそのウォレットを誰かが盗んでも悪用することは簡単にはできません。 また、紛失や故障の際には、事前に紙に書き留めた復元用キーワードを使って、全ての資金を新しく購入したハードウェアウォレットに移動が可能です。 総合的に見ても、数あるウォレットの中でも便利かつ安全なハードウェアウォレットですが、唯一のデメリットとしては、購入時のコストや手に入れるまでの時間がかかることです。 ハードウェアウォレットは、改造されている可能性などを避けるために新品を正規販売社から購入する必要があります。2018年1月31日現在、Legder Nano Sは79EUR(約10,700円)、Trezorは89EUR(約12,000円)であり、Ledger Nano Sについては在庫がなく最短の発送まで2ヶ月程待つ必要があります。 ハードウェアウォレットのメリット・デメリット ○ハッキングの可能性は極めて低い(ペーパーウォレット並のセキュリティ) ○操作性が高い(資金移動、残高確認などPCに接続して簡単に行える) ○紛失時の安全性・バックアップ ☓購入時のコスト、時間 (左: Ledger Nano S, 右: Trezor, それぞれ公式サイトより) ハードウェアウォレットでの保管が現実的か? ここまでで、ハッキングの攻撃対象になりやすい仮想通貨取引所に対して、ローカルウォレット、ペーパーウォレット、ハードウェアウォレットで保管する方が原理的に安全であるという事を解説しました。 これら3つのウォレットは、確かに原理的にはどれも安全であると言えます。しかし、現実的にこれらのウォレットを準備する流れを考えると、ローカルウォレットは常にウィルスに感染していないコンピューターで使用する必要があり、ペーパーウォレットも作成から印刷までの経路では、ウィルスに感染していない事が確認できたコンピューターを使用する必要があります。どれだけ安全なウォレットであっても、作成時にその情報が誰かに盗まれてしまえば、対策のしようはありません。 ハードウェアウォレットは購入コストがかかってしまいますが、この安全なコンピューターを用意するという最も面倒な問題を解決します。 詳細な説明は割愛しますが、ハードウェアウォレットでは組み合わせて使用するコンピューターに、マルウェア・キーロガー・ウィルスといったものが侵入していても、秘密鍵の作成や使用時にコンピューター単体ではその情報が読み取れない仕組みがあります。 この仕組みによって、正しい方法で購入したハードウェアウォレットさえあれば、併せて使用するコンピューターの安全性を証明できない状態であっても、安全な仮想通貨の保管や取引を実現することができます。 保有する仮想通貨の金額にもよりますが、自分が所有している仮想通貨に対する安全をお金で購入することができるのがハードウェアウォレットの特徴だと言えるでしょう。 ウォレットにまつわる事件簿 本記事では仮想通貨をより安全に保存する各種のウォレットについて紹介しました。記事ではそれぞれのウォレットが何故安全なのかを簡単に示しましたが、現実にはウォレットの仕組みを悪用して内部の仮想通貨が抜き取られる事件が多数起こっています。 仮想通貨の保管については、100%安全な手法は存在しません。例え最も安全だと言われているハードウェアウォレットでも、幾つかの被害事例が報告されており、その安全性を過信するべきではありません。むしろ自分の保管方法が潜在的に孕んでいる危険性を知っておくことが、最大のリスクヘッジになると筆者は考えています。 そこで本記事では、最後に過去に起こったそれぞれのウォレットのハッキング事件について紹介します。仮想通貨の保管は、ハッキングや偽物のサービスを提供する詐欺師とのイタチごっこです。過去の事例を学んで自分の保管方法を再度考え直してみましょう。 ペーパーウォレットにまつわる事件 ペーパーウォレットが作成できるMyEtherWalletの偽サイトMyEther”a”Walletが発見される。https://steemit.com/ethereum/@dhumphrey/scam-warning-fake-myetherwallet-phishing-site また同サービスのiOS版にも偽物が登場し、一時App Storeランキングで3位になる。(既に削除済)https://www.blockchain-labo.jp/news/fake-app ハードウェアウォレットにまつわる事件 非正規販売者から購入したハードウェアウォレットに付属のキーワードを使用したことが原因で、保存した仮想通貨が盗難。本来自分で決定する復元用コードが、紙に印刷されて販売者によって同梱されていた。http://doublehash.me/do-not-buy-hardware-wallet-from-amazon/ ハードウェア的な脆弱性を利用して、Trezorの復元用キーワードを本体から抽出に成功。 (これは本体のファームウェアバージョン1.5.2以上で対策済) https://www.wired.com/story/i-forgot-my-pin-an-epic-tale-of-losing-dollar30000-in-bitcoin/
ビットコインやイーサリアムの保管、仮想通貨の公開鍵と秘密鍵

ビットコインやイーサリアムの保管、仮想通貨の公開鍵と秘密鍵

2018/02/08 at 7:35 PM 0 comments
ビットコイン(Bitcoin,BTC)やイーサリアム(Ethereum,ETH)をはじめとした仮想通貨、ホット/コールドウォレットやハードウェアウォレット等、様々な保管方法があり、セキュリティ対策が必要です。日本の大手取引所コインチェックで盗難事件が起き、仮想通貨のセキュリティに関心を寄せた方も多いでしょう。 本記事では、仮想通貨における暗号技術や送金の仕組み、セキュリティに関する基礎を技術的に解説します。どのウォレットに保管すべきか詳しく知りたい方は、ウォレットの記事をご覧ください。 Coincheck NEM盗難事件 2018年1月26日、日本の大手取引所 Coincheckから5億2千3百万XEM(時価580億円相当)がハッキングされるという事件がおきました。XEMの総発行数は約90億ですので、全体の6%ほどが盗まれたことになります。また実際に被害を受けたアカウント数は、約26万とアナウンスされています。被害総額・人数が非常に大きいことから、仮想通貨史に名を残す大事件であったと言えるでしょう。 この事件を巡っては、Coincheckのセキュリティ管理の甘さが指摘されています。確かに、取引所として然るべきセキュリティ対策を怠っていたことは、重大な問題です。ただ、この事件を取引所だけの出来事として捉えるのではなく、ユーザー側の仮想通貨に関するリテラシーを改善する機会として捉えることもできます。 今回の記事では、仮想通貨のセキュリテイを支える公開鍵暗号方式(公開鍵/秘密鍵)とその他の技術(マルチシグ/コールドウォレット)を紹介します。この記事を読むことで、仮想通貨をより深く理解し、安全に保管できるようになるでしょう。 公開鍵暗号方式 ビットコインやイーサリアムをはじめとする仮想通貨を送金する際には、“秘密鍵”と“公開鍵”と呼ばれる二つのペアになった暗号鍵が使われています。この秘密鍵と公開鍵を用いた仕組みは、公開鍵暗号方式と呼ばれています。この暗号化の仕組みは、仮想通貨だけではなく、暗号化を必要とする様々な通信において利用されています。 秘密鍵、公開鍵は、その名前からイメージできるように、それぞれ“秘密にしておくべき鍵”と“公開してもよい鍵”です。秘密鍵はランダムに生成され、公開鍵は秘密鍵から生成されます。しかし公開鍵から秘密鍵を知ることはできません。ですので公開鍵が公開されているからといって、他人があなたの秘密鍵を推測できる訳ではありません。 まずは、仮想通貨における秘密鍵と公開鍵の役割を解説する前に、公開鍵暗号方式をより深く学んでみましょう。データの送信者と受信者の間において、どのようにして秘密鍵と公開鍵を利用して暗号化/復号化を実行するか説明します。 データの送信者は、受信者が公開している公開鍵を取得する。 データの送信者は、取得した公開鍵を用いてデータを暗号化&送信する。 データの受信者は、秘密鍵を用いてデータを復号化する。  公開鍵を用いて暗号化されたデータは秘密鍵でしか復号化することができません。つまり、公開鍵暗号方式のポイントは、開けることしかできない鍵と閉めることしかできない鍵が存在するということです。 このやり取りは、“南京錠(公開鍵)”と“南京錠の鍵(秘密鍵)”の関係に非常に近いです。南京錠と南京錠の鍵の例を用いて、再度、暗号化/復号化の手順を考えてみましょう。 データの送信者は、受信者から南京錠をもらいます。この時、南京錠の鍵は開いたままです。 送信者は、もらった南京錠を用いてデータに鍵をかけ、送信します。 データの受信者は、南京錠の鍵を用いてデータに付けられた南京錠を開けます。 南京錠を使った例は非常に分かりやすいですね。この例を通じて、開けることしかできない鍵(南京錠の鍵)と閉めることしかできない鍵(南京錠)の重要性がわかったかと思います。 電子署名 さて、先ほどの例では公開鍵を暗号化、秘密鍵を復号化に使用しましたが、この逆は可能でしょうか。つまり秘密鍵を暗号化、公開鍵を復号化に使用するということです。 これは実際に可能で、秘密鍵を閉めることしかできない鍵、公開鍵を開けることしかできない鍵、として利用することができるのです。 ここで疑問となるのが、公開鍵は公開されているのだから、秘密鍵で暗号化したところで、誰にでも復号化されてしまうのではないか?ということです。一見すると、このような暗号化は無意味に思えるかもしれません。 しかし秘密鍵での暗号化は、送信者の「電子署名」として利用することができるのです。例を考えてみましょう。 データの送信者は、自分自身の秘密鍵を用いて、データを暗号化する。 データの送信者は、同時に、自分自身の公開鍵を公開する。 データの受信者は、公開鍵を取得し、データを復号化する。  この一連の流れによって、受信者は、データが確かに送信者のものであると確かめることができます。なぜならば、受信者がデータを公開鍵で復号化できるということは、そのデータが送信者の秘密鍵で暗号化されていることに他ならないからです。秘密鍵は送信者しか持っていませんので、署名したのが送信者本人であるという理屈は成り立ちます。 秘密鍵を用いた仮想通貨送金プロセス 仮想通貨における秘密鍵・公開鍵の利用方法を考えて行きましょう。送金は以下の手順で実行されます。 Aさんは、送金情報を自分自身の秘密鍵を用いて“電子署名”する。 Aさんは、この電子署名された送金情報と自分自身の公開鍵をセットにして、ビットコインネットワークに送信する。 Bさんは、公開鍵を用いて、電子署名された送金情報の有効性を確認する。 このように秘密鍵を用いた電子署名によって、送金情報がAさんのものであると証明することができます。 では秘密鍵が盗まれてしまった場合はどうなるでしょう?秘密鍵を盗んだ人は、その秘密鍵を使って電子署名ができる=送金することができるので、あなたの仮想通貨は盗まれてしまうことになります。秘密鍵は仮想通貨を送金できる唯一の鍵です。絶対に他人に知られてはいけません。 秘密鍵の管理 取引所での管理 Coincheckのハッキング事件でも問題になりましたが、多くの人が取引所に仮想通貨を預けているのが現状です。通常、取引所に預けている仮想通貨の秘密鍵は、取引所が保管しており、ユーザーが目にすることはありません。 秘密鍵は絶対に他人に知られてはいけないものですが、それを取引所が管理している(預けている)ということは、ユーザーが取引所を信用していることに他なりません。 取引所も秘密鍵の保管には細心の注意を払っていますが、残念ながらハッキングによって秘密鍵が盗まれ、送金されてしまう事件は度々起きています。 取引所に預けているからといって、あなたの仮想通貨が100%安全であるという保証はどこにもないのです。 ウォレットでの管理 取引所に仮想通貨を預ける以外に、ウォレットを利用する方法があります。 ウォレットには、その種類・性質に応じてホットウォレット、コールドウォレット、ハードウェアウォレット、ソフトウェアウォレットなどの分類が存在しますが、どれもお財布のようなものだと思っていただいて構いません。ウォレットに関する詳細は、本メディアのウォレットに関する記事が参考になるでしょう。 ウォレットの利用においては、秘密鍵の保管はユーザー自身に任されています。取引所に秘密鍵を預けていない分、セキュリティが高いように思えます。しかし、あなたが保管する秘密鍵が誰かに盗まれてしまう可能性がありますし、また秘密鍵を紛失してしまう可能性もあります。あくまでも自己責任において保管しなければならず、盗まれてしまった場合は誰も補償してはくれません。 セキュリティを高める技術 秘密鍵の保管が仮想通貨の保有において非常に大切であることは、先に述べた通りです。以下では、秘密鍵をより安全に保管するいくつかの方法について解説します。 マルチシグ 秘密鍵を複数に分割し分散して保管する手法があり、これは”マルチシグ”と呼ばれています。複数に分割された秘密鍵が一定数以上揃わない限り、送金が実行できない仕組みになっています。 いくつの秘密鍵を揃えば送金ができるかに関しては、“2/3”のように表記されています。この意味は、3つに分割された秘密鍵のうち、2つで署名が行われた場合に送金を実行する、ということです。 分割された秘密鍵は、通常異なる場所に保管されるため、ハッキングによる仮想通貨流出のリスクを下げることが可能です。マルチシグに対応した一部の取引所やウォレットは、高いセキュリティを提供していると言えるでしょう。 マルチシグを用いることで、確かにハッキングのリスクを下げることができますが、100%安全という訳ではありません。もし取引所が保管する分割された秘密鍵が一箇所で保管されていたらどうなるでしょう。これは秘密鍵を分割していないに等しく、ハッキングされた場合はマルチシグの意味がありません。 実際に取引所がどのようにして分割された秘密鍵を保管しているかは明らかにされていない場合が多く、ブラックボックスとなっています。とはいえ、マルチシグに対応した取引所が絶対に安全であるという確固たる保証はありませんので、取引所の利用には十分に注意しましょう。 コールドウォレット 秘密鍵が盗まれてしまうことが問題ならば、インターネットから隔絶したウォレットに保管すれば安心かもしれません。このようなインターネットから切り離されたウォレットのことを“コールドウォレット”と呼んでいます。一方で、インターネットに接続されたウォレットのことを“ホットウォレット”と呼びます。 コールドウォレットの種類としては、秘密鍵を紙に書き出して保管する“ペーパーウォレット”や、特別なデバイスに入れて保管する“ハードウェアウォレット”が存在します。 しかしコールドウォレットも100%安全であるとは言えないでしょう。例えばペーパーウォレットを物理的に盗まれたり、紛失してしまった場合には、仮想通貨を失ったことと同じになります。金庫等で保管するといった、さらなる対策も必要になるでしょう。 まとめ 仮想通貨のセキュリティを支える技術として公開鍵暗号方式を紹介しました。その中でも特に、秘密鍵が仮想通貨の送金において重要な役割を果たしていることは理解していただけたと思います。 秘密鍵の管理に細心の注意を払うことはもはや大前提です。確かに、マルチシグやコールドウォレットを使うことで、ハッキングの被害に遭う確率は下げることができます。しかし、今回の事件のように、取引所内に保管していては、肝心の秘密鍵は取引所任せとなってしまいます。取引所にある、あなたの仮想通貨も自身のコールドウォレットに移した方がいいかもしれません。