WEBアプリケーションでNEMの取引きを行うクライアントプログラムの解説書です。
1203 views
本章ではクライアントアプリを作成する上で、認識しておくべきNEMのシステムの概要について説明します。
NEMは、クライアント・サーバーモデルを使用します。
サーバー側のプログラムのことをNIS(NEM Innfrastructure Server)と呼びます。
NEMのアーキテクチャを図3.1に記します。
図3.1 NEMのアーキテクチャ
非常にシンプルです。
図3.1に記す①のブラウザや、②のpythonやjavasciptといったスクリプトから③のNISサーバに直接アクセスできます。
しかも、通信経路はHTTPです。SSLによる暗号化を行いません。
となると、次のような問題を想像するかもしれません。
「AさんがBさんに10XEM送金しようとしたときに、通信経路の途中でデータをCさんが改ざんし、AさんからCさんに10XEM送るようにできてしまうのでは?」
これに対しては、送金時にデジタル署名を付与することで、改ざんされているかどうかを検出できるようになっています。
改ざんはNISサーバで検出され、ブロックチェーンに取り込まれない仕組みになっているので大丈夫です。
[ご参考]
NISのHTTP通信によるやりとりとHTTPSの必要性
「NEMはメッセージも送れるけど、盗聴されてしまうのでは?」
XEM以外にメッセージも送信できますが、メッセージは暗号化されているため、盗聴もできません。
ただ、アドレスに入っているコインの量は見ることができます。
[ご参考]
NEMのメッセージ暗号化の仕組み
HTTPでも心配なさそうとはいえ、②のサードパーティのプログラムを作成する場合、自分でデジタル署名のプログラムや暗号プログラムを書く必要がありそうです。
あまり自信のない人は、提供されているライブラリを使うのが賢明と言えるでしょう。
ラッパーライブラリはNEMの公式サイトにあります。
https://nemplatform.com/developers/
なお、Wikipediaでは次のような図がアーキテクチャの図として用いられています。
間違いではないですが、NCCはスーパーノード以外での使用は推奨していないようです。
[ご参考]
★★ウォレット関連情報まとめ★★
Page 3 of 6.