FeliCa × Sui — オンチェーン決済デモンストレーション

いつものカードが、
ウォレットになる。

日本でいちばん身近な IC カード「FeliCa」を、Sui ブロックチェーンがそのまま検証。カードの真正性を根拠に、タッチと顔だけでオンチェーンのウォレットが動きます。

  • 専用アプリのインストール不要
  • 新しいカードの発行不要
  • 秘密鍵の管理不要

手持ちの交通系 IC カードと顔だけで、チャージ・支払い・残高照会。

Why SuiCash

共通鍵の世界と、公開鍵の世界をつなぐ。

FeliCa は共通鍵暗号、ブロックチェーンは公開鍵暗号。本来交わらない 2 つの技術を、オラクルとゼロ知識証明でつなぎます。

2 つの暗号技術のマージ

FeliCa カードを実際に持っていることをオンチェーンで検証。カードの真正性を根拠に、Sui 上のスマートコントラクトが動きます。

新しく持つものはゼロ

FeliCa は日本で広く普及した技術。財布にある交通系 IC カードが、そのまま暗号資産の入口になります。

マスアダプションへ

日本で暗号資産はまだ日常から遠い存在。慣れ親しんだ「タッチ」の体験に載せることで、その距離を縮めます。

Features

カードと顔だけで、ここまでできる。

カード固有の IDi を軸に、登録からチャージ、支払いまでを一気通貫で提供します。

顔 × IDi をオンチェーン登録

スマホの登録サイトで、顔とカードの IDi を紐づけて Sui に登録。顔データそのものが外部へ送信されることはありません。

IDi がそのままウォレットに

IDi をシードに Account Abstraction ウォレットを自動生成。秘密鍵もシードフレーズも、利用者は一切管理しません。

IDi 宛てにチャージ

送金先はカードの IDi だけ。ルータが対応するウォレットを解決して着金します。アドレスのコピペはもういりません。

ZKP でアンロック

顔と IDi のゼロ知識証明(Groth16)でウォレットをアンロック。カードの所持と本人の顔、二要素で守ります。

How it works

タッチが、オンチェーン決済になるまで。

端末へのワンタッチから Sui 上での送金完了まで、検証の連鎖でつながっています。

カードをタッチ

決済端末が FeliCa カードと通信し、カード固有の IDi を読み取ります。利用者の操作はこれだけです。

オラクルが真正性を検証

FeliCa オラクルがカードとの相互認証で「本物のカードがいまここにある」ことを確かめ、結果に署名します。

顔 × ZKP でアンロック

顔認証と IDi から Groth16 証明を生成。オンチェーンの検証器が通れば、ウォレットの鍵が開きます。

Sui 上で決済

IDi から導出された AA ウォレットが送金を実行。残高も履歴も、すべて Sui のオンチェーンに記録されます。

Screens

実機で、動いています。

登録サイトと決済端末 Hi-CARA の実際の画面です。

登録サイト
01登録サイトスマホで顔とカードを登録。残高とウォレットもここで確認。
カードをタッチ
02カードをタッチ決済待機中の端末に、手持ちの交通系 IC カードをかざす。
顔認証
03顔認証端末のカメラで本人確認。証明の生成へ進む。
支払い完了
04支払い完了引去額と残額を表示。送金は Sui 上で完了している。
残高照会モード
05残高照会モード同じ端末で、カードをかざすだけで残高を確認。
残高を表示
06残高を表示本人確認のうえ、オンチェーンの残高を表示。

Under the hood

端末からコントラクトまで、フルスタックで実装。

モノレポの中に、物理カードと Sui をつなぐすべての部品が入っています。

Move
sui/felica_oracle

FeliCa 証明の検証・ZK 検証器・ゲートを担う Sui コントラクト群。

Rust
server

カードとの相互認証を行い、検証結果に署名する FeliCa オラクル。

Rust
prover

顔 × IDi の Groth16 証明を生成するプルーバ。

React
face-auth-ui

決済端末 Hi-CARA で動く顔認証・タッチ決済 UI。

React
regist-web

利用者がスマホで顔とカードを登録するウェブサイト。

Rust
usb-poc

RC-S380 リーダと実物のカードで検証した PoC。

マスコットの「ちいきも」です。

ちいきもは、ペンギンと「なにか」のキメラ。左右で長さの違うフリッパー、低い重心、顔の幅より大きく裂けた口。SuiCash のカード券面の右側で、いつも決済を見守っています。