2016.02.19
BlockChain実装のnemで仮想通貨を扱ってみる
1. 初めに
次世代システム研究室のT.Mです。
今回はBlockChainの一つの実装であるnemのネットワークに接続して遊んでみたいと思います。
2. nemについて
http://nem.io/
(リンク先に警告が出る場合はサイトの閲覧をしないようにしてください。)
nem は BitCoin と同様な BlockChain の一実装であり、仮想通貨としてXEMを扱います。
BitCoin との大きな違いは、パブリックなネットワークで、どのようにトランザクションを信頼するかという点ですが、この記事ではそこまで踏み込まず、一旦トランザクションを実際に動かすことで、仮想通貨を扱うイメージを共有したいと思います。
3. nem テストネットワークに接続する
nem にも BitCoin と同様に「testnet」と呼ばれる、価値の仮想通貨で自由に取引が検証できる環境が用意されています。
また、そこに接続するためのクライアントも用意されていて、今回はそのクライアントツールを使って仮想通貨を操作します。
3-1. クライアントソフトのダウンロードと起動
http://bob.nem.ninja/installer/
(リンク先に警告が出る場合はサイトの閲覧をしないようにしてください。)
のページから、lightwallet-standaloneをダウンロードして解凍します。
(執筆時点では「lightwallet-standalone-1.7-cdn-nginx1.8.zip」)
解凍パスワードは上記のページ内に記載されているので、それを使用します。
このファイルには、nginx が内包されているので、内部の「start-nginx.bat」を起動するとデフォルトブラウザにてクライアントアプリが起動し、すぐに nem ネットワークに処理が投げられるようになっています。
3-2. 接続先ネットワークの選択とアカウント作成
下の画面が起動時の画面になります。
適当に接続先のネットワークを選択し、「Connect」をクリックするとアカウント作成の画面に移ります。
「Add wallet」 から「I want to create a brainwallet (password-based)」 を選択すると、「Wallet name」 と 「Password」 が求められるので、任意の値を入力します。
これにより、次のことが行われます。
- nemネットワーク上に新規でアカウントが作成される
(privateKey, publicKey, ADDRESS が作成される。) - privateKeyとpublicKey がローカルストレージ上に保存される
(Wallet name と Password を入力することでクライアントソフトがこれらの値を使用してトランザクションを処理する。)
Walletが作成できたら、Walletを選択して「Login」を押せば、nemのネットワークに接続されます。
4. 取引をしてみる
4-1. 最初のお金をもらう
現在の状態はお財布があるけど、お金がない状態です。これでは、トランザクションを試すに試せません。
下記フォーラムでテスト用の仮想通貨をくださいと依頼してアドレスを公開すると、テスト用のお金がもらえます。
https://forum.nem.io/
4-2. お金を転送してみる
仮想通貨が振り込まれたら、転送開始です。
今回は試しに 1,000XEM を、もう一つ用意した別アカウントに振り込んでみます。
- 「Plain Transfer Transaction」を選択
- 転送先アドレスと、金額、パスワードを入力して「Send」
(クライアント内部ではprivateKeyで暗号化してP2Pネットワークにトランザクションを投げています。)
- 「Unconfirmed transaction」に取引が登録される
- 一定時間待つと「Recent transactions」に移動される
正確にはトランザクションが100%確定するまではもう少し時間がかかるのですが、Recent transactionに入れば、ほぼトランザクションは確定とみなすことができます。
(より詳細な説明については後日また纏めようと思います。)
これだけの簡単な操作で、仮想通貨を別のアカウントに移動させることができました。
5. まとめ
今回は、全体のイメージを掴むために、細かい話は抜きにして仮想通貨を取引してみるところに注力してみました。
nem には、他の仮想通貨にはない「Asset」などの概念が取り込まれていて、非常に面白い特徴があります。
また、BitCoinでは Proof Of Work の信頼性の担保の仕組みが膨大な計算量を必要として問題となっていますが、nem は Proof Of Importanceという概念を持ち込んでその問題を解消しています。
(本来はnemの本質はこの辺りにあったりするのですが。)
次回は、こういった nem 特有の特徴を踏まえて、もっと踏み込んだ話を題材にしてみたいと思います。
次世代システム研究室では、アプリケーション開発や設計を行うアーキテクトを募集しています。アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD