Mycelium ウォレットについて

 

Nayutaの広報、Hitomiです!

今回は、Mycelium ウォレットを紹介します。ウォレットの紹介シリーズ第4回目です。
この記事では、Mycelium の特筆すべき特徴を、ウォレットを実際に操作したときの画像も交えながら説明していきます。使い方に関しては、他の方がきれいにまとめている記事等があると思うので、そちらを参考にしてください。


1

出典元:Mycelium Bitcoin Wallet

概要
Myceliumは、高い称賛を得ているビットコイン専用のウォレットです。ビットコインキャッシュモジュールというアプリも出しています。2014年に、Blockchain.info からBest Mobile App賞を受賞しています。

基本情報
URL: https://mycelium.com/
Myceliumは、2008年メッシュネットワークプロジェクトで、ハードウェアエンジニアチームとしてスタートしました。それからBitcoinの出現を機に、この技術に傾いていき、ウォレットを含むいくつかのプロジェクトにおいて製品を開発・ロンチし、成功してきました。
Android / iOS で使うことが出来ます。AndroidとiOSは、開発チームが違うらしく仕様がだいぶ異なります。Androidのみが日本語対応していますし、iOSよりも機能が多いようです。

2018年11月16日現在の最新バージョンは2.11.1.21(Android)、1.11(iOS)です。

今日紹介するのはAndroid版です。


特徴

1: オープンソース開発です。

2: ビットコインキャッシュモジュールがあります。これを使うと、ビットコインキャッシュを見つけてくれ、ビットコインに交換できるようです。
昨年の夏、ハードフォークした際に、ビットコインキャッシュが割り当てられました。全員ではなく、当時ビットコインキャッシュに対応すると発表していた取引所にビットコインを預けていた人、秘密鍵を自分で管理するウォレットを使っていた人が、受け取れたようです。
後者の人で、ビットコインキャッシュを受け取ったかどうかが不明な場合、このツールが役に立ちます。Myceliumは、現在のところ、ビットコイン専用ウォレットなので、交換する機能を付けているのかもしれません。
ちなみに、同期に20分から数時間ほどかかるようです。

2

図1:ビットコインキャッシュモジュール

 
3: セグウィットやマルチシグには対応していません。ビットコインのメインネットの場合、アドレスが1から始まります。

 

4: Myceliumはクラウドセールを行ったことがあります。2016年の5月1日に18日間のセールで、2500人以上の参加者が集まり、5,131.445BTC(当時のレート約$450/BTCでいうと、約$2,309,150)が集まったとのことです。SAR(Stocks Appreciating Rights)という合法の手段をとり、参加者はMyceliumのトークンという形でSARを保有するか、あるいは、のちにMycelium社のclass B sharesに変えることが出来ます。これはICOとは異なった手段になります。

 

5: HDウォレットです。大半の他のウォレットは、初期設定時に復元フレーズを半強制的に覚えさせられます(メモさせられます)が、Myceliumは、自分で復元フレーズ(BIP39)を覚えにいかないといけません。このバックアップ作業は非常に重要で、万が一バックアップをせずアプリに入れなくなった場合、資産を取り戻すことが出来ません。ちなみに、Myceliumの復元フレーズは12単語で成っています。

3

図2:このように注意書き兼案内が表示される

 
6: 外部サービスとのAPI連携は、以下の通りです。
Coinapultを通すと、さまざまな法定通貨とヘッジをかけることが出来ます。法定通貨で価値をためておき、ここぞというときにすぐビットコインアドレスに送金することが出来るようです。ただしこれは、MyceliumのHDウォレットではなく、Coinapultの管理下に置かれます。
Purse.ioを通すと、アマゾンで15%ディスカウントの価格でビットコイン払いが出来るようになります。
・ハードウェア型ウォレットTrezorLedgerKeepkeyに対応しています。

Cashila を通して、SEPAエリアで支払いが出来たようですが、現在はCashilaが閉鎖しています。

8

図3: CoinapultでUSDのアカウントを作成した様子
アドレスはではなくから始まっている

4

図4: Purse.io
「Try different address format」をクリックして、から始まるアドレスを生成する。画面のようにbcから始まるアドレスだと、Myceliumはセグウィットに対応していないため、読み込んでくれない

6

図5: ハードウェア型ウォレットのアカウントを使うことが出来る
ハードウェア型ウォレットを失って使えなくなった場合などに有効だ

 
7: ビットコインを手に入れる方法は、以下の通りです。
・外から送金してもらう
・他のコインからビットコインに変換する
Simplexを通して、クレジットカードでビットコインを買う
・Myceliumマーケットで個人売買取引を行う
Glidera を通して、アメリカまたはカナダの銀行口座から売買を行う

9

図6: Glideraを使用する場合の注意書き
外部サービスを併用する場合は、プライバシー保護などの注意が必要

 
8: Mycelium Local Trader という機能があります。交換所の機能を果たしてくれます。第三者が運営する通常の交換所とは異なり、自分の近くにいるトレーダーを探しだし、直接その人に会って法定通貨とビットコインを交換するという仕組みです。トレーダー自身が、資産とリンクする秘密鍵を管理するウォレットなので、Local Traderが法定通貨やビットコインを保有することは一切ありません。

・Mycelium Local Traderのサーバーは、売買する人の間で取引を調整したり、管理したり、取引に基づいたトレーダーの評判の評価計算をしたりします。この評判は、取引が成功したか中止されたかの数によって自動的に変わります。

・Mycelium Local Traderは、秘密鍵を、Myceliumサーバーでの登録や認証のために使います。このサーバーが記憶するのは、ビットコイアドレス、ニックネーム、エンターした場所での売りオーダー、取引履歴といった情報です。

・トレーダーたちは、チャットを使って、落ち合うタイミングや場所を決めます。全チャットの会話はエンドtoエンドであり、ビットコインの鍵を使って暗号化されています。チャットの内容にアクセスできるのは、そのチャットに参加している人なのでプライバシーは守られます。Myceliumサーバーは、タイムスタンプのある暗号化されたテキストのみを受け取ります。

12

図7: Myceliumマーケット(出典元: 公式アプリ)
現在地を調べるか、都市または住所を入力して、近くにいるトレーダーを探す
画面内のkmで表示しているのは、恐らく相手との距離である

 
9: Torに対応しています。Orbotと呼ばれるアプリとSocksプロシキを使うことで、Torを使ったバックエンドのサーバーに接続することが出来ます。これによって、匿名を守りながらMyceliumを使うことが出来ます。使う場合は、アプリの性能が少し鈍ることがあるようです。
11

