PiyoPay
めちゃくちゃ雑だけどなんとなく作りたいものができた。Ether でなんちゃって即時決済するやつ。
決済用 QR コードを読んでから3秒くらいで決済できる。
Ethereum のトランザクションがブロックチェーンに追加されるまで数十秒ほどかかるので、Ether を決済に使うのは厳しいのをどうにかしたくて作った。
プロトタイプでは、iPad が決済端末(レジ)になっていて、金額を入力して確認ボタンを押すと、決済用 QR コードが表示される。
iPhone のウォレットアプリで決済用 QR コードを読むと、決済端末である iPad とウォレットである iPhone が BLE で自動接続される仕組み。
BLE 経由で、決済端末から Ether の送付先アドレスと金額を取得、iPhone のウォレットでトランザクションに署名をして、署名済みトランザクションを決済端末に送り返す。
決済端末は署名の検証と、送付金額・ウォレット残高やnonceを確認して、問題がなければ決済完了とする。
署名検証部分は作りきっていないけど実装できることは確認した。
決済端末は、任意の、しかしなるべく早いタイミングで署名済みトランザクションを Ethereum ネットワークに送信。
ウォレットが別のトランザクションを実行できなくなってしまうためなるはやにする(nonce はトランザクションごとにインクリメントされる)
多少の不正と不便を許容するなら、もしかすると対面でかつ少額だったらこの方法は使えるかもしれない?
https://youtu.be/_OkHZMfBIzs
関連