右や左の旦那様

哀れなぎんしゃりにお恵みを

仮想通貨

NEMモザイクで作るイベントチケット売買システム

投稿日:2018年4月7日 更新日:

概要

仮想通貨NEMでは、モザイク(mosaic)というトークンを誰でも自由に作ることができます。
このモザイクをイベントチケットとみなすことで、ペーパーレスかつXEM決済可能なチケット売買システムを構築できます。

利点

まず一番の利点はペーパーレスかつ仮想通貨による決済が可能であることです。

さらに本システムは転売に対して強固な耐性を持ちます。
NEMのモザイクには「発行者を介さない取引を許可しない」というルールを定めることができます。そのため、仮に転売屋がチケットを買っても、売ることができないので転売が成り立ちません。

また、本システムはネット上での取引かつXEM決済が可能なため、遠隔地へのチケット販売や集金が容易です。後に示す素案程度で良いなら、あなたがいますぐに手動で実践できます

登場人物

イベント主催者

イベントを主催する人です。
以下の行動をします。

  • チケットを刷る
  • チケットを売る
  • イベント参加者のチケットを確認する

イベント参加者

イベントに参加する人です。
以下の行動をします。

  • チケットを買う
  • イベント主催者にチケットを提示する

素案

チケットを刷る

本システムでは、チケット=モザイクです。
チケットとして運用するモザイクは、以下の通り発行します。

  • 初期供給量:チケット枚数
  • 可分性(小数点の有無):0(整数のみ)
  • 譲渡許可:転売を認めないなら不可。認めるなら可でも良い
  • 供給量変更可:追加チケットを用意できるなら可。最初から上限枚数があるなら不可
  • 徴収を要求:不可

なお、整理番号(席番号)はラベルとして付与するので、モザイク発行時には指定しません。

チケットを売る/買う

イベント参加者は対価を支払い、イベント主催者はモザイクを渡します。
主催者はモザイクを渡すときに、ラベルに整理番号(席番号)を記載します。

対価はXEMで支払うのが簡単でしょう。
主催者が確認可能であれば、現金決済でもクレジットカード決済でも自由にどうぞ。

チケットの提示/確認

イベント参加者は、NEMのアドレスを提示します。
イベント主催者は、参加者のウォレットにモザイクが存在することを確認して、入場させます。

素案の問題点とその解決

素案はかなり原始的なアイデアに絞っているので、実際に利用するにはいくつか問題があります。
問題点を整理し、解決策を考えてみましょう。

他者のなりすまし

問題点

素案では、参加者がNEMのアドレスを提示し、主催者がそのアドレスに存在するモザイクを確認していました。

アドレスを提示した人が、アドレスの所有者であるという証明が抜けています。
そのため、他人のアドレスを提示すれば入場できてしまう、という問題点があります。

そこで、現実世界の人間が、チケットモザイクを持つNEMアドレスの所有者であることを認証しなければいけません。

解決1:暗号化メッセージの内容を提示させる

NEMの取引では、取引に付随するメッセージを暗号化できます。
暗号化したメッセージは、送信者と受信者にしか復号できません。
そのため、NEMアドレスではなく、暗号化したメッセージの内容を提示させることで、アドレスの所有者であることを証明できます。

解決2:入場時に専用アプリで認証を取る

解決1では暗号化メッセージごと転売された場合に、なりすましが成立してしまいます。
NEMのシステムではそこまでは防げません。

そこで、新しい機能として、NEMアドレスを持つ2者間でのチャレンジレスポンス認証を実装します。
これはNEMネットワーク全体を改造せずとも、NEMの秘密鍵を利用する専用アプリとして実装できます。
イベント主催者とイベント参加者が専用アプリ同士で通信し、NEMアドレスの所有者を認証します。

NEMアドレスごと転売される

問題点

上記はNEMアドレスの所有者になりすます、という問題でした。
さらに一歩進んで、アドレスごと転売されてしまう場合、上記の対策では不十分です。

解決:専用アプリによるユーザ登録制

なりすましの解決に利用した専用アプリで、ユーザ登録させます。ユーザ情報はNEMネットワークとは別に管理します。
ユーザ登録時に身分証の情報を入力させ、転売屋の二重登録を防ぎます。

ユーザアカウントごと転売される問題は残りますが、それでもNEMアドレス単体よりは転売しにくくなるでしょう。

チケット売買の制御

問題点

いまのNEMネットワークだと、「XEMとモザイクを交換する」という作業が、1取引の中で完結しません。
そのため、

  • A:先にXEMを支払って、あとからモザイクを受け取る
  • B:先にモザイクを受け取って、あとからXEMを支払う

のいずれかになります。
Aの場合は、「チケットが売り切れたのにXEMを支払っちゃった」という問題が、
Bの場合は、「チケットを渡したのにXEMを払ってくれない」という問題があります。

解決:モザイクを2つに分ける