図8: Torの設定画面より

10: オープンソースプロトコルのBitIDを採用しています。従来型のパスワード認証よりも安全です。

11: トランザクションの署名に、RFC6979 を採用しています。通常ブロックチェーン技術では、ECDSAという公開鍵暗号技術が使われています。これは、複数の署名で乱数を使いまわした場合に、秘密鍵が流出してしまう危険性があります。それを防ぐ技術が、このRFC6979です。

12: 詳細は記載しませんが、興味のある方はこちらもご参考ください。
BIP70 のペイメントリクエストに対応しています。
BIP120/121 のProof-of-Payment(支払いの証明)に対応しています。

13

図9: BIP70より

13. ペーパーウォレットから送金することが出来ます。これには、秘密鍵かマスターシードが必要です。

7

図10: ペーパーウォレットからの送金


感想
 
個人的にMyceliumは、どこに何の機能があるかなど少し見にくく感じ、使いずらいかなというのが、第一印象でした。ただ、触ってみると、API連携が多かったり、他のウォレットとは違う特徴を持っていたりと、ユニークなウォレットだなという風に感じました。最近ちょうどビットコインキャッシュのハードフォークが話題になっていましたが、Myceliumはビットコインキャッシュを積極的にサポートをしていく方針のようですので、今後の展開が楽しみですね。

Coinomi ウォレットについて

Nayutaの広報、Hitomiです!

今回は、Coinomi ウォレットを紹介します。ウォレット機能の紹介シリーズ第3回目です。これまでの記事は、ElectrumBitcoin Core について書いています。
この記事では、Coinomi の特筆すべき特徴を説明していきます。使い方に関しては、他の方がきれいにまとめている記事等があると思うので、そちらを参考にしてください。


 

Clipboard01

出典元:Coinomi 公式ウェブサイト

概要
Coinomiは、高セキュリティのマルチアセットウォレットです。500種類以上の仮想通貨やトークンを扱っています。複雑なブロックチェーンの世界で、誰にでも簡単に使ってもらえる実用的なインターフェースになることをミッションに掲げています。無料で使えます。

基本情報
URL: https://www.coinomi.com/
2014年に George Kimionis氏がFounder&CEOを務める Coinomi Ltd. が作ったオリジナルウォレットです。
Android / iOS で使うことが出来ます。また、2018年中に Windows / MacOS / Linuxに対応したデスクトップ型のウォレットも出るようです。

2018年11月9日現在の最新バージョンは1.11.6です。


特徴

1:多くのコインに対応しています。(以下、公式ウェブサイトでcoinと書かれている箇所に関しては、ここでもコインと記載していきます。)
現在、125ブロックチェーン、382トークンに対応しています。これは、アセットリストから検索できます。私の記事で毎回紹介しているBitcoinのテストネットに関して、他ウォレットだと専用アプリをダウンロードしなければいけないことが多いのですが、Coinomiはその必要がなく、1つのアプリ内で収まります。

Clipboard06

図1:公式ウェブサイトでも、対応コインを探すことが可能です

2:以下、コインに関する機能やサービスを順不同に羅列していきます。

・コイン同士をウォレット内ですぐに交換することが出来ます。これには、 ShapeshiftChangelly という両替サービスが使われています。交換できるコインの種類は、Coinomiではなく、この2つのサービスに依存するので注意が必要です。また、Coinomiサーバーには、ユーザーの情報は一切残りませんが、この両替サービスを利用する際には、アカウントを作成する必要があります。

・クレジットカードでコインを買うことが出来ます。

・Tokenに投資する機能があります。

・コインのフォークエアドロップの情報にも対応しています。

・万が一、Coinomiがコインをアセットリストから消す、つまりCoinomiでは保管できなくなる場合、ウォレットに警告バーナーを表示したり、SNSでアナウンスしたりと、前もって知らせてくれるようです。対応が遅くなりアクセスできなくなった後でも、こちらの手順から仮想通貨を移動させることが出来ます。

なお、Coinomiは年中無休のカスタマーサポートが付いているようなので、フォークなどの緊急の場合には安心ですね。

Clipboard07

図2:アプリ内イメージ図(公式ウェブサイトより)

3:Coinomiは、2014年にはじまって以来、ハッキングされたことや情報漏洩にあったことがないと、公式ホームページに記載しています。

4:グローバルなウォレットです。168の法定通貨と25か国語に対応しています。一部規約等の部分を除き、日本語にも対応しています。

5:秘匿性・匿名性を重視しています。資産にアクセスするようなKYCや、IPアドレスやIDを結び付けること、トランザクションを追跡するようなことはありません。Coinomiのサーバーは、IPアドレスを隠すことで、ユーザーのリクエストを匿名化しています。
 

6:Coinomiでは、セグウィットネイティブ(P2WPKH)アドレスが、デフォルトで生成されます。セグウィットネスティド(P2SH)や、通常のレガシーアドレスも受金アドレスから簡単に生成できます。Bitcoinネットワークでは、手数料が抑えられ、速いトランザクションを可能にします。

・Default: セグウィットネイティブ。Bitcoinメインネットのアドレスはbcから始まる。
・Compatibility: セグウィットネスティド。Bitcoinメインネットのアドレスは3から始まる。
・Legacy: 通常のアドレス。Bitcoinメインネットのアドレス1から始まる。

Coinomiでは、数種類のコインに対しセグウィット対応が出来ています。セグウィットネイティブに対応しているコインのアドレス一覧はこちらから確認できます。

Clipboard02

図3:上からネイティブ、ネスティド、レガシーアドレス

 
7:HDウォレット(階層的決定性ウォレット)です。BIP39に基づいた復元フレーズが使われており、12、15、18、21または24単語から成っています。

8:秘密鍵はサーバーではなく端末に保管され、意図せず外に出ていくことはありません。また、マスターキーはAESで暗号化されています。

この秘密鍵は、復元フレーズからエクスポートすることも出来ます。例えば、他ウォレットを使いたい場合、こちらのツールを使うことで、Coinomiの復元フレーズから秘密鍵をエクスポートし、他ウォレットに読み込ませます。(このツールは、ブラウザでローカルに動き、完全オープンソースです。)詳しい手順はこちらを参考にしてください。

Clipboard08

図4:HDウォレットのイメージ図

Clipboard010

図5:エクスポートのイメージ図

 
9:反対に、他ウォレットからCoinomiにコインを移すことも出来ます。方法は3つあります。復元フレーズを使う方法、通常のトランザクションをつくり全残高を送金する方法、秘密鍵をスイープする方法です。詳しい手順やメリット・デメリットはこちらから確認できます。

スイープ機能について以下、補足します。あまり使うことのない機能かと思うので軽く読み流してもらっても構いません。

スイープとは、秘密鍵(資産)を吸い取る機能です。例えば、ペーパーウォレットからの送金の場合に使うことが出来ます。

秘密鍵のインポート機能とは異なります。スイープは、資産はスイープ後のウォレットからのみ、アクセスすることができます。一方インポート機能は、資産はどちらのウォレットからも、アクセス・送金することが出来ます。ただし、ウォレットのアプリケーションによって、具体的になにをスイープ・インポートと指すかはやや異なるようです。

Coinomiでのスイープは、移動前のウォレットを空にし、手数料をひいた状態で、Coinomiに全残高が送金される仕組みです。

Clipboard011

図6:スイープイメージ図

 
10:今後、Lightning Network、 Atomic Swaps、 そのほかのメジャーな通貨に対応していく予定のようです。

 

注意

Coinomiはオープンソースではないという内容を、しばしば目にします。仮想通貨の世界では、オープンソースであることは開発の透明性などの観点から、ひとつの大事な指標です。Coinomiのコードは初期に公開されていますが、現在のコードが更新されていないことと、ライセンスに関する変更が行われたことが、このように言われる原因になっているのではないでしょうか。ちなみに、この記事によれば、CEOのKimionis氏は、Coinomiはオープンソースであるという主張をしています。

Clipboard03
図7:Google play内のアプリケーションは、1.11.6が最新バージョン

Clipboard05

図8:Githubの最新リリースのバージョンは、2016年11月3日の1.6.5

Clipboard04

図9:Githubの直近の更新日は、2017年10月24日


感想
Coinomiは、アプリもウェブサイトもUIがよく、使いやすいです。様々な機能や通貨をひとつのアプリ内で使えるのも便利ですね。最後に記載したオープンソースについては、そういう事実も踏まえたうえで、ユーザー自身が使うかどうを決めるのがいいでしょう。 

Bitcoin Coreについて

Nayutaの広報、Hitomiです!

今回は、Bitcoin Core を紹介します。Bitcoin Coreは、ビットコインの公式クライアントソフトウェアのことです。このソフトウェアにウォレット機能が含まれているため、前回の記事に続き、ウォレット紹介の一部として取り上げます。
 
この記事では、Bitcoin Core の特筆すべき特徴を、ウォレットを実際に操作したときの画像も交えながら説明していきます。使い方などは、他の方がきれいにまとめている記事があると思うので、そちらを参考にしてください。


 
000

出典元:Bitcoin Core 公式ホームページ

概要
Bitcoin Coreは、ビットコインの公式クライアントソフトウェアです。Bitcoin Coreをコンピュータにインストールすると、全てのブロックチェーンの情報をダウンロードします。ウォレット機能や、マイニング機能も含まれています。無料で使えますし、日本語にも対応しています。

基本情報
URL: https://bitcoin.org/en/bitcoin-core/
Satoshi Nakamotoの論文をもとに、実際にビットコインネットワークをつくるため有志が集まり開発したものです。

Bitcoin Coreを動かす際の最低限の動作要件は、以下の通りです。
・Windows / Mac OS X / Linux の最近のバージョンが動くデスクトップ または ラップトップ
・200GBの空ディスクスペース、最低限100 MB/s のスピードで読み書きできること
・2GBのメモリ(RAM)
・最低限400Kbits(50KB)/s のアップロードスピードがあるブロードバンドインターネット接続
・従量課金制ではない接続、高いアップロード制限のある接続、またはアップロード制限を超過しないことを常にモニターできる接続
・1日6時間以上、Bitcoin Coreのフルノードを動かしておけること

2018年11月2日現在の最新バージョンは0.17.0.1です。

(注意)ビットコインの開発者もまた、Bitcoin Coreと呼ばれることがあります。


 

特徴 

1:ユーザーインターフェースは3つあります。
1つ目は、GUI版です。Bitcoin Coreはアプリケーションの名前ですが、実行ファイル名はBitcoin-Qtといいます。今回は、テストネットのGUI版をWindowsで動かしています。
2つ目は、CLI版です。Bitcoin Core内で動いているプログラムを、Bitcoind(ビットコインプロトコルを実装したプログラマ向けクライアントのこと)と呼びます。
3つ目は、Bitcoin Coreを使った軽量ウォレットです。特定の軽量ウォレットは、そのユーザーのBitcoin Coreのフルノードだけに、つなぐことも出来ます。こうすることで、フルノードの安全性と秘匿性というメリットを、軽量ウォレットも受けることが出来ます。通常、軽量ウォレットはいくつかの不特定なノードにつなぎ情報を得ます。もしこの場合、悪意のあるノードにつないでしまうと、プライベート情報が漏れてしまうなどの危険性があります。

ユーザーインターフェースの詳細はこちらです。

Clipboard04

図1:GUI版

 

2:Bitcoin Coreをインストールしたコンピュータはフルノードとして自動的に機能します。そもそもノードとは、分散型のビットコインネットワークを構成する一員となり、稼働するコンピュータのことを指します。そしてフルノードといった場合、世界で1番最初に生まれたブロック(ジェネシスブロック)~現在のブロックまでの、すべてのブロックチェーン情報をダウンロードし、すべてのトランザクションやブロックの検証を行うコンピュータのことを指します。

膨大な情報がダウンロードされるため、Bitcoin Coreのインストールには長時間かかり(1日かかることも)、大量のストレージが必要になります。
しかし、フルノード同士がもつ情報の正当性を検証しあっているので、他のウォレットクライアントで心配されうる「外部サーバーやネットワーク内の第三者からの情報は、本当に正しいのか」などと心配する必要がありません。

Clipboard02

図2:Bitcoin Core 起動時は毎回ブロックの検証を行う

 

3:完全にオープンソースです。ビットコインネットワーク上でどのような仕様やルールが適用されるのかは、このソフトウェアに依存します。そのリソースは完全に公開されており、誰でも改善案BIP (Bitcoin Improvement Proposal) の提案を自由に行うことが出来ます。提案が反映されるかどうかは、ビットコインネットワーク関係者が参加するメーリングリスト内での議論をもとに決められます。

 

