暗号通貨に関する事など

暗号通貨に関する覚書など。メモや日記。

※技術的なことに関して、間違っていたらコメントから指摘していただけると泣いて喜びます

仮想通貨NEM NanoWalletの基本操作

はじめに

 NanoWalletの基本的な使い方に関する質問のうちmijinフォーラムに質問が多い部分を中心に、簡単に説明していきます。(特に質問としてよく見かける部分のみ)



ホーム画面での操作

 特に書くこともないので画像をもって説明とします。NanoWalletは精力的にアップデートがされており、それらのアップデートはユーザーの為にされているアップデートなので、バージョンは常に最新のものを使用しましょう。最新バージョンの確認はNEMの公式サイトで。



3種類のウォレット作成画面

 NanoWalletを初めて使うとき、また、モバイルウォレットやNCCなどからウォレットを移植するときに遭遇するウォレット作成画面ですが、NanoWalletには3種類のウォレット作成法があるので、それぞれ説明していきます。


■シンプルウォレット

 初めてウォレットを作成するときはこのシンプルウォレットで良いでしょう。但し、このシンプルウォレットで生成される秘密鍵はNCCで生成されるものよりセキュリティのレベルが低い危険性があります。技術的な説明は省きますが、その旨画面にもしっかりと注意書きが書かれています。
(この画面に限らず、画面に表示される注意書きは必ず読みましょう)



■ブレインウォレット

 シンプルウォレットと似たようなものかと考えてしまいますが、ブレインウォレットを使用するときは特別な注意が必要です。


 ブレインウォレットのパスフレーズは、シンプルウォレットのパスワードと違い、パスフレーズそのものが秘密鍵と直接結びつきます。そのため、注意書きにもありますが使用するときはとにかく長く(最低40文字以上)、できるだけランダムなパスフレーズを使用しましょう。
 このパスフレーズが盗まれることは資産が盗まれることを意味します。


 個人的にですが、私はあまりブレインウォレットを使用することはないです。



■プライベートキーウォレット

 プライベートキーウォレットは秘密鍵を指定してウォレットを作成することが出来ます。


 主にモバイルウォレットを移植したり、NCCで生成したウォレットの秘密鍵を直接使用してウォレットを移植するときに使用される機能だと考えてよいです。



■結局、どれを使えばよいのか
 取引所での保管をやめて、初めてNEMのウォレットとして使用したい時にはシンプルウォレットを、他のウォレットから移植したい時にはプライベートキーウォレットを使用すると良いでしょう。


 もちろんブレインウォレットを使用しても構いません。ランダムな、とても長いパスフレーズを使用した場合、そのブレインウォレットはセキュリティ的に優れているものとなるでしょう。
(ログインする時にパスフレーズを全て打ち込むので、ログインが大変にはなりますが・・・)



ウォレット作成画面で出てくる注意書き

 ウォレットを作成するとき、上記のような注意書きが表示されると思います。この注意書きは途中書いてあることがわからなかったとしても必ず一度全て目を通しましょう。


 この画面になると、何かのファイルがダウンロードされると思います(拡張子がwltのファイル)。そのファイルはウォレットファイルのバックアップになるので、安全な場所に保管しておきましょう。


 また、秘密鍵を表示してそれをオフラインの環境(紙に書く、画面をデジカメで撮る、クリプトスティールにセットするなど)で安全に保管することも忘れずに行ってください。



結局のところ、何を保管しなくてはならないのか

 NanoWalletで資産を保管する上でバックアップを取らなくてはならないものは主に3つです。

  1. 秘密鍵 (最重要。必ずオフラインで保管すること)
  2. パスワードまたはパスフレーズ (同じく最重要。必ずオフラインで保管すること)
  3. ウォレットファイル:拡張子wlt (バックアップは複数箇所に分散して保管することを推奨)



ダッシュボードでまず最初に確認すべきこと

 さて、ウォレットを生成してログインするといよいよNanoWalletを使用することが出来るようになるわけですが、ここで確認すべきことがあります。


 画面右上の「ノード」の部分を見てください。この部分が上記図のように赤い丸となっているとき、あなたのNanoWalletはNISサーバーと正常に通信ができていない状態になっています。


 これは「ノード」部をクリックした後、上記図のように接続先のノードを変更すれば良いだけなので、赤い丸が緑の丸になるノードを探して接続先を変えましょう。



ウォレットバックアップデータの出力

 ウォレット生成時にウォレットのバックアップファイルを保管することになると思いますが、万が一消してしまったときなどに、再度バックアップファイルを出力するには、上記図の赤枠の場所を操作してバックアップファイルを出力することが来ます。


 また、秘密鍵の出力、モバイルウォレット移植用のQRコードの出力なども、この画面で出来ます。



困ったことがあったら

 mijinフォーラムを検索しましょう。調べてなければ、mijinフォーラムで聞きましょう。多くの場合、誰かが答えてくれると思います。



最後に

 NanoWalletの基本的な操作のうち、送金などを飛ばしてmijinフォーラムなどでよく質問として出てくる部分を抜粋して説明しています。分からないことがあれば根気よく調べ、それでもわからなければフォーラムで聞きましょう。


 また、基本的な心構えとして、仮想通貨は自己の責任において管理されるものです。例えばあなたが間違ったアドレスに資産を送ってしまった場合、それを取り返すのは極めて困難(事実上不可能だと考えて良い)です。
 そのため、ウォレットの使い方もそうですが、何よりまず最初に最悪無くなっても良い金額でテストして、仕組みを理解してから実際に使用することを強くおすすめします。

Segwitに関して調べた記録4


前回の続き



Witnessと署名検証に関して

 Segwit(BIP141-BIP145)で新たに導入されるWitnessという構造は、それ以前のBitcoinscriptとは異なる部分が多い。


 例えば、Witnessは今までのBitcoinscriptのように、OpCodeを淡々と処理した結果がtrueであれば署名を正当なものと判断するのではなく、検知した“バージョン”毎に決められた処理を行い、その結果を署名検証の結果とする。


 また、OP_CHECKSIGを行うときなどに使用される署名用のメッセージ(SHA-256doubleHashされる前のデータ)も、今までのように署名前のTxにLockscriptを差し込んだものを使用するのではなく、新しく決められたルールによってシリアライズされたデータを用いる。
(シリアライズは今まで通りHashTypeによってそのルールが異なるが、このブログでは一般的に使われるSIG HASH ALLのみに関して書く)



バージョン0のWitnessProgramとLockscript

 ここではまず、WitnessProgramが何をもって「このLockscriptはWitnessProgramだ」と判断するのか、ということについて書く。


 Segwit後もLockscriptはそれまでと同じようにTx-outのLockscriptフィールドに入れられ、署名検証を行うとき、適宜WItnessProgramか、レガシーなBitcoinscriptかを判断してそれらにあった方法で署名検証が行われる。


 現在はバージョン0のWitnessProgram(P2WPKH,P2WSHの二種類)のみが定められており、下記条件をWitnessProgramのトリガーとしている。


■version0のP2WPKH

  1. Lockscriptが"0"から始まる(この0をバージョンバイトと呼ぶ)
  2. 1byteのバージョンバイト(0x00)に続き、20byteのデータプッシュが続く
  3. 対応するTx-inのunLockscriptが空の状態である


 ここで注意が必要なのは、P2WPKHに使用する公開鍵は圧縮形式の公開鍵でないと受け付けられないという点だ。


■version0のP2WSH

  1. Lockscriptが"0"から始まる
  2. 1byteのバージョンバイト(0x00)に続き、32byteのデータプッシュが続く
  3. 対応するTx-inのunLockscriptが空の状態である



 バージョンバイト(0x00)に続くデータはP2WPKHの場合は圧縮された公開鍵(先頭が0x02または0x03で始まる公開鍵)をHash160(SHA-256_RIPEMD-160)したものであり、P2WSHの場合はredeem-scriptをHash256(SHA-256doubleHash)したデータである。


 上記の他に、既存のP2SHでネストさせる方法とそのトリガーもあるが、ここでは紹介しない。簡単に言うと、LockscriptがP2SHで、redeem-scriptにP2WPKHやP2WSHを閉じ込めることも可能であるということだ。


 Segwitに対応したノード、クライアントは上記フォーマットのLockscriptを検知すると、Witness用の署名・検証に処理を移す。



