[開発] WEBサービス内のユーザ間でXEMのやり取りを実現する設計パターン

2018/03/30 16:50
30 XEM
NEM
Webサービス内のユーザ間でXEMをやり取りする方法を考えています。
MONAコインの場合、moveというコマンドがあり、これを使うと同じwallet内にある複数アドレス間(アカウント間)で、瞬時に手数料なしでお金の移動ができます。
NEMにはこれに似たオフチェーンでお金をやり取りする仕組みはあるでしょうか?・・・質問1

もしない場合、WEBサービス内のユーザ間でのXEMのやり取りを実現する設計は次の2つのいずれかをとることになりそうなのですが、この理解であっていますでしょうか?・・・質問2

設計パターン①:ユーザ毎にアドレスを用意し、サービス内のユーザ間での送金はNEMのグローバルチェーンで実現する
設計パターン②:全ユーザで1つのアドレスを共有し、サービス内のユーザ間での送金はNEM以外の独自のシステムで実現する

それぞれのメリットとデメリット
設計パターン①
・デメリット1:サービス内のユーザ間での送金であっても、グローバルチェーンを使うので手数料がかかる
・デメリット2:サービス内のユーザ間での送金であっても、グローバルチェーンを使うので送金に時間がかかる
・メリット1:入金の際に、メッセージなしでもアドレスだけでユーザを判別できる
・メリット2:どのユーザがいくら持っているのかの管理はNEMのブロックチェーンがやってくれる
・メリット3:残高を超える二重送金の防止は、NEMのブロックチェーンの残高不足が検知するので独自に検証する必要はない

設計パターン②
・メリット1:サービス内のユーザ間での送金においては、手数料がかからない
・メリット2:サービス内のユーザ間での送金においては、送金に時間がかからない
・デメリット1:入金の際に、メッセージを使ってユーザを判別する必要がある
・デメリット2:どのユーザがいくら持っているのかの管理を独自のシステムで実現する必要がある
・デメリット3:残高を超える二重送金の防止は、独自のシステムで実現する必要がある

この質問への回答は締め切られました。

ベストアンサー

A.3
2018/03/31 19:43
質問1
NEMの機能としてオフチェーンでやりとりする仕組みは今のところ無いと思います。
Catapultのアグリゲートトランザクションを使うと手数料を他の人が代替することは出来るようになるかもしれませんが、無料でという形にはなりません。

質問2
基本的には記載通りの理解で良いと思います。
設計パターン1はその通りだと思います。
設計パターン2は、他の方も回答しているとおりTipNemがこれに該当します。
記載されていないメリットとしては、独自システムになるので機能追加が比較的容易(NEMとは無関係に実装出来る)というのがあります。
デメリットとしては、独自システムなのでバグが出やすいことや、Gox対策としてのセキュリティ対応(秘密鍵の管理、マルチシグの対応等)が必要になる等が考えられます。
※パターン1でも送金等で秘密鍵を扱う場合やサービス内容によっては、セキュリティ対策が必要となる可能性もあります。

ベストアンサー以外の回答

A.1
2018/03/30 21:41
オフチェーンでのやりとりだと、近いのはtipnemかなぁ・・・
A.2
2018/03/31 02:43
私もtipnemが浮かびました。
現時点で、WalletとTwitterアカウントがあれば利用できるので、より利便性の高いものにならなけれ、あえてそちらを使う必要性が見出せないと思ったのが正直なところです。

①の場合、個々人のやりとりで差し支えないのでは、と思います。
そもそもの、手数料、時間は通常のやりとり通りかかるわけですし、間にサービスを挟むことに対するメリットが必要かと…
XEM払いフリマサイトのネムシェなどが近いかなと。

②に近いのはTipnemやザイフのチャットッチップなどですかね。
相手と枚数を指定するだけで手数料なしで瞬時に送ることができます。

短いNEM暦で思いついた範囲ですが、参考になりますと幸いです。