4:自分で資産を完全にコントロールすることができます。誰かが資金を凍結したり、失くすといった心配がありません。その代わり、ウォレットを安全に保つことも、自分の全責任となります。秘密鍵がファイルに保存されるため、そのファイルまたはコンピュータを紛失する・壊すと、パスワードを持っていたとしても、資産を失います。
ウォレットには通常、復元シードというものがあり、端末が壊れても資産を復元することが出来るようになっています。しかし、Bitcoin Coreには復元シードがありません。
コンピュータ自体のウイルス対策や、資産をオフラインの別端末に保管する等の対策をしっかりと行いましょう。ここには、一般に推奨されている対策方法が記載されているのでご参考ください。

Clipboard05

図3:Bitcoin Coreのファイル

 

5:匿名性が高いです。サービスによっては、第三者がユーザーのプラバシー情報を知っている場合がありますが、Bitcoin Coreはそれを出来る限り、少なくしています。また、匿名ネットワークサービスのTorとの互換性もあるので、併用して使うことが出来ます。プライバシーに関する詳細はこちらです。

Clipboard01

図4:Bitcoin Core と他ウォレットのプライバシー比較
(上記リンク先から引用)

Clipboard09

図5:繋がっているノードの情報も見ることができる

 

6:Bitcoin Coreでは、セグウィットネスティド(P2SH)の着金アドレスがデフォルトで生成されます。このアドレスは、メインネットの場合はから、テストネットの場合はからアドレスが始まります。

・セグウィットネイティブ(P2WPKH)を生成する場合は、図6の「Segwitアドレスを生成する」にチェックを入れてください。メインネットはbc、テストネットはtbからアドレスが始まります。
・セグウィットではない普通のアドレス(レガシーアドレスといいます)を生成したい場合は、「ヘルプ(H)」→「デバックウィンドウ(D)」→「コンソール(C)」→「getnewaddress “” legacy」とコマンド入力、してください。メインネットは 1、テストネットは mまたはn からアドレスが始まります。(図7)

Clipboard03

図6:Bitcoin Core 入金画面

Clipboard06

図7:レガシーアドレスが生成された様子

 

7:テストネットだけはなく、レグテスト(regtest)を作ることが出来ます。レグテストとは、自分だけのブロックチェーンを作ることができるシュミレーションのようなものです。マイニングコマンドがあるので、Bitcoinをゲットすることが出来ます。ただし、他のノードと繋がっていない閉じた世界なので、実際にブロックチェーンはダウンロードしません。また、Blockchain Explorer のようなサービスで送金のチェックが出来ません。

Clipboard015

図8:左から、メインネット・テストネット・レグテストのアイコンの色

 

8:RBF(Replace By Fee)を使うことが出来ます。トランザクションが、いつまで経ってもMEMプールに入ったままで承認が行われない場合(未承認トランザクション、0承認トランザクション)、トランザクション手数料を増加して承認されるように新しいトランザクションに置き換えることができる機能です。

また、推奨される手数料は、その時点でのネットワーク状況に依拠してはじき出されるので、タイムリーに承認される額になっています。

Clipboard010

図9:RBFを有効にするチェックがある

 


感想

以前、Electrumウォレットについて記事を書きましたが、同じコンピュータ上のウォレットでも特徴が全く違います。実際に使ってみると、よりよくわかります。Bitcoin Coreは、Electrumに比べるとシンプルではないので多少使いずらいです。しかし、フルノードというメリットを享受したい人にとっては、最適なウォレットではないでしょうか。自分や用途にあったウォレットを使っていきたいですね。

Clipboard011

図10:様々な条件を設定できる画面

Clipboard08

図11:ネットワークに使用したバイト数も見ることが出来る

 

Electrum ウォレットについて

Nayutaの広報、Hitomiです!

今回は、Electrumウォレットを紹介します。
この記事では、Electrumの特筆すべき特徴を、ウォレットを実際に操作したときの画像も交えながら説明していきます。使い方などは、他の方がきれいにまとめている記事があると思うので、そちらを参考にしてください。

 



111出典元:Electrum Bitcoin Wallet公式ホームページ

概要
Electrumは、ビットコイン専用のウォレットです。最も人気が高いウォレットのひとつで、長い間使われ続けています。 また、少しの使用リソースとシンプルなつくりで、スピード性を追求しているのが特徴です。無料で使うことができます。

基本情報
URL: https://electrum.org/#home
2011年11月に Thomas Voegtlin 氏によって開発されました。その後は、様々な開発者が開発に貢献しています。オープンソースのコードはこちらから確認できます。
Windows/ OSX/ Linux/ Android で使えます。
2018年10月26日現在の最新バージョンはElectrum-3.2.3です。

Electrum-mona(Monacoin)やElectron Cash(Bitcoin Cash)というUIが非常に似ているウォレットがありますが、別物です。

 



特徴

1:他のウォレットと大きく異なるのは、エレクトラムサーバー(ElectrumX)という独自のサーバーを使っている点です。このサーバーがブロックチェーンの情報を入手することで、クライアントは「本当に自分のトランザクションはブロックチェーンに入ったのか」という検証を速く行うことが出来ます。これには、SPV技術が使われています。
エレクトラムサーバーは、世界中のボランティアによって分散的に運営されているので、サーバーがダウンする可能性は限りなく低いです。また、サーバーに対し、クライアントが秘密鍵を勝手に送るような仕組みにはなっていない、という内容がElectrumのドキュメントに書かれています。

Clipboard09

図1:イメージ

 

2:コールドストレージ機能*がついています。この機能を使うと、オフラインで署名を行えるようになるため、インターネット攻撃に対するセキュリティを高めることが出来ます。ただし、この機能を使う場合は、パソコンがオフライン用とオンライン用で2台必要になり、さらに送金操作が面倒になってしまうため、取引が多い場合には不向きです。オフラインの方はビットコインを保管する用として、オンラインの方は読み取り専用として機能します。オンラインの方は、Watching-onlyウォレットとも呼ばれ、履歴を閲覧したり、ブロードキャストされる前のトランザクションを生成します。使い方は、こちらから確認できます。
*リンク出典元:bitFlyer

Clipboard08

図2:Watching-Only ウォレット

 

