ネム(NEM)とは?ネム(NEM)のアプリケーション開発の始め方!アプリ開発ハードルが低い仮想通貨

ネム(NEM)のアプリケーション開発の始め方

どうも、絶賛ささみばっかり食べるダイエット中のヤバWEB(ヤバイWEB屋さん)です。

今日は

ネム(NEM)のアプリケーション開発の始め方

について書いていくよ!

主に開発者向けの内容

だから、それ以外の人はさらっと読んで「ふーん!」でいいかなって思ってるよ←

ちなみに先日、ネム(NEM)の勉強会に参加してきて
そのときの資料が参考になるよ〜!

参考 ブロックチェーン:NEMを学ぼう

そもそもネム(NEM)とは?ネム(NEM)ってなに?

ネム(NEM)っていうのは

New Economic Movement

を由来としていて、

新しい経済活動の構築

を目的とする暗号通貨なんだよね!
もともとは、ビットコイン2.0のひとつであるNxtの改良プロジェクトとして位置付けられて2014年から始まってるんだよね!

ビットコイン2.0…?

うぇぶ子

ヤバWEB(ヤバイWEB屋さん)

ビットコインはもともとP2Pでの決済を目的として作られたデジタル通貨なんやけど
ここで使われてる技術がブロックチェーン技術って呼ばれてて
このビットコインのブロックチェーンを通貨以外に活用するような技術のこと「ビットコイン2.0」って呼ぶんだよね!
ブロックチェーン技術!最近よく聞くやつだ!

うぇぶ子

ヤバWEB(ヤバイWEB屋さん)

そうだね!ビットコインのブロックチェーンの技術をうまく応用して、
独自通貨の発行であったりメッセージの送信投票なんかの機能を提供するプラットフォームとしてできたのがNxt

このNxtProof of Stake(PoS)っていうアルゴリズムを採用してて
ネム(NEM)ではProof of Stake(PoS)を改良した

Proof of Importance(PoI)

っていうアルゴリズムを実現することを目指してるんだよね!

簡単にProof of Importance(PoI)について説明しておくと

長期間保持するほど重要度が下がり

コインを多く利用するほど重要度があがる仕組み

みたいなロジックを組み込んでるみたい!

コインの流動性を高めて富の偏りを防ぐ

といったことを実現したいなどの独自のアイデアがあるんだよね!

貧富の格差が広がることを防ごうとしている

暗号通貨ってこと!

ネム(NEM)のソースコードの一部はすでに公開されていて
ゆくゆくはOSSとして全部公開していくようにするとのこと!

NEMのソースコードも一部はnem.coreとして公開されており

▶︎ NemProject/nem.core

英語やけど動画での紹介もあるよ〜!

通貨名はXEM(ゼム)で国内の取引所やとZaif(ザイフ)Coincheck(コインチェック)で購入することができるよ!

ネム(NEM)で出来ること

今回は、ネム(NEM)のアプリケーション開発の始め方について書いてくんやけど
まずネム(NEM)で出来ることをざっくりこの3つとりあげて説明するで!

NEMの特徴
  1. モザイクと呼ばれる独自通貨の発行
  2. マルチシグ
  3. NEM Apostille Serviceと呼ばれる公証機能

他にもあると思うけど、
ネム(NEM)でアプリケーションを作成したい場合は、
上記についてざっくり知っておくとアプリケーション開発に役立つと思うよ!
簡単にそれぞれ説明していくね!

モザイクと呼ばれる独自通貨の発行

ネム(NEM)ではNano Wallet(ナノウォレット)を使用することで
プログラミングの知識なしに独自通貨を発行することができるよ!

モザイクの発行者は

モザイクについて
  1. モザイクの送金に手数料を設定して徴収
  2. モザイクを第三者間で取引することを制限する

などの設定もできるんだよね!
これをプログラミングなしでぽちぽち設定して作れちゃうのは
かなり魅力的!

マルチシグ

マルチシグっていうのはめちゃ簡単に言えば

送金するのに複数の秘密鍵が必要になる

っていう仕組み!
NEM(ネム)ではこのマルチシグっていう機能を取り入れてるんだよね!
詳しくは以下の記事が参考になるよ!

▶︎ NEM(ネム)マルチシグ設定方法と落とし穴|xemを安全に保管する

NEM Apostille Service(ネムアポスティーユサービス)と呼ばれる公証機能

このNEM Apostille Service(ネムアポスティーユサービス)っていうのは

任意のデジタルデータの存在証明や正当性の保証をブロックチェーンにより実現

する仕組み!
要するにデジタルなデータ(ファイルや画像など)がちゃんと不正な改ざんを受けないように
存在しているかどうかをチェックする仕組みがあるんだよね!

これがうまく応用できれば
国や特定の期間に依存することなく非中央集権的に不動産登記や戸籍登録なんかを証明することができちゃう!
ってこと!

