見出し画像

#ETHDenverでウォレット技術のトレンドシフトの兆候

(これは私が英文で公開した「Trend shift of wallet technology at #ETHDenver 」の和訳です)


Dai, xDai とクロスチェーンDappの台頭

Austin Griffith が作った “BuffiDai”と呼ばれるxDai (MakerDAOのステーブルコインDaiを基軸通貨とするProof Of Authority ネットワーク上の通貨)ベースのコミュニティ通貨がハッカソン開催中に食事の決済などに全面的に使われていました。会場にブースを構えるスポンサー企業の中にはBuffiDaiでグッズ販売などもしていました。


私が#ETHBerlinで初めてxDdaiの存在を耳にしたとき「数団体によってのみ管理されるより中央集権的なイーサリアムネットワークに果たして価値はあるのだろうか」と言った懐疑的な声がいくつか聞かれました。確かに   Aragonのようなガバナンス系のDappがxDaiに全面的に移行することはないと思いますが、POS的な用途としての使い道が ETHDenverで証明されたと言ってよいでしょう。

他にも興味深かったのはイーサリアム上で一番人気のあるウォレットであるMetamaskがあまり使われなかったことです。なぜならMetamask上からxDaiを使うには各ユーザーがいちいちxDaiネットワークにつなぐためにCustom RPC設定変更をする必要があったためです。

その点BuffiDaiを使うための目的で作成されたBurner WalletはイーサリアムのメインネットとxDaiネットワークをつなぐための設定が自動的にされているため、ユーザーに “Custom RPC”と言ったわかりづらい用語を見せる必要もありません。


Dappそのものにウォレット機能を組み込むことで開発者は自分達のユースケースに適した設定にカスタマイズが可能になります。

組み込み型ウォレットの種類

#EthDenverハッカソンの会場で私は組み込み型ウォレットをいくつか目にすることになりました 。組み込み型ウォレットはPortis.ioが先行しているのですが他にも以下のようなプロジェクトがあります。

https://fortmatic.com
https://www.portis.io
http://bitski.com
https://universallogin.io

Fortmaticはハッカソン開催中に発表された新製品です。

彼らの目玉機能は電話番号のみでウォレットを作成できる手軽さにあるのですが私の目を特に引いたのはDapp上でイーサリアムネットワークを自動指定できるカスタマイズのしやすさでした。

これは些細な点に見えるかもしれませんがUX向上に非常に役立ちます。なぜなら「間違ったネットワークに接続されています」と言ったメッセージを出す必要がなくなるからです。

 Fortmaticや他の組み込み型ウォレットを (and probably can do with any embeddable wallet)使うことでDapp上で使いたいネットワークに自動的に接続可能となります。

ただそうなるとDapp開発者に次に突きつけられる疑問は「どのソリューションを使うべきか」です。

アカウント管理をMetamaskやStatusと言った専門ウォレットに任せていた際はDapp開発者は「ウォレットをダウンロードしてください」と言ったメッセージを出しておくだけで終わりでした。

しかしながら組み込み型ウォレットはDapp開発者の方で自ら統合する必要があります。しかも一度選択したら乗り換えが比較的難しくなります。「全部と統合してユーザーに選ばせたら?」という選択肢もあるかもしれませんが多分ユーザーに選ばせても当惑するだけでしょう。なぜならこれらの組み込み型ウォレットはどれも新しくブランド価値がないだけでなく、B2B商品なのでユーザーが直接目にするものではないからです。

Universal login

いくつかある組み込み型ウォレットの中でUniversal LoginはENS(Ethereum Name Service)サブドメインをユーザーIDとして採用している点で少しアドバンテージがあるかもしれません。ユーザーは Aragon, Gitcoin,  Statusと言った馴染みのあるDappのサブドメインを経由してログインすることが可能になるからです。

これはWeb2.0スタイルのログイン方法と少し似通っています。自分が日頃から使うアプリのログイン方法をそのまま使えるからです。

ただ私が「少しアドバンテージがある」と言ったのには理由があります。なぜならAragonGitcoinと言ったDappはENSのサブドメインをユーザーに付与はしていますがUniversal Loginそのものとはまだ統合されていないので、現状では人気Dappのサブドメインを利用してログインすることはできないし、そうなるまでにはまだまだ時間がかかると思われるからです。Statusは自身がモバイルウォレットである点で競合とも言えますが Status自身がUniversal Loginと統合することでウォレット からチャットアプリへと方向転換することも可能です。ちなみに私はENSで開発者として働いているのでUniversal Login とENS推しにはバイアスがかかっていることもお忘れなく。

Universal Walletの誕生


Universal loginはスマートコントラクトベースのマルチシグネチャアカウントであったり複数デバイスでの認証を可能にしたりと多機能なのですがその中の目玉機能の一つとして「メタトランザクション」があります。

メタトランザクション

メタトランザクションはイーサリアムにデータを書き込む際にマイナーに払う「ガス」という概念を抽象化し、ユーザー以外の第三者がガスの支払いを肩代わりすることを可能とするデザインパターンです。これもBurner walletを作成した Austin Griffithが発案したものです。

実をいうと私はこのアイデアが大嫌いでした。なぜなら「第三者がガスの支払いを肩代わり」という際の「第三者」はDapp自身をさすからです。

メタトランザクション推進者はこれをマーケティングのための必要コストだと言いますが、個人的には賛成し兼ねます。なぜならこのガスコストによってWeb2.0のフリーミニアムモデルに慣れきったユーザーに対し、「全てのサービスにはお金がかかる」ということを再教育することになるし、何よりマイクロペイメントに対する障壁を非常に低くしてくれるからです。

たとえ最初だけガスコストをDappが払うことにしたとしてもいつになったらユーザーが実際にガスコストを払い始めてくれることになるのでしょうか?

エクスチェンジで個人認証などをしてイーサを獲得することはクレジットカード決済よりもハードルが非常に高くなります。ゲームなどの一部のアプリケーションではユーザーがゲームにどっぷりはまり込むまで課金の時期をずらすという戦略はありだと思うのですが(イベント参加者が登録の際にイーサを必要とする)Kickbackでは使えない戦略です。

そのためUniversal Loginには興味はありつつもWyreのようなクレジットカード決済を可能とする仕組みでユーザーが簡単にイーサを買えるような仕組みと込みでしか使いたくないなと思っていました。


ETHDenverはイーサリアム業界のキープレーヤーが一堂に会する場所だったのでこう言った可能性を模索するにはもっともな機会でした。

Marek Kirejczyk ( Universal Loginを開発実装したETHWorks の創業者)と Kyle Bryant(Universal Login SDKのコントリビューター)と共にWyreと Universal loginを「create2」という、2月後半のハードフォーク後に搭載される新機能を用いてプロトタイプしてみることにしました。

「create2」を用いた「Counterfactualデプロイ」というテクニックがあります。Counterfactualというのはここで説明が出ているのですが、「Counterfactualデプロイ」を自分なりに一言で表現すると「後出しジャンケン」。そもそもメタトランザクションは「ユーザーがそのうち自分でお金を払ってイーサを購入してくれるだろう」という見込みに基づいてDappがガス代を建て替えているのですが、「Counterfactualデプロイ」は逆に「指定のアドレスにお金を払い込んでからコントラクトコードをデプロイします」という逆転の発想。それがなんでcreate2という新たに加わるコードで可能となるかというと、まだデプロイされていないコントラクトコードに紐づいたアドレスを計算可能な所にあります。

またメタトランザクションはガス代をイーサで払う必要はなくERC20互換の通貨であればよく、USドル互換のステーブルコインであるDAIを指定することもできます。

ETHDenverの開催期間中、事あるごとにMakerDAOの人たちから「KickbackいつDaiサポートすんの?」とせっつかれていました。


サポートしていない理由はたくさんあるのですが、理由の一つに「そもそもDaiを買うのも結構面倒臭い」というのがあります (Mariano Conti は給料をDaiでもらっている人なのでKickback使うためにわざわざ DAI から イーサに返還しなければならない唯一の人だと思います) 。(少額購入には本人確認を必要とせずカードで購入できる)Wyreで DAIを購入してもらい、それでガス代も払うことでユーザーから暗号通貨的な側面を完全に秘匿することが可能になります。これも些細なことですがUXを大幅に向上することになります (そしてアカウントにENSを使うことであの長ったらしい16進数を見せる必要もありません)。

create2 は ETHDenverにくるまで全く知らなかったコンセプトです。 James Youngはこのフィールドではパイオニアで関連ブログをいくつか書いているのですが彼がハッカソンの間なんども我々のところまで立ち寄ってくれたのは非常に助かりました。またLevel Kの Chris Whinfreyにも大感謝です。

彼は当初私たちのチームに参加予定だったのですがcreate2関連のコードを書いてすぐ別のチームに移っていきました。私がしたことはcreate2関連の動作確認をするテストコードを書いたぐらいです。しかしながら彼は途中なんども戻ってきてはわからないところを教えてくれたりしました。

create2に対して一つ学んだことなんですが、結構使い方は汎用的で、私たちが使ったコードは再利用可能なものがほとんどです。多分すぐにもっと簡単に再利用できるライブラリーが出てくるんではないでしょうか。

The pitch


ハッカソンにはなんども参加したことがあるのですがここまでの大規模なものに参加したのは初めてです。まるでスピードデートに参加しているような(実際に参加したことがあるとは言ってないですよ!)感じで、たくさんのテーブルにチームが一列に並んでジャッジがくるのを不安ながら待っていました。私たちを審査したジャッジの一人は知り合いだったので「ラッキー、僕たちを選んでね!」と言ったら「いや、ジャッジってそういうもんじゃないから」と軽くいなされました。ジャッジの一人はかなり詳しく我々のデモを審査していくつか弱点にも突っ込んできました(メタトランザクションって最初にENSネームをとるときにも使えるの?など)。そう言ったところは正直に「いや、そこは実装してません」と白状しておきました。

正直言って我々のプロトタイプは完成には程遠くメインネットまでデプロイできませんでした。デモは全て自分たちのマシンから行いました。そしてWyreがDaiを送ってくるところはフェイクトークンでシミュレートしています。スマートコントラクトのところもあまりデモできる状況ではなかったので、コードを見せてどういう風に統合するか説明するに終わりました。

ハッカソンベテランである Kyleは「ファイナルに選ばれるにはMainnetにデプロイしてすぐに使えるようにしとかないとね」と言っていたのでまさかファイナルに呼ばれるとは全然期待していませんでした。

決勝ピッチの10分前に気が付いたので急いで“Chill zone” にいたKyleを叩き起こしました。 Marek に至ってはどこにいるのかわからなかったのでツイッターで会場に呼びかけました。


幸いにも我々のチームの発表は後の方だったので準備する機会は十分ありました。

大観衆の前でピッチする機会はそうそう訪れるものではないのでこれをチャンスとばかりにKickbackとENSの宣伝の準備をしました。


ここぞとばかりに急遽Kickbackイベントも開催することにしました。開催場所はコロラドが舞台の風刺アニメSouth Parkにも登場するメキシカンレストラン兼テーマパークのCasa Bonitaです。このイベントを例になぜuniversal wallet が必要なのかを説明しました。


チームメイトであるMarekはめちゃめちゃ緊張すると言っていました。大衆の前でピッチする緊張感だけでなく、発表寸前に審査員から「どこの部分までがSDKでどこまでがハッカソンんで作ったものなの?」と待ったがかかったためです。なのでピッチではハッカソンで作った部分を明確にするようお達しがきていました。


最終的には優勝はしませんでしたが “The spirit of Buidl” という敢闘賞的なものをいただきました。


私たちの提出作品URLはいかにあります。何度も念をおしますが使い物になるにはまだまだの出来ですが、今後とも継続的に開発を続けKickbackに統合できるようになればと思います。


この記事が気に入ったらサポートをしてみませんか?