3:日本語の設定ができます。初めてウォレットをつくる場合、インストールやウォレット生成時点では、英語で行われます。

Clipboard01

図3:インストール後の1番最初の画面

 

4:2段階認証つきのウォレットやマルチシグのウォレットが作れます。Clipboard02

図4

 

5:復元シードのフレーズは、Electrumが生成する英単語12個です。これは、256ビットの長さのビットコインの秘密鍵と同じ強度のセキュリティです。(図6)
また、他のビットコインクライアントを、復元シードフレーズを使って、Electrumの中に復元することもできます。ただし、BIP39に従った復元シードフレーズしか入力することが出来ません。今回、Myceliumウォレットで試したところ、きちんと復元することができました。(図7)

Clipboard03

図5

Clipboard05

図6

Clipboard06

図7


6:ハードウェアを連携させることが出来ます。現在、Trezor、Ledger、Keepkeyが対応しています。

abc

図8

出典元(左):Trezor公式ホームページ
(中):Ledger公式ホームページ
(右):Keepkey公式ホームページ

 

7:秘密鍵と復元シードは、AES-256-CBCで暗号化されます。ウォレットを暗号化するためには、任意のパスワード設定が必要です。

Clipboard07

図9

 

8:セグウィットに対応しています。セグウィットネイティブ(P2WPKH)の着金アドレスが生成されます。このアドレスは、メインネットの場合はbcから、テストネットの場合はtbからアドレスが始まるため、普通のアドレス(メインネットは 1、テストネットは mまたはn)とは区別することが出来ます。

Clipboard10

図10

 

9:Torがサポートされています。アンドロイド版はサポートされていません。Torを使う場合は、主に2つの方法があります。1つ目は、1つのサーバーだけにつなぎ、ブロックヘッダとトランザクションの情報をそのサーバーから得る方法です。2つ目は、8つのブロックヘッダのサーバーにつなぎ、1つのオニオンサーバーにつなぐという方法です。詳細はこちらからです。

 

10:ウォレットをアンドロイドにインストールする場合、アプリケーションではなく携帯電話自体に読み込まれます。携帯電話自体の暗号化(鍵をかけるなど)をするのがオススメです。

 




実際に使ってみた感想としては、機能が多く、シンプルで分かりやすいため、使いやすいです。Electrumはテストネット版も作れるので、使ってみたいけど初めからメインネットを使うのが億劫という方や、いろいろな機能を実験的に試してみたいという方などは、こちらから始めてみるのもいいかもしれません。

参考までに、Windowsを使ったテストネットのつくり方を記載しておきます。
その他のOSはこちらから確認してください。

Electrumのショートカットを作る
→ ショートカットを右クリックし「プロパティ」を選択
→ 「ショートカット」の「リンク先(T):」の最後に「--testnet」と付け加える
→ 「OK」を押すとテストネット版の完成です。

Clipboard11

図11

 

Lightning Networkの技術解説記事(ThinkIT)

ThinkITにて、Lightning Networkについての短期連載を行いました。

わかりやすいかどうかは別として、イメージをつかんでいただければ幸いです。


第3回の図がわかりづらいようだったので、補足しておきます。

image

これは、transactionの名称とoutputの名称を図で表そうとしたものです。

funding transactionは、同意してチャネルを閉じる場合にはclosing transactionへ、そうではない場合はcommitment transactionにつながります。
closing transactionは、チャネルを開いたそれぞれが送金先を指定するので、そこから先は自由です。
問題は、commitment transaction。

チャネルに送金できる額が残っていれば、to_local outputとto_remote outputがあります。
dust以下しか残っていなければ、そのoutputはありません。
もしHTLCが残っていて、それも送金できる額が残っていれば、offered HTLC outputsやreceived HTLC outputがあります。

で、この名称は「output」なので、transaction名ではありません。
連載の図ではtransactionと同じ色にしてしまったので、わかりづらかったのだと思います。

to_local outputは、スクリプトへの送金です。
スクリプトに名称はないので、to_local outputという名前のスクリプトだと思っていいんじゃないでしょうか。
この送金は、スクリプトだけが指定されていて、そこから先のoutputは自由です。
なので、BOLTとしてはこの部分にtransactionとしての名称を付けていません。

to_remote outputは、相手のアドレスへの送金です。

offered HTLC outputsとreceived HTLC outputsは、スクリプトへの送金です。
ただし、この送金先についてはさらに次のoutputまでBOLTで指定されています。
そのため、HTLC Timeout transactionやHTLC Success transactionという名称が付けられています。

という図でした。

用語集【フルノードとSPVノード】

 

Nayutaの広報、Hitomiです!

秘密鍵(失くすと残高や履歴まですべて失う重要なもの)を、自分で管理するタイプのWalletを使おうとすると、「フルノード型」や「SPVノード型」という言葉がよく出てきます。自分で秘密鍵を管理するタイプのWalletは、さらにこの2種類から選ぶことになります。ここでは、この「フルノード」と「SPVノード」をおさえていきます。

 


フルノード

フルノードでは、ブロックチェーンの情報がすべてダウンロードされます。ブロックチェーンは誰でも閲覧できる公開台帳です。その台帳の中にある1期~今期までの全取引が、すべてダウンロードされるのです。

なぜ、すべての情報をダウンロードするかというと、ブロックチェーンの妥当性を保証するためです。妥当性とかたく書いていますが、簡単にいうと、各ブロックに入っているトランザクションが本当に有効なものかを確かめています。

例えば、悪意のある第三者が偽りのブロックチェーンをつくり出し、ユーザーを騙そうとしている場合を考えます(厳密にいえば、ユーザーが使うフルノード型ウォレットを騙す。以下、ユーザーとよぶ。)。ユーザーは、すべての情報をダウンロードすることで、偽りのない本当に有効なブロックチェーンであるかを確かめているのです。

ちなみに、騙すためには、本物のブロックチェーンよりも長いブロックチェーンが必要です。そのようなブロックチェーンを作ることは、理論的に不可能ではありませんが、膨大な時間的・金銭的コストの面から、事実上不可能と言われています。

ただしこの安全性と引き換えに、膨大な情報を取り込むためのディスク容量が必要です。例えば、Bitcoin Coreはフルノードとして大変有名ですが、そのBitcoin Core 0.16.2(2018年7月29日リリース)では、210GBのデータ量を一度にダウンロードしなくてはいけません。さらに、毎月5-10GBのデータをダウンロードします。そのため、フルノードを使い始めるまでに数時間~数日かかってしまいます。