ネム(NEM)についてもっと知りたい!
っていう人は下の記事でめちゃ詳しく紹介されてるから
読んでみるといいかもしれないね!

▶︎ NEM (暗号通貨)

ネム(NEM)でWEBアプリケーションを開発!参考になるドキュメントも紹介!

ネム(NEM)はプロトコルベースでアプリケーション開発を行うことができるんやな!

ネムはアプリケーション開発のために

独自のAPI

を提供してくれてて

開発者は目的に応じて

APIのエンドポイントを叩くだけ

でアプリが作れてしまうってわけや!

特定のプログラミング言語に依存しなくても開発できちゃう

っていうのはかなりハードルが低いかな!って感じてる!

イーサリアム(Ethereum)も同じようにブロックチェーン技術を使用した
プログラムを実装することができるんやけど

イーサリアム(Ethereum)の場合は

Solidity

っていう独自のプログラミング言語

を使用して開発するんだよね!

イーサリアム(Ethereum)の場合やと、
自分で実装したプログラムをイーサリアム(Ethereum)のプロックチェーンに取り込んでもらって
ようやく実行可能になるんやけど

ネム(NEM)の場合は

アプリケーションサーバー

は自分で用意する必要がある!
っていうのがイーサリアム(Ethereum)と大きく異なるね!

ネム(NEM)は特にAPIのエンドポイントさえ叩ければ
ソースコードをブロックに取り組む!みたいなことが必要とされないんだよね!

ヤバWEB(ヤバイWEB屋さん)

ただ、この点は開発ハードルが低いとはいえ
透明性の点やサービスダウンしない!みたいな耐障害性の点など
ビットコインやイーサリアムの思想とは相容れない部分が多いなぁ
って感じてる!

アプリケーションサーバーがダウンすれば

サービスが一時的に使用できくなる

し、サービスが終了すれば

二度と全く同じサービス使用することができなくなる可能性

もあるってことだからね!

この点は個人的にはちょっと微妙なんじゃないかなぁって思ってる!

ちなみに、イーサリアム(Ethereum)については簡単にやけど
前に記事で説明してるから読んでみてね!

イーサリアム(Ethereum)とは?イーサ(Ether)は2018年のいま全力買いすべきなのか?

ネム(NEM)のアプリケーション開発で参考になるドキュメント・ツール

前置きが長くなったけど
開発をするときに参考になるドキュメントについて紹介していくで!

まずドキュメントやけどAPIの仕様書は必読やで!

APIマニュアルの和訳の方が
日本人エンジニアはとっつきやすいかな!って思うから
まずはAPIをざっくり見てみることをおすすめ!

で、実際の開発にはNode.jsのSDKが用意されていて
これを使えばスムーズに開発できそう!

SDK: QuantumMechanics/NEM-sdk

また、Nano Wallet(ナノウォレット)を使用して
テストネットでの動作確認テストなんかもできるから
ダウンロードしておくようにすると開発がスムーズ!

詳しいやり方なんかは以下の記事が参考になるよ!

▶︎ NEMのテストネットワークで独自通貨を試す

ネム(NEM)のグローバルハッカソン!ネムアプリを作るときに参考になるソースコード

ちなみに、ネム(NEM)は

NEM Global Hackathon(ネムグローバルハッカソン)

っていうのを開催してたみたいで
そこにいろんなサービスの応募があったんだよね

応募サービスは以下のURLからみることができるよ!

▶︎ Qualifiers Archive – NEM Global Hackathon

例えばSOCIALCAKEっていうサービスは

アーティスト、ミュージシャン、作家、そしてあらゆる種類のコンテンツ制作者が、
いつも共有していたどこにいても、ファンに直接コンテンツを簡単に販売できるようにする。

っていう内容で動画もみることができるよ〜!

で、なんとこれらの応募作品はオープンソースで開発されてるから
そのコードをアプリケーション開発するときに参考にすることができるってこと!

例えばSOCIALCAKEの場合だとソースコードは以下のリンクに公開されてるよ!

▶︎ SocialCake/SocialCake

ネム(NEM)のアプリケーション開発の始め方

以上、ざっくりやけど
最後にネム(NEM)のアプリケーション開発の始め方についてまとめると

まとめ
  1. APIの仕様書を読む
  2. 実際にNANOWalletを触ってテストネットで動かしてみる
  3. グローバルハッカソンの応募サービスのソースコードを読んで参考にしてみる

っていう流れが個人的にはいいんじゃないかなぁ!って思ってる!
自分もまだ昨日、NEM(ネム)のアプリケーション開発について知ったばかりやで
まだアプリ開発まではできてないんやけどね←

今後、ちょこちょこサービスつくってみたいなぁ!って思ってるよ!