イベント主催者が発行するモザイクを、2つに分けます。
一つは「チケット予約券」、もう一つは「支払い済みチケット」です。
その上で、以下のように売買を行います。

  1. イベント参加者が、何らかの方法で参加申し込みを行う
  2. イベント主催者が、「チケット予約券」モザイクを参加者に渡す
  3. イベント参加者が、チケット代金を主催者に払う
  4. イベント主催者が、「支払い済みチケット」を参加者に渡す

イベント参加者は、「チケット予約券」がもらえた時点で参加できる権利が確定するので、安心して支払うことができます。

支払期限をあらかじめ提示しておけば、期限内に支払いがなかったチケットを再販売することもできます。

…正直メンド臭いので、NEMのバージョンアップによって、「XEMとモザイクを交換する」という取引が可能になることを望みます。

連番入場

問題点

いままでの話は、一人が一枚ずつチケットを購入する前提で、「買った人=入場する人」という扱いでした。
実際には複数人のチケットを代表して買う、という人が多いでしょう。
チケットを連番で発行するのは難しくないですが、転売対策を強化してしまったので、連番者にチケットを渡すのは少しむずかしいです。

解決1:同時入場を強制させる

買った人が全員分のチケットを代表して持ち、かならず同時入場してもらいます。
ただそれだけなので、仕組みが簡単です。

解決2:一度だけ他者への譲渡を許可する

2種類のモザイクを使い分けることで、「一度だけ譲渡できるモザイク」を作成できます。
用意するのは以下の2つ。

  • チケット本体モザイク
  • 譲渡権モザイク

ここで、「チケット本体モザイク」には譲渡許可を与えます。
ただし、手数料として譲渡権モザイクを徴収するように設定します。
そして譲渡権モザイクには譲渡許可を与えず、発行者にしか操作できないようにしておきます。

これで、譲渡権モザイクを利用すると譲渡できるモザイクが完成です。
あとは主催者がチケットを渡すときに、連番者の分だけ譲渡権モザイクを一緒に渡してあげれば、参加者が1度だけ譲渡することができます。

ただし、これは一度だけ転売を許可しているのと同じことなので注意してください。
また、専用アプリでの運用を行う場合、譲渡された人がユーザ登録されているかどうかわかりません。
新たな問題が多々発生すると思うので、この方法は非推奨です。

入場時のネットワーク不調

問題点

イベントというのは得てしてネットワーク回線が混雑しがちなものです。
入場待機列ではスマホの電波が入らない、というのはザラなので、入場時にインターネットに接続する必要があるとつらいです。

解決:専用アプリとQRコードによる通信

電波がダメならQRコードを使えばいいじゃない!ということでQRコードで通信させれば良いです。
参加者と主催者でチャレンジレスポンス認証が行えれば良いので、

  1. 参加者がQRコードでNEMアドレスを表示
  2. 主催者がQRコードで「チャレンジ」を表示
  3. 参加者がQRコードで「レスポンス」を表示

のようにすれば、3回のやりとりで認証できます。
…正直QRコードのやりとりが面倒なので、NFCなりBluetoothなりWi-Fiなりを使う方が望ましいです。
まぁ、やりようはいくらでもあるよ、ということで。

おわりに

ということでチケット売買システムを考案してみました。
わりと実運用に耐えられるつもりなので、どこかの会社が構築してくれるとうれしいです。
自分で作るのはメンディー。

-仮想通貨

執筆者:


comment

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

ビットコインをイチから説明してみる その3

この記事は前回の続きです。 ようやく本論に入るので、なんならここから読んだって構いません。 もくじ1 今回のお品書き2 ブロックチェーンとは3 「台帳」という言葉を一旦忘れる4 取引の記録がずらっと並 …

no image

草コインにお金を掛けるのはそろそろやめたほうが良い

もくじ1 自分の話2 草コインは、「危ない」2.1 モナコインとビットコインゴールドへの攻撃2.2 51%攻撃って?2.3 どういうコインが安全なの?3 草コインは、「実力を伴わない」4 どんな暗号資 …

セキュリティ面で見る仮想通貨と取引所

昨日のCoinCheck騒動で仮想通貨への信頼がまた揺らいでいます。 どうしてこんなに仮想通貨は流出しやすいの?というあたりを今回考えてみたいと思います。 ちなみに私は登録セキスペでもなければネットワ …

CentOSでXPdをビルドする

$XPの公式がどうやらUbuntu派っぽいんだけど、個人的にはCentOS派なのでメモ。 大前提 対象OSはCentOS7。 2018年1月14日現在(バージョン1.1.0)の情報なので気をつけること …

no image

ビットコインをイチから説明してみる その5

いちおう前回から続きます。 今回は、ビットコインとビットコイン以外の仮想通貨について。 もくじ1 「アルトコイン」は何が違う?2 名前が違う3 参加者が違う4 仮想通貨の目的が違う5 ルール(プロトコ …