このように膨大なデータ量を取り込むため、フルノードはデスクトップで使われることがほとんどです。AndoroidやiOSでは、そもそも本体に空き容量がないのでフルノードになることは出来ないのです。

 


 

SPVノード

SPVノードは、ブロックチェーンの全情報のなかから、必要と思われる情報のみをダウンロードします。その情報とは、ブロックの一部分(詳しくいえば、ヘッダ部分)とユーザー自身に関係するトランザクションのデータです。

SPVとは Simplified Payment Verification の略です。Simplified(簡潔化された)Payment(支払い)Verification(検証)、つまり、ブロックチェーンという公開台帳から取引の情報を、簡潔に検証してきますよ、ということです。すべての情報をダウンロードする余裕はないけれど、重要な情報だけは最低限ダウンロードしたいという時に便利です。

SPVノードが存在する理由は、フルノードに比べると圧倒的に少ないデータ量で済むからです。例えば、2018年7月31日現在のブロックヘッダの総容量は42.8MBです(ブロックヘッダのデータ80バイト × 現在の総ブロック数534,493ブロック)。このおかげで、デスクトップだけではなく、スマートフォン等の大きなデータを管理できないデバイスでも使用することが出来ます。

ただし、SPVノードはフルノードと接続する必要があります。これは、SPVノード単体はフルノードとはちがい、UTXOの管理ができないため、あるトランザクションがブロックに含まれているかどうかを判断することが出来ないからです。UTXOとは、Unspent(送金されていない)Transaction(取引) Output(出力)の略です。まだ使用されていないの残高にあたります。

ですのでSPVノードは、信頼できるフルノードや、リスク分散のために複数のフルノードに、接続することが必要となります。

 

Bitcoin WednesDay

オランダの歴史のあるBitcoinコミュニティである、Bitcoin Wednesdayが五周年イベントを行いました。プレゼンしませんかと招待が来ましたのでオランダまで行ってプレゼンしてきました。

今回のイベントは、cyperpunk界隈の伝説的人物 Phil Zimmerman, チューリング賞を受賞しているMIT教授Silvio Micali、 Drivechainの発案者 Paul Sztorc、Bitcoin界隈での有名HacktivistであるAmir Taakiが集まるという超豪華イベントでした。

Crypto Steelを使ってみた!

Nayutaの広報、Hitomiです!

今回は、絶対に失くしてはいけないRecovery Seedの保管にCrypto Steelを使ってみました。

この記事は、1. Crypto Steelとは何か2. Crypto Steelの使い方3. Crypto Steel自体の保管方法、という3構成になっています。前回記事(Trezorを使ってみた!前編)で、Rcovery Seedについて書いていますので、気になる方はこちらもチェックしてみてください。

20180522_111354_thumb1

 


1. Crypto Steelとは何か

Crypto Steelとは、Recovery Seedやパスワード、秘密鍵などを保管できるオフライン手段です。イギリスのSWORD社が提供しています。単体でも購入することが出来ますが、Trezorの公式ショップからTrezorとセットで購入することも可能です。

Recovery Seedの保管方法はいくつか考えられるのですが、まずオンラインやコンピュータ上では絶対に保管してはいけません。写真として残しておくのも禁止です。これは、ハッカーからコンピュータ攻撃を受けると、Recovery Seedがハッカーの手に渡り、そのまま仮想通貨を盗み出されてしまう、といったリスクを避けるためです。

また、紙での保存も十分とは言えません。誤って他の紙書類と一緒に捨ててしまったり、火事など災害にあって失くしてしまったり、といったリスクが考えられるからです。

一方、Crypto Steelはその名の通りスチール製なので、火事や水害にあったとしても安全に自分の手元で保管し続けることができます。

Clipboard05

出典:https://cryptosteel.com/

 


2. Crypto Steelの使い方

前回記事では、Recovery Seedはリカバリーシートに記入して保管していました。今回は、そのRecovery SeedをこのCrypto Steelに移します。

20180521_171046

 

1. 箱を開封します。箱の裏側が説明書になっているので、それに従っていきます。

20180522_110930

20180522_110941

 

2. Cryto Steel本体と、アルファベットが刻まれた小さなスチール製のパーツが同封されています。パーツは飛び出る可能性があるので、箱を覆っている透明のフィルムを慎重に開けます。

20180522_111105

20180522_111207

 

3. 本体をスライドして開けます。表に1-12、裏に13-24までが刻まれている板が出てきます。

20180522_111354

 

4. 右端をドライバーで回しながら、指で指している部分を引っ張り出します。

20180522_111437

20180522_111717

5. リカバリーシートを見ながら、1番目の英単語(今回はWineを例にします)のパーツを用意します。

20180522_111619

6. 本体の1番目の列に英単語を入れます。入れにくいので、ドライバーなどを使って押し込んでください。リカバリーシートと同じように順番通りに、正確に、入れていきます。

本体には1単語につき4文字までしか入りませんが、Recovery Seedは4文字目が分かると自動的に1単語に絞られるようになっています。ですので、4文字のみを保管することになります。

20180522_114038

20180522_112136

7. 24単語すべて埋めたら、完成です。リカバリーシートはシュレッダーで細かく刻んで捨てましょう。

 


3. Crypto Steel自体の保管方法

Recovery Seedを保管するために有効なCrypto Steelですが、このCrypto Steel自体をどこに保管するかということを考えなければいけません。金庫など安全な場所に保管しましょう。

また、高額の仮想通貨を持っているならば、XapoCoinbaseが提供する保管サービスなどを利用してもいいかもしれません。

Trezorを使ってみた!後編(2018年6月現在)

Nayutaの広報、Hitomiです!

前編に引き続き、後編ではTrezorの使い方を紹介します。

開封初期設定トランザクション(受信)→端末情報削除&リカバリートランザクション(送信)という構成になっています。

20180521_142027

 


開封

1. 商品が到着します。このとき、DHLに関税と消費税の立替金を支払います。今回は、約3000円かかりました。

20180521_123716

 

2. 中身を取り出したら、まず開封された形跡がないことを確認します。特に、箱を覆っている透明のフィルムが破られていないか、箱の上下に貼られているホログラムがきれいな状態であるか、を確認します。これは、自分の手元に届く前に中身がすり替えられている危険性があるためです。