署名検証

 では実際、P2WPKHやP2WSHをノードやクライアントが検知した場合、どういった署名検証の処理を行うのか。

 バージョン0で定められているP2WPKHとP2WSHの処理の内容は実際のところ、それまでのP2PKHやP2SHと変わらない。例えばP2WPKHの場合、Witnessに [signature] [publickey] の順にデータが格納され、検証の際にはpublickeyHashをP2WPKHに格納されたそれと照らし合わせ、一致すれば [signature] [publickey] をECDSA検証器にかける。

(流れはP2PKHの OP_DUP ... OP_CHECKSIG と同じ流れ)



未知のバージョンを検知した時

 現在バージョン0のみが定められているという話をしたが、例えば未知のバージョンが検知された時、WitnessProgramはどういった動きをするか。


 結論から言うと、未知のバージョンを検知した時WitnessProgramはそのLockscriptをANYONE_CAN_PAY(誰でも使用することが出来るTx-out)として処理を行う。つまり、誰が使用したとしても署名検証を通す。


 なぜこんなことをするのか、それは将来新しいバージョンのWitnessProgramをフォークして追加した時に、後方互換を意識しなくて済むようにするためだ。新しいプログラムを追加した際、古いノードがネットワークに紛れていても、そのノードはそのTx-outをANYONE_CAN_PAYとして取り扱うので、特別な後方互換手段を用意する必要がなくなる。




次に署名用メッセージのシリアライズの話に移りたいが、長くなってしまうのでここで一旦区切る。
〜5に続く〜

仮想通貨 NEMに関する情報をまとめた 2017/05/23

NEM公式サイト

 ニュース、ブログ以外は基本的にローカライズされているので臆せずサイトを覗いてみよう。また、ブログの記事はGoogle翻訳にかけるだけで十分読めるものも多いので、ひと手間かかるがぜひ読んでみよう


以下、プロダクト・プロジェクトを中心に簡単に紹介していく


NIS/NCC

 NEMの基本ソフトだ


 NIS(NEM Infrastructure Server 直訳:NEMの基本構造サーバー)がNEMのベースとなる機能部分で、NCC(NEM Community Client 直訳:NEMコミュニティのクライアント)がウォレットソフト部分である


 NCCは後述するNanoWalletの登場で現在はメインで使うことが推奨されていない。ウォレット機能だけ使いたい人は次のNanoWalletを使おう



NanoWallet

 NEMコアが開発した軽量のウォレットだ。ウォレット機能のみを使用したい場合は、現在はこちらの使用が推奨されている。公式サイトからダウンロードしてファイルを解凍後「start.html」ファイルを開くだけで使用できる



アポスティーユ Apostille

 NanoWalletに実装されている機能の一つで、ブロックチェーンの改竄不能性を利用して「その時そのデータがそこに存在しており、そのデータに関する権利者はこの人である」ことの証明ができる機能だ


 似たような機能でProof of Existenceと呼ばれるものがあるが、それとの違いは「後から柔軟に権利所有者の変更が出来る」ところにある



ランドステッド LandStead

 アポスティーユに一部機能が似ているが、こちらは機能というよりはユースケースの一つ。NEMの機能を利用して土地などの資産の所有権を登録しておけるサービス



ラックスタグ LuxTug

 こちらもアポスティーユ機能のユースケースの一つ。高級腕時計などが偽造品ではない証明をする目的で、ブロックチェーンを利用する。通常の鑑定書よりもオープンな場所に偽造品でないことの証明が残るため、購入者はより安心して買い物が出来るようになる
