こんにちは。tokenPocketのminicooheiです。
GOXしたり、パスワードを忘れてアカウントを取り戻せなくなったりという事件が毎日のように起き、毎日のように問い合わせに連絡がきています。
今日は秘密鍵の管理方法やそもそも秘密鍵って何?っていうのをわかりやすく解説していきます。「秘密鍵ってよくわからないんだよネ」というあなた、まずはこれを読んでただしく保管できているか確認しましょう。
“自己防衛”それが一番大事です。この記事では、あれ俺だめじゃんとなるケースを7つ紹介しています。当てはまったら最後の項目をよく読んでしっかり管理してくださいね!
そもそも秘密鍵とは
そもそもブロックチェーンにおける秘密鍵とはなんでしょう?
まずは印象を持ってもらうために、技術的というよりは概念的な感じで書いていきます。*そもそもそもの秘密鍵と公開鍵認証とか公開型のセキュリティの話がしりたければ、以下のトークンポケット公式の記事がおすすめです。
安全なイーサリアムの鍵管理と、秘密鍵/キーストア/ニーモニックについて
- 「知られたら、あなたの資産を12秒でどこへでも移行できてしまう」
- 「その鍵がなければ、あなたがどんなに偉い人で、どんなにお金を持っていても何もできない」
- 「他人に知られたら、いわば金庫の暗証番号が知られているようなもの」
- 「サトシナカモトの6兆円入っているアドレスすら誰も復元できていない」つまり、誰も復元できない。
印象は伝わりましたかね。以下を覚えておきましょう。
秘密鍵・・・
知られたら死ぬし、なくししたら死ぬ
誰も復元を代わりにしてくれたりしない