20180521_123834

20180521_123946

 

3. 開封します。ホログラムを1度剥がすと、元のきれいな状態には戻りません。(写真中央)箱もしっかりと糊付けされているので、力を入れて開けてください。箱の一部が既に開いていたり、すんなり開いてしまった場合は、第三者によって開けられた可能性を疑ったほうがいいかもしれません。

20180521_124353

20180521_125202

20180521_125333

 

4. 同封されているものは、Trezor端末、USBケーブル、説明書、リカバリーシート2枚、シール4枚、ストラップです。

20180521_125609

 


初期設定

1. 要るものは、Trezorセットと自分のコンピュータのみです。Windows(Ver.7 以上) や Mac OS X(Ver.10.11以上)、Linuxといった様々なOSからブラウザで使用可能です。また、USB On-The-Go (aka USB Host)のあるAndroid端末でも使用できるようです。今回は、Chrome(Windows 10)を使っています。

2. https://trezor.io/start/にアクセスし、購入した端末を選択します。今回は、「Trezor One」を選択して進めます。

 

3. 推奨ブラウザのChrome(またはFirefox)で、Trezor Bridge というソフトウェアをダウンロードします。インストールが終わったら、一旦ページを更新します。

 

4. 自動的にこの画面に移るので、USBケーブルを使ってコンピュータにTrezor端末をつなぎます。

 

5. firmwareをインストールします。

 

6. インストールが完了したら、コンピュータ画面に戻り、「Ctrate new」を選択します。このとき、Trezor端末にもインストール完了を伝えるメッセージが表示されます。

20180521_165128

 

7. 禁止事項に目を通します。自分の資産を安全に保管するために重要なことが書いています。例えば、オンラインで秘密鍵を保管しないこと、といった内容です。

Trezor6

8. 24個のRecovery Seedを、付属のリカバリーシートに記録します。Trezor端末にRecovery Seedが表示されるので、必ず順番通りに、正確に、付属の紙にメモしていきます。

※順番を間違ったり、誤った内容を記録してしまうと、二度と取り出せなくる可能性があるのでご注意ください。

例えば、端末に「1st word is: Wine」と表示されたら、シートの1の枠にも「Wine」と記入します。記入を確認したら、端末の「Next」を押して、2番目の記入に進みます。

絶対に全ワードが載ったRecovery Seedをアップロードしないでください。悪意のある第三者に知られると、保有する仮想通貨を、違う端末で復元されてしまうので、すべて失うことを意味します。

20180521_171046

 

9. 1~24まで記入が済んだら、1番目の単語から再確認していくよう求められます。再確認が完了したら、次はTrezor端末に名前を付けます。(漢字も入力可能です)

 

10. 1~9で構成されるPINコードを設定します。Trezor端末に数字がランダムに表示されるので、それを見ながらコンピュータ画面のマス目をクリックします。

セキュリティ上、PINの強度が Strong Enough という表示になるまで、数字を入力するのが理想的です。PINが設定し終わったら、確認のために再入力します。このとき、端末上の数字の配置が変わっているのも確認してみてください。(写真3枚目)

20180521_172032

20180522_100605

 

11. お疲れさまでした。これで初期設定は終了です。


トランザクション(受信)

1. コンピュータ画面の左側にある「アカウント#1」をクリックし、上のバナーにある「受信」を選択します。

16

2. 新しいアドレスが自動的に作られているので、「show full adress」を選択します。この時コンピュータ画面とTrezor端末に受信用アドレスが表示されます。端末の「continue」を押すと、コンピュータ画面にQRコードが表示されるので、アドレスまたはQRコードを送信側の人に伝えます。

Clipboard01

Clipboard02

3. 受信を待っている間、「トランザクション」を選択すると、取引がどのような状態であるかをタイムリーに確認することが出来ます。実際に見てみると、先ほどのトランザクションがUnconfirmed(未確認)の状態であることが確認できました。また、「Details」を選択すると、より詳細の状態を見ることが出来ます。

18

Clipboard19

 

4. Transactionのアドレスを、BlockchainchainFlyerなどのトランザクションが確認できるサイトで検索してみるのも面白いかもしれません。

25

 

5. Unconfirmedの状態が日付と時刻に変わったら、取引完了です。

Clipboard04

Clipboard011


端末情報削除&リカバリー

ここでは、Recovery Seedを使って、端末情報のリカバリー(回復)をテストしてみます。一度テストしておけば、万が一の時にも安心です。テストなので、Trezorウォレットの残高は、失っても大丈夫な約100円の状態で行います。

1. Trezorのアイコンが表示されている場所をクリックし、「advanced」を選択します。ページの一番下にある「端末を消去する」を選択します。

Trezor11

 

2. 全データが消えるという警告を確認した後、Trezor端末で「Do you really want to wipe the device?」という表示が出るので、Confirmを選択します。

12

20180522_101154

 

3. これで端末情報の削除は完了です。一旦、端末を抜きます。

 

4. 続いてリカバリーをします。再度端末を接続すると、この画面が出てくるので、「Recover wallet」を選択します。Trezor端末で「Do you really want to recover the device?」という表示が出るので、Confirmを選択します。

20180522_101827

5. Recovery Seedを入力します。端末上で要求される順番に従って、コンピュータで入力していきます。

20180522_101838

 

6. 全て正しく記入したら、この画面に自動的に移ります。あとは、初期設定で行った手順でPINと端末名を決めます。

15

 

20180523_104853 (1)

7. 元の端末に入っていた残高や取引履歴が元に戻っていることを確認したら、リカバリー終了です。

 


トランザクション(送信)

1. 「送信」を選択します。受信先のウォレットのアドレス、送る額、手数料を記入します。手数料の金額によって、トランザクションが完了する予想時間が変化します。コストと時間のバランスを考えて、手数料を決めます。

22

 

2. PINを入力します。

23

 

3. 送信を待っている間、「トランザクション」を選択すると、取引がどのような状態であるかをタイムリーに確認することが出来ます。実際に見てみると、先ほどのトランザクションがUnconfirmed(未確認)の状態であることが確認できました。

24

Clipboard014

4. Unconfirmedの状態が日付と時刻に変わったら、取引完了です。

Trezorを使ってみた!前編(2018年6月現在)

Nayutaの広報、Hitomiです!

今回は、Trezorというハードウェア型ウォレットを使ってみました。