(YouTubeの紹介動画を載せておく)

LuxTag.io powered by NEM Blockchain | A brief explainer video



カタパルト Catapult

 現時点でNEMプロジェクトの中で一番大きなプロジェクトといえばこれ。現在のNEMコア(中核機能)に変わる新しいコア機能。処理性能の向上、API機能の分離、mijinとのコア機能の共有が行われる


 カタパルト以降、NEMとmijin間で互換性を持った新しいAPIを利用したツールは今より高性能になったNEMとmijin双方の力を得ることが出来るようになる



Xhai Studios

 マレーシアのスマホゲーム開発チームがスマホゲームにNEMのウォレット機能を組み込むプロジェクトを進めている。今はxemによる課金機能といった基本的な機能の実装中のようだが、今後独自トークンを利用するなど、動きがあると面白いと思う。あと、そもそもNEMを選択した理由にも注目したい
(Xhai Studiosの読み方誰かおしえてください)



ベルギーアントワープの件(mijin)

 こちらはmijinのプロジェクトになるが、載せておく。mijinではこのプロジェクトの他にも、日立のポイントサービスの件、さくらインターネットとアララの件など注目したい取り組みはいくつもある。ぜひ、mijinのプレリリースページを覗いてみよう



NEM UDON FOUNDATION

 日本のNEM好きが集まって資金を出し合って結成した任意団体です。
 ※公的な財団ではありません


 NEMを使って何か作りたい、こんなの作った、という人は開発資金の補助、報奨金など、あるかもしれません
 サイトURL : https://sites.google.com/view/udon-foundation/



取引所

 一年前はPoloniex(通称polo)で買うしかなかったのに、一年でこれだけ増えました


 ■ Zaif
 ■ Poloniex
 ■ BTC38
 ■ Bittrex
 ■ Bitcoin Indonesia
 ■ Bter
 ■ HitBTC
 ■ LiteBit
 ■ alcurEX
 ■ CoinCheck(現在は取引所内での売買のみ可能。入金・出金は非対応)



より詳しい情報

 より詳しい情報を知りたい、他にも情報はないかとお探しの方は以下のサイトから記事を検索してみましょう



■クリプトストリーム
 NEM知っててクリプトストリーム知らない人なんているの?ぐらい有名なサイトです。このブログに書いてある内容は“触り程度”の情報なので、より詳しい情報はクリプトストリームで



■NEM東京
 NEMに関する情報はここにも。Faucetやショップなど、NEM好きによる個人の活動もまとまっています
サイトURL : http://nem.tokyo/



■kataribe
 NEMに特化したサイトではなく、ブログプラットフォームですが、NEMに関する記事が多いプラットフォームでもあります。xemホルダーであり握力を高めたい方はliangさんの記事がおすすめです



■NEMの説明書
 用語などの基本的なところがまとまってあり、かつ、見やすいサイトになっているので、おすすめです。開発者向けAPIテクニカルリファレンスの和訳もあります



■仮想通貨購入ナビ
 内容に古いところがあるので注意が必要だが、NCCを使用していて困ったことがあると、こちらを覗いてみると解決することがあるかもしれない



困ったことが起きたら

 NEMに関することで困ったことが起きたら、何よりもまず、mijinフォーラムで解決策がないか探しましょう。解決策が見つからない場合は、そのまま投稿してください
(投稿するには登録が必要ですが、メールアドレスの確認だけですぐ登録できます)


 ■よくある質問
 ・突然残高がゼロになった!
 ・送金できない!
 ・パソコンを新しくしたけどどうやってウォレットを移植すればいいの?



最後に

 駆け足でざっくりまとめました。NEMはmijinとの関係ほか、最近NEMを知った人には理解しにくいところも多々あるかと思いますが、幸いNEMは日本語の情報が多く、またmijinに関しては世界に先駆けて日本語で一次情報を掴めるという特徴があります。是非一緒に追いかけて理解を深めていきましょう


 また、漏れ、間違い等あれば追加、修正しますのでコメントよろしくお願います