プロトタイプその1の詳細

NEM(XEM)で支払い、かざすだけ。

プロトタイプその1の詳細

Tofucashプロジェクト

このページは「スマートフォンをかざしてNEM/XEM決済できるようにする」プロジェクトの記事です。

 

この記事では、作成したプロトタイプの処理の詳細と課題について、簡素ではありますがまとめました。

 

プロトタイプその1

最低限の機能を持つプロトタイプを作成しました。

「最低限」とは、「スマートフォンをかざして情報を取得し、ブロックチェーンネットワークへトランザクションを送金する」ということを指しています。

先日、実際に動作する動画を撮影してツイートしました。

 

 

多くの方に見て頂き、RT・いいねを頂きました。

ありがとうございます!大変励みになります。

 

処理の詳細

どのような処理をしているか、箇条書きで簡単に書きます。

 

  1. 非接触ICリーダと決済端末には受取アカウントのNEMアドレスを用意しておく。
  2. スマートフォンには、送信アカウントの秘密鍵を用意しておく(現在はハードコーディング)。
  3. 決済端末で「非接触ICリーダに近づいたスマートフォンに受取アカウントのアドレス、数量、メッセージを送信する」ソフトウェアを実行する。
  4. スマートフォンを非接触ICリーダに近づけ、情報を読み取る。
  5. 読み取った情報からTofucashアプリが起動する。
  6. 読み取った情報から受取アカウントのアドレス、数量、メッセージを取り出して送金の準備をする。
  7. トランザクションを作成し、送信アカウントの秘密鍵で署名する。
  8. スーパーノードにAPIを使ってアナウンスし、ブロードキャストしてもらう。
  9. 終了

 

課題

上記の処理の番号に対応した課題を書きます。

 

  1. 攻撃者によって受取アドレスが書き換えられる可能性
  2. 秘密鍵のハードコーディング、平文保存
  3. 決済端末のGUIがない
  4. 非接触ICの通信盗聴(FeliCaは盗聴に強いらしいが、NFC Type A/Bはどうか)
  5. アプリ起動に一度タップする必要がある(これはOSの仕様なので変えられないだろう)
  6. 読み取ってすぐに送金をすると、金額や送金先が確認できない(送金しますか?のダイアログ表示)
  7. メモリ上の秘密鍵を読み取られないような工夫が必要
  8. スーパーノードが一つのIPのみ、ハードコーディング
  9. 送金後、決済端末がTXの確認、着金を行っていない

 

1はモザイクやアポスティーユを用いて解決する方法を考えています。

実装方法を考える必要がある部分と、まだ単純に実装していない部分があります。

その他、まだまだ課題は多く存在します。

次は、とりあえず秘密鍵ハードコーディング部分とUIの改良に取り組んでいきたいと思います。

 

お読みいただきありがとうございました。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です