なくしてはいけないし、誰かに知られてはいけないし、自分以外では誰も復元できないということが伝わったかと思います。次のセクションでは実際にどう管理するか、それを書いていきます。(ソーシャルリカバリーなどはありますが、まだ枯れてない技術なので一旦は自己防衛を徹底するための記事になります。なれてきたらArgentとかでソーシャルリカバリーを使いましょう)
どう管理するのが危険なのか?危険なパターンを7個ご紹介
これらのパターンに合致する場合、いつでも唐突にあなたの資産でなくなるリスクがあることを念頭に運用しましょう。
1. metamaskだけで管理
この記事を読んでいる多くのみなさんがmetamaskは使っていると思います。
そして誰かの説明の赴くままに、早く触りたい一心から、チュートリアルを半ばすっ飛ばして、最初に出てきた謎の12個の英単語なんてあっという間に忘れてしまって、metamaskだけでログインして管理しているかもしれません。
これ、超危険です。
まずGoogleChromeがクラッシュするだけあなたの資産は永久に失われます。もっというとパソコンが電磁パルス攻撃とかおかんのコーヒー攻撃によってやられるだけで死にます。
必ず同一のパソコンではない場所に暗号化した状態で保存しましょう。(なお暗号化するときは、どこで見られていたり追跡されてたりするかわからないので、ネットワークに繋いでない環境でやることをおすすめします)
2. スマホのソフトウェアウォレットだけで管理(スマホGox)
TrustWalletやtokenPocketなどいわゆるスマートフォンで使えるソフトウェアウォレットを使って管理しているよ!という方が多いとおもいます。
しかしながら、これだけでは危険です。スマホをなくすだけであなたの資産は永久に失われることになります。スマホソフトウェアウォレット創業者の自分が言うのですから間違いありません。
過去の統計的に、スマートフォンでバックアップテキストを取得し、それをそのままスマートフォンのメモ帳だけに残しているケースなどが散見されるので、いわゆるスマホGOXになります。
もっというと内部の悪い人がスマホウォレットの秘密鍵を抜き取るプログラムを実装しているかもしれません。(過去実際にエンジニアが不正に手を染めた事件がありました)ソフトウェアウォレット(metamaskを含む)は便利だが、管理という意味では危険なのものであることを忘れないようにしてください。
こちらも鍵を作成したりインポートするときにネット通信がない状態で実施すればいわゆる、コールドウォレット(オフラインのウォレット)と同じ扱いになることは覚えておきましょう。
3. ハードウェアウォレット以外で生の秘密鍵を管理(特にクラウド,Evernote)
なんかよくわからないJsonという{xxxxxxxxxx}みたいな”{“つきの文字列怖いから、秘密鍵とかニーモニックフレーズをそのまま保存して管理しているという方がいるかも知れません。
これも非常に危険です。クラウドだろうとローカルだろうと、誰かに万が一見られたり渡ったりしたらその瞬間からあなたのウォレットは一生信用できません。
僕ならすぐにアドレスを捨てて乗り換えます。
「ゲームのアカウントと紐付いていて大事にしたい。。。」?
関係ありません。攻撃は一瞬で、無慈悲です。すぐに捨てて新しいアドレスにお引越ししましょう。(ガス代がすごいかかる場合は一部の資産は諦める)
ボットプログラムはネット上の文字列を正規表現(ようは形と該当するかだけを見ている 64桁とか0xから始まるとか)ですべての文字列を検索しているとか、Evernote内を監視しているとかそんな話も聞いたことがあります。
生の秘密鍵はいわば「通帳と印鑑とキャッシュカードがセットで置いてある」状態です。見られたら死亡。知られたら死亡。怖いですね。絶対やめましょう。管理に自信がない人は、暗号化された状態のもの以外を触らないほうが良いと思っています。
なお、tokenPocketでいうとKeyStoreの形式であったり、ハードウェアウォレットを使って、パスワードで暗号化されている場合は、知られて即死亡ということにはなりませんから、生で保存するということは絶対にせず必ず暗号化した状態で保存しましょう。(特にメールとかクラウドとかを使う場合はなおのことです。反面復元するパスワードを忘れたら当然死にますので、そこももちろん気をつけましょう。セキュリティを重ねるごとに管理の項目や難易度は上がります)
4. 紙だけで管理(物理Gox)
デジタル信用できんということで紙で管理するケースあると思います。もう触らない覚悟がある場合はそれはそれでハックされる可能性は低くなります。
しかしながらこれも危険です。もし家が火事になったらどうしますか?スペシフィックなケースですが、あなたの資産の大半がそれに紐付いていたらいきなり資産を失うことになります。
銀行や保険などと違い、なくなったからといって補填をしてくれたりもしません。物理的に失われる可能性がある物理GOXの恐怖がありますから、紙だけで管理するのはやめておきましょう。
5.ウォレットを一つだけで管理
DeFiの運用をするときに、担保率が怖かったり、なにか処理するときに少額だとガス代負けしちゃうので、一つのウォレットで全部やっているという人いませんか?
これも非常に危険です。
もちろん上記で書いている内容よりはしっかり管理されていれば安全ですが、何かの拍子にミスをすることは人間あります。(酔っ払って秘密鍵をツイートするかもしれません)
基本的に1用途1アドレスで分けて運用するほうが望ましいです。
自分はゲームごとに分けたり、運用先で分けたり、20アカウント位を使っています(もちろん数が増えればその分GOXするリスクもあるのでケースバイケースですが、一つに集中させるよりは分散させましょう。L2始まったらガス代も落ち着くでしょうから。)
6.Webウォレットだけで管理
Webウォレットというものを利用したことがないかもしれませんが、IDとパスワードで作成できるウェブのウォレットです。(Torusは若干近いですがアルゴリズムはより分散的です)
これは下記の取引所の話とも同じかもしれませんが、秘密鍵を自分で保持していませんので、定義上誰かに自分の秘密鍵を知られていることになります。こうなるとTrustLessではなくTrustできるかどうかに依存するので、基本的にはおすすめしません。
7.取引所のウォレットだけで管理
取引所で保持している方が最も多いかもしれません。秘密鍵を自分で保持していませんので、定義上誰かに自分の秘密鍵を知られていることになります。こうなるとTrustLessではなくTrustできるかどうかに依存するので、基本的にはおすすめしません。
ただし、サポート対応やGoxしたときの保証なども場合によってはあったりします。上記の話がさっぱり理解できないけど「仮想通貨は持ちたい」という場合のみ、いつ取られてもおかしくないというリスクの認識の上ご利用いただければ幸いです。
どうやって管理するの?
①オフラインの環境で②新品のパソコンを直接購入し、③電磁波を妨害する特殊なテントの中で、④鍵を作成したら直後にパソコンを物理的に破壊する。その後、⑤秘密鍵を暗号化して、⑥複数の鉄の板に保存して、⑦複数の場所にある金庫に保存する。
一番安全な管理方法は、およそ上記です。
ここからどの程度利便性とセキュリティのトレードオフで、ずらしていくかという話なります。全部をできてる必要はないですがこのくらい何も信じない姿勢が大事です。
①まず作成するときにオフライン環境で作れるかは重要です。秘密鍵はオフラインで作りましょう。あとコピーペーストなどもその際にサーバーにログを飛ばされたりする可能性があります。注意して下さい。(なお、tokenPocketはオフラインで作成できますし、秘密鍵は一切保持しませんので、コピーペーストなどはできません。手前味噌ですがここに関しては仕様上安全です。)
②新品のパソコンでなくても、新品のハードウェアウォレットで管理するのがよかもしれません.新品です。中古とか買ったら本当に馬鹿なので絶対新品にしましょう。(これは下記の電磁波の話ともセットですが、スパイウェアが入ってる端末で作ったウォレットは取られる可能性があります)
③電磁波飛んでくるかしりませんが、誰かが見てるとか見れるような状況で秘密鍵を表示などはしてはいけません。どこからカメラで取られているかわかりません。将来的に10億円になってから取られたら目も当てられませんよね。鍵を作成するときは必ず周囲に見られていないことを確認して作成しましょう
④パソコンを破壊するのは、万が一にもパソコン内に履歴が残っていてそれを参照されることを恐れての行動ですから一般的な方はする必要がないと思います。
⑤秘密鍵を暗号化するのは、上述の通り重要です。最終的に13桁以上のパスワードをかけて暗号化すればブルートフォースアタックされても数千年かかりますから知られても安全です。
PWを覚えるのも難しいかもしれませんが、PWはしっかり覚えられるものを利用して秘密鍵を暗号化して保存しておきましょう(一般にハードウェアウォレットの場合、暗号化されています。tokenPocketもキーストアという暗号化された形式でしか保存されていません)
⑥複数の鉄の板➖これは紙だと燃えたり、電子機器だと電磁パルスでやられたりするので、溶けたり経年劣化しづらい金属性の板にフレーズを書き込んでおくというはなしと、万が一震災などがきて流されたりした場合に備えて複数の場所に保存しておくという話になります。
⑦スマホだけに保存する、PCだけに保存する、SSDだけに保存する、紙だけに保存する、ハードウェアウォレットだけに保存するなど、どの場合でも万が一なくなったときに死にますから、分散させて保管させておくほうが安全です。(ただその分、盗まれるリスクも上がるので暗号化が大事です)
いきなり地盤沈下するかもしれませんし、洪水で流れるかもしれません。そういう天変地異の際に資産なくなったなど笑えませんから、予め場所の分散をさせておきましょう。
みにこーへいの管理方法
ここまで書いてきてあれですが、僕もDeFiner、BCGerとして、利便性をだいぶ重視している面もあり、現実的には、下記のように管理指定しています。
(PCを破壊したり、鉄板は使ってません。)
①ハードウェアウォレットで保管
取引所で買ったETHのうち、ETHを直接ハードウェアウォレットにいれて、耐熱性の金庫に保管(場所は内緒)ほとんど触らないというかDeFiとかETH2.0ですら今は触ってない(もったいないけど)
②tokenPocketで、ルールを思い出せる12桁のパスワードで、鍵を作成して、今のiPhone/過去のiPhone/USB/icloudにキーストアを保存
お前、上であれだけ言って、クラウドに保存してるやんけと言われるかもですが、キーストアに対し12桁のパスワードを設定しているので漏れても攻撃されない安心があるのと(毎回入力はだるいですが、アドレスによって同じ場合と違う場合がありますが、おかげで覚えました)
DeFi、BCGで日常的に使いたいので、トレードオフを受け入れて、セルフGoxの危険性を減らしています。(パスワードはとあるルールで作成していて、万が一忘れても復元可能です。)
あとtokenPocketを使っているのは、自分たちで作っているので自分にとっては信用するとかじゃないからなのですが、通常の方はソフトウェアウォレットは本当に何が起きるかわからない覚悟が必要なので、正規品のハードウェアウォレットをオススメします。
最後にもう一度、、、、
秘密鍵・・・
知られたら死ぬし、なくししたら死ぬ
誰も復元を代わりにしてくれたりしない
記事をご覧いただきありがとうございます。 DeFiPocketは、Dappsブラウザ & Ethereum ウォレットで国内市場シェアNo.1のtokenPocket社による、DeFi(Decentralized Finance)の解説メディアで tokenPocketを利用して、DeFiで楽しく仮想通貨を使って遊ぶ体験を紹介していきまDeFi Pocketでは「日本で一番シンプルなDeFi」のサイトとして、各DeFiの使い方の紹介や、どんなシーンで使えるか、そしてどんなリスクを気をつけないといけないか、などを説明していきます。 tokenPocketは以下からダウンロード可能です。 iOS https://apps.apple.com/jp/app/tokenpocket/id1288636393 Android https://play.google.com/store/apps/details?id=com.tokenpocket また動画でわかり易く説明もしているのでぜひ見てみてください!