この記事は、1.Trezorとは何か、2.Trezor(ハードウェア型ウォレット)を選んだ理由、3.ハードウェア型ウォレットに関するセキュリティ情報とCrypto Steelについて、という3構成になっています。Trezorの具体的な使い方については、後編で紹介しています。

TrezorのWebサイトやウォレットアカウントの仕様は、2018年6月上旬のものです。

 


1.Trezorとはなにか

Trezorとは、ハードウェア型ウォレットの製品シリーズ名です。チェコに拠点を構えるSatoshi Labsが提供しています。今回購入したのは、Trezor One(約11,000円)です

New

出典:https://trezor.io/start/

このTrezorと並んで有名なのが、フランスのLedger社が提供しているLedger Nanoシリーズの製品です。

ledger

出典:https://www.ledgerwallet.com/products

そもそも、ハードウォレット型ウォレットは、仮想通貨を自分手元で安全に保管・使用できるという特徴を持っています。この詳細については2.で説明していきます。

Trezorには、絶対に他人にバレてはいけない秘密鍵が入っており、この秘密鍵を使って安全に取引を行います。(もっと厳密にいうと、中の秘密鍵を使ってトランザクションに署名をします。)

Trezorが対応している仮想通貨の種類は段々と増えており、特に2018年の2月末に出荷したTrezor Model Tは約500種類に対応しているようです。なお、EthereumやNEMなどの特定の仮想通貨は、別のインターフェース(EthereumですとMyEtherWalletMyCrypto)と連携させることが必要となります。

 


 

2. Trezor(ハードウェア型ウォレット)を選んだ理由

ウォレットにはいくつかの種類があります。例えば、取引所が運営・管理してくれるウォレットや、サービス業者がそれを担うウェブウォレット、他にもモバイルウォレットやペーパーウォレット、ハードウェア型ウォレットと呼ばれるものです。

今回は、リスクと安全性を考慮して、Trezor(ハードウェア型ウォレット)を選びました。

ウォレットの種類を選ぶ際に気にかけたい事としてまず、「誰が秘密鍵を管理するか」が挙げられます。具体的には、取引所やサービス事業者といった「誰か」に預けるか、それとも、「自分自身で」管理するか、です。

前者の場合、第三者が管理してくれるのは楽ですが、リスクの面からみると、サーバーがハックされたり、その会社が倒産したり、ソフトウェアにバグが残っていたりと、自分たちの手に負えないところで問題が発生する可能性があります。

一方、後者の管理についてはすべて自己責任となります。自分で管理する方法としては、先ほども挙げた、モバイルウォレットやペーパーウォレット、ハードウェア型ウォレットがあります。名前から想像しやすいように、モバイルウォレットはスマートフォン用のアプリ、ペーパーウォレットは紙で出来たウォレットです。これらは、前者のように第三者を信用する必要がない代わりに、どうにかして秘密鍵を自分の手元で保管しなければなりません。

次に気にかけたいことは、紛失してしまった場合の想定です。モバイルウォレットはスマートフォンを紛失すると、ペーパーウォレットは火事などで燃えてしまうと、中に入れていた仮想通貨も一緒に失います。

一方、Trezorは、秘密鍵を自分の手元で管理するだけでなく、端末を紛失したとしても、秘密鍵・残高・取引履歴を新しい端末にリカバリーできるように設計されています。これにはRecovery Seed*というものが使われます。また、Trezorを使う時にはPINコードが必要であり、紛失した端末を他人が不正に使おうとしても、このPINを当てることは不可能に近い設計になっています。これは、PIN入力を間違えれば間違えるほど、次にトライ出来る間隔が指数関数的にどんどん延びていくからです。(例えば19-20回目間の入力では35時間待つ必要があります)

加えて、ハッカーがコンピュータに攻撃を仕掛けてきたとしても、Trezor独自のPINの入力方法により、PINコードが知られることはありません。

このように、リスクと高い安全性を考え、Trezorを選びました。もともと、P2Pマネーの本質は、個人で秘密鍵を管理することです。安易に第三者を信用せずに、自分で自分の資産を管理します。

しかし、安全性というのは確実に保障されるものではありません。お気づきの方もいるかもしれませんが、Trezor自体は盗まれても問題ありませんが、Recovery Seedを盗まれるとOUTです。ですので、Trezorを使うときは、これらをきちんと保管することが非常に重要になってきます。このRecovery Seedの保管については、3.で記載しているので気になる方はチェックしてみてください。

*決定性ウォレットアドレス用のマスター鍵を作るために必要となる乱数列が変換された12 、18 または 24つの英単語のことを指す。乱数列のままだと覚えにくい(記録しにくい)ため開発された。例えばwine、cat、machine。

20180521_171046

 


3.ハードウェア型ウォレットに関するセキュリティ情報とCrypto Steelについて

ハードウェア型ウォレットの安全性の高さを記述したものの、現状としては、必ずしも安全であるとは言い切れません。実際に下に挙げている事例は、ハードウェア型ウォレットの安全性に関係するものです。

2015年 電磁波を照射したり、電圧を上下させたりといったサイドチェーン攻撃を加えることで、Trezorから秘密鍵が盗みだせる可能性がこの時期に指摘された。例えば、オシロスコープを使って、ファームウェア1.3.2の状態のTrezorから秘密鍵が読み取ることが出来てしまう。(この後、Trezor側によって対応済み)

2017年11月 ユーザーのクリップボードがハックされた。宛先アドレスをクリップボードにコピーして貼り付ける際に、マルウェア作成者が所有するアドレスにすり替えられる仕組み。

2018年2月 LedgerウォレットのChromeアプリが起動するPC自体に、マルウェアが侵入する可能性が指摘された。宛先アドレスを生成するコードが改ざんされ、マルウェア作成者のもとへ送金される仕組み。

2018年5月 モバイルウォレットアプリの元開発者がapiキーを不正に所持し、独自で作ったアプリを通して、ユーザーから仮想通貨を盗んだ。

他にも、本来は自分で設定すべきPINがすでに書かれた偽の説明書に従ってしまい、そのまま仮想通貨を盗みとられるという事例や、カンファレンスなどで偽Trezorが無料で配られるといった事例も起こっています。

このような事態に巻き込まれないためにも、自分の手元でしっかりと管理していきます。その第1歩として、紛失してはいけないRecovery Seedを厳重に保管しましょう。次回は、その手段として使用したCrypto Steelのレポートを書いていきます。

20180522_111354