ライトニングが使いやすくなる!?サブマリンスワップとは

アトミックスワップとは

コインの交換を2者間で行うことです。通常は、株式の売買でも仮想通貨の売買でも取引所が売り手と買い手の仲介役となり取引を行うことが一般的です。仲介役の役割は、売買相手をマッチングさせたり、取引の執行を確実に行うことです。例えば、アリスがビットコインを売って、ライトコインを買いたい場合を想定してみましょう。まずは、取引所がライトコインを売ってビットコインを買いたい相手ボブを見つけてくれます。そして双方がそれぞれのコインを取引所に預けます。双方がコインを送金したことを確認後、取引所はアリスへライトコインを、ボブへビットコインを送金します。これがザックリとしたコイン交換の1つの方法です。しかし、もし取引所なしでこの取引を実行しようとする場合、相手を信用する必要があります。例えば、アリスがボブへビットコインを送金したのにボブがライトコインを送金してくれない場合やその逆も然り。そのリスクを回避するために第3者として取引所が仲介してくれます。

しかし、取引所はその仲介役を買って出てくれる一方で、取引の数パーセントを手数料として取ることがあります。そこで、アリスとボブの2者間で取引をする場合、相手を信頼することなく完全に取引を実行するための方法をアトミックスワップと呼び、スマートコントラクトを使うことで可能になります。


サブマリンスワップとは

では、本ブログの本題のサブマリンスワップについてです。サブマリンスワップとは、オンチェーンの資金とオフチェーンの資金を交換する方法で、Alex Bosworthによってプロトタイプが開発されました。

アリスはライトニングネットワークを使いたいと考えますが、ライトコインしか持っていません。こんな時はサブマリンスワップの出番です。アリスがライトコインを資金としてライトニングネットワークへチャージすることはできませんが、ここでサブマリンスワップを提供してくれるボブがいたとします。まず、アリスは自身のライトニングネットワーク対応ウォレットから請求書(インボイス)を作成し、ボブへ渡します。次にボブはその請求書からあるスマートコントラクトを作成し、特別なライトコインアドレスを生成し、アリスへ渡します。アリスは、その特別なライトコインアドレスへコインを入金します。ボブは、その入金を確認後(この時点ではまだライトコインはまだボブのものではありません)、アリスからもらった請求書に対しライトニングペイで支払いをします(この時点でアリスの目的は達成されました:ライトニングに資金がチャージされました)。支払いが完了するとレシートが受理できます。このレシートが重要で、これを使うことで先に生成した特別なライトコインアドレスからコインを取り出すことができるのです。これでボブもライトコインを受け取ることができ、コインの交換が完了しました。


背面下では

ボブが作成したスマートコントラクトは下記のようになります。

https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js

if(hash(preimage) == invoiceId){
    checkSig(presentedSig, sendtoPubkey)
}else if(height > refundHeight){
    checkSig(presentedSig, refundPubkey)
}

ここで重要なのがpreimageです。これはアリスが発行した請求書と関連付けされており、請求書の支払いが完了すると支払い者にレシートとして渡されます。このpreimageのハッシュ値を取るとinvoiceIdとなります。なので、ボブが作ったこの契約の1行目は、請求書の支払い後に受理するレシートを使うとコインをボブのライトコインアドレスへ移動できるこをと表しています。また、3行目については、ボブが請求書を支払わずにある一定時間が過ぎると、アリスのライトコインアドレスへ移動できるというものです。


ユーザーのメリット

どれほど需要があるか分かりませんが、現状ではライトコインしか保有しておらず、ライトニングを使おうと思う場合、一度shapeshiftなどでライトコインからビットコインへ交換してからライトニングへチャージするという流れになります。それが直接ライトコインからライトニングへチャージができるので簡単になりますね。

また、ユーザーが、取引所に預けたコインを使ってライトイングネットワークを始める時、もし取引所がまだライトニングに未対応であった場合でも、取引所はスワップ提供者を探しだし、その人にユーザーの請求書を渡します。スワップ提供者は特別なアドレスを生成し取引所に送付します。取引所がユーザーのコインをその特別なアドレスに送金した後、スワップ提供者はライトイングペイでユーザーの請求書の支払いをします。これでユーザーは取引所に保管してあったコインを使ってライトイングネットワークに資金をチャージすることができます。


スワップの応用~エコシステム構築~

販売者にとってライトニングでの一番の問題は受取が難しいことです。ユーザーが販売者と直でペイメントチャネルを開いていれば問題ないのですが、そうでない場合、販売者とチャネルを開設している相手とのチャネルバランスにおいて、相手側にある程度の資金がないといけません。そこで上記のスワップを応用します。

販売者であるトムはキャロルとペイメントチャネルを開設しおり、アリスもキャロルとチャネルは開設済みだとします(各チャネルバランスは以下の通り)。この状況でアリスはトムへ支払いをすることはできません。トムとキャロルとのチャネルバランスが2:0であるため、キャロルからトムへ送金する残高がないからです。トムが支払いを受け取るためにはトムとキャロルのチャネルバランスを2:0から1:1などにする必要があります。

Tom 2 -- 0 Carol 0 -- 2 Alice


そこでトムはキャロルに1BTCの請求書を要求します。トムは受け取った請求書からスワップ用の特別な(ここでは例として)ビットコインアドレスを生成し、キャロルへ入金依頼を出します。キャロルがオンチェーンのビットコインアドレスへ入金後、トムはキャロルへ1BTCライトニングペイをする。支払い後レシートを受理し、それを使い特別なビットコインアドレスからトムのオンチェーンアドレスへ移動させる。この時点でチャネルバランスが2:0から1:1へなりました。これでチャネルのリバランスが完了し、アリスから支払いを受け取れる状態になりました。

Tom 1 -- 1 Carol 0 -- 2 Alice


トムはキャロル経由でアリスからの1BTCの支払いを受け取ることができたました。

Tom 2 -- 0 Carol 1 -- 1 Alice


疑問点

キャロルがオンチェーンのビットコインを持っている必要があり、そのビットコインをオンチェーンからオフチェーンへ移動させることの動機がないと、上記取引は成立しないと思います。


最後に

Alexのプレゼンの最後の言葉が印象的でした。彼は「おそれないで」と言及しており、よくライトニングネットワークやLappの開発において諦める方がよくいます。良いアイディアを出したり、開発などに貢献する方々は、それぞれ努力をしています。コミュニティに貢献するのに、あなたが秀才である必要はなく、それぞれができる限りにのことを精一杯し、その積み重ねによって技術が開発、浸透してくるのです。


参考

Alex BosworthによるScaling Bitcoinのプレゼン

上記プレゼンの要約はここ

ライトニングネットワーク決済体験記


今回は、私が実際にライトニングネットワーク決済(以降、ライトニングペイ)をしたお話をしたいと思います。


ライトニングネットワークとは、ビットコインのスケーリング問題(1秒間に約7件しか処理できない問題)を解決する手段として開発されたレイヤー2の技術です。ライトニングペイをするということは、ビットコインで支払いをするのに変りは無いですが、支払いごとにブロックチェーンへの書き込みをしないという違いがあります。例えば、スターバックスカードやスイカに現金をチャージしてそのカードを使ってコーヒーを買ったり食品を買ったりするのと似ています。



私が最初にライトニングペイで商品を購入したのは、Blockstreamのショップでした。Tシャツが買いたかったのですが売り切れだったので、ステッカーを購入しました。購入当時の金額で約550円(送料込み)で購入しました。この時の送金手数料は0.1円以下でした。もしライトニングペイではなく通常のビットコインで支払うと送金手数料は約20円もかかってしまいます。これが初めてのライトニングペイだったので、ビットコインをライトニングペイ用にチャージする必要があり、そのチャージ手数料に約20円ほどかかりました。この時は5000円ほどのチャージしました。ウォレットの設定方法などはこのブログを読んでみてださい。




次に、Hodl MonkeyというサイトでビットコインTシャツを約2000円で購入しました。今回は前回のチャージした分の残高4500円があったので、送金手数料0.1円のみでした。実際に商品が届き、かなりいい感じのTシャツでした。右の写真が購入したTシャツです。JPモルガン社長のあの有名な言葉「ビットコインは詐欺だ」のセリフがプリントされたTシャツです笑



ライトニングネットワークはまだまだ発展途上の技術ですが、だから面白いですよね。ぜひこの体験を皆さんにもしていただきたい、そう思いで本ショップでもライトニングペイ対応をしました。皆さんもぜひ一度ライトニングペイを体験してみてください!



iPhoneケースをライトニングペイで購入してみる↓クリック↓

ライトニングネットワーク:ルーティングを探検

まえがき

本投稿も前回に引き続き、Lightning LabsのメンバーBryan Vu氏によるライトニングブログ(投稿日:2018-05-30)を翻訳しました。前回より少し難しい内容ですが数回読み返していただくとより理解が深まると思います。



前回私たちのヒーローキャロルとお別れした時、彼女はライトニングネットワークに見事参加し、ライトニングペイを使うようになりました。ライトニングのユーザー体験の一部に慣れてくるにつれ、ライトニングの技術面について興味を持つようになりました。BitFlixの月額料金を支払うためのルーティング手数料を稼ぐためにライトニングルーティングノードを彼女自身で立ち上げようかさえ考えるようになりました。このブログでは、キャロルのようにライトニングノードの立ち上げに興味がある、または、ライトニングネットワーク用のアプリケーションの構築や、単にライトニングに興味がある熱烈なファンのために贈るものです。この投稿では、ライトニングとペイメントチャネルの基本的な知識をすでにお持ちの方をターゲットにしています。

トピックス

  • チャネルバランス
  • ゲートウェイルーティングノード
  • 広告と非広告チャネル
  • バッファーキャピタル
  • ソースルーティングとオニオンルーティング
  • ブリッジチャネル
  • アトミックマルチパスペイメント(AMP)

このブログが読者の方により深いライトニングプロトコルの理解と、そのネットワークがどのように成長、発展するかの私たちの考えを伝えることができれば幸いです。検閲耐性・非中央集権、セキュリティ、プライバシー、ユーザビリティ、スケーラビリティ、スピード、コストを含むライトニングに対する私たちの目的にも触れます。ルーティングについては、可用性(ユーザーの資金は常時利用可能であるべき)と接続性(ネットワーク参加者はどの参加者へも送金できるべき)の2つの向上が主な目標です。


チャネルバランス

ライトニングの主要コンセプトの一つにチャネルバランスという考え方があります。ペイメントチャネルは総容量(オンチェーンでのチャネル開設時のトランザクションによって確立される)があり、そのチャネル内でお互いが送金できる容量が決まっています。エンドユーザーにとっては、ライトニングにおけるチャネルバランスは銀行口座や財布の中の現金を使うような概念に似ています。ユーザーはライトニングウォレットにビットコインを補充し、数日、数週間にわたってその残高を使い、また補充します。銀行口座が空になり何度も入金するように、ライトニングチャネルでも同様なことができます。ライトニングユーザーが数ヶ月、数年間はライトイングチャネルを開き続けることを予想しており、そうなることでチャネルを閉鎖、開設するときに必要なオンチェーンでのトランザクション手数料を最低限にすることができます。

チャネルバランスは販売者や取引所・交換所、その他のビジネスでも適用します。殆どのビジネスは、エンドユーザー(消費者)に比べ、格段にたくさんの総容量チャネルを持ちますが、これはチャネルを通して入金と出金の両方のフローが必要だからです。送金したり受け取ったりするための利用制限を増加したいユーザーやビジネスは追加でチャネル開設したり、既存のチャネルの総容量を増やしたりできます(チャネルの容量調整を「スプライシング」と呼び、今後のブログでご紹介します)。重要なことは、すべてのライトニング参加者は入金と出金のチャネルを管理します。この処理は既存金融システムがどのように機能しているかに照らし合わせることができるでしょう。

ネットワーク参加者のインバウンドとアウトバウンド資金の流れ:将来、ネットワークが進展、成長し安定した状態になると、参加者は時間に伴ってバランスの取れた入金と出金用のチャネルを持ちます(流れが一方向または他方向で不均衡になる期間もあります)。


ルーティングノード

私たちは、インターネット接続や電源が断続的なモバイル機器やコンピュータを使って送金や受取をするライトニングユーザーが大半だろうと予想しています。このため、大多数のチャネルはエンドユーザーのノードとルーティングノード間で開設されるでしょう。ルーティングノードとは常時オンライン状態で、ライトニング決済をルーティングして手数料を稼ぐことを目的としたライトニングノードのことです。他のライトニングノードと同じように、ルーティングノードはビットコインのネットワークとのやりとりが可能でないといけません。ルーティングノードはフルノードである必要はなく、ニュートリノのような軽量クライアント用プロトコルを使って操作することもできます。しかし、より大規模なルーティングノードはビットコインノードによる検証が行われるようなセキュリティ強化されたものが好ましいでしょう。

「ゲートウェイ」ルーティングノードはエンドユーザーに直接サービスを提供します。このノードは比較的少数のユーザー(およそ100人以下)と接続し、適当なハードウェア、帯域幅、総容量で構成されます。時間が経つにつれ、ゲートウェイノードはより多くのチャネル接続ができるでしょう(以下のブリッジチャネルを参照)。私たちは現在、ルーティングノード操作者のために、そのツールとガイドを作成中で、数ヵ月後には初期バージョンをリリースできるでしょう。私たちの目的は、ライトニングに参加するための敷居を下げ、広く分散されたルーティングノードエコシステムの発展を促進し手伝うことです。


広告と非広告チャネル

顕在化されていないライトニングの一面に、多数のノードとチャネルはルーティングができず、ネットワークグラフに可視化されていないことがあります。エンドユーザーのノード(スマフォやノートパソコンなど)は初期状態ではチャネルを「広告」しません。これらの非広告チャネルはライトニングペイのリクエストに付加される「ルートヒント」または追加ルーティング情報を使うことでルーティング可能になるのです。ルートヒントは受取り側の非広告チャネルについての情報を持ち、支払い者にライトニングネットワーク内の公開、非公開ホップの組み合わせで経路(ルート)を組み立てることを可能にします。非広告チャネルがエンドユーザーのデフォルトになることで、ライトニングルーティングがより効率的になり、ルーティングテーブルが劇的に小さくなります。そしてより信頼性のあるルーティングノードが普及していくことが期待されています。

将来的には、ルートヒントはより多くの有効なルートパス情報を供給することで、たとえ送信者、受信者がネットワークグラフ上に見えない状態であっても送信者が受信者へのルートを見つけることが可能になるでしょう。

広告、非広告ペイメントチャネル:中継可能なだけのペイメントチャネルはルーティングに使われるべきではなく、広範なネットワークに広告されないでしょう(この図は簡略化してあります)。典型的なゲートウェイノードはより多くのインバウンド、アウトバウンドチャネルを持ち、エンドユーザーは一つ以上のゲートウェイと接続されます。


バッファーキャピタル

ネットワークへの連続アクセスを供給することに加えて、ルーティングノードは入金と出金を集計することで、全体の入出金の流れのバランスを保ちます。実質的には、ある一定期間に、あるルーティングノードユーザーは資金を使い、他のユーザーは資金を補充します。しかし、資金が同じ方向へ移動し始めるときがあります(例えば、送金が受取より多い場合)。これらの状況下でルーティングノードは、資金の流れが逆流しチャネルが元のバランス状態に戻るまで待つための十分な「バッファーキャピタル」を維持しないといけません。バランスが取れていない期間を対処するための十分な総容量を持っていないルーティングノードはチャネル疲弊(ノードがチャネル開設を維持するための資金がない状態)に陥り、そしてルーティングに失敗します。このようなエラーは起こるべきではありません。なぜならこのようなルーティングエラーを起こすノードは他のノードから迂回され、最終的には切断されるからです。このように、ノード操作者は、受け入れるインバウンドチャネルの本数と容量のための十分なバッファーキャピタルを供給することに強い動機が働くのです。

バッファーキャピタル:ルーティングノードはチャネル疲弊とルーティングエラーを避けるために十分なバッファーキャピタルを提供するべきです。


オートパイロットとノード可用性の尺度

エンドユーザーのために、lndにはゲートウェイルーティングノードを見つけてチャネル開設する処理を自動的に行うオートパイロット機能があります。今後予定のオートパイロットのイテレーション(繰り返すこと)には、どのノードと接続するべきかの決定時にネットワークチャネルグラフから算出される尺度を使います。主要な尺度には、稼働時間、アウトバウンドチャネル容量、チャネル接続性の幅(インターネットでいう帯域幅のこと)、特定の目的地への接近性があります。これらの情報は、初期チャネル開設および開設済みチャネルの最適化を促進するために、ルーティングノードによって集計されます。最終的には、オートパイロットは、信頼性が高く安価な支払いを促進できるゲートウェイノードに対してチャネルを開設するでしょう。大半のユーザーにとって、オートパイロットはバックグラウンドで行われますが、上級者のためには、オートパイロットヒューリスティックという機能が設計されています。ライトニングコミュニティのメンバーは、特定のユースケースや完全に新しいアルゴリズムをデフォルトとして置き換えるためのノード選択パラメーターの最適化をすることが可能になるでしょう。

もう一つオートパイロットで重要なのが、エンドユーザーは関連性が全くない複数のルーティングノード(現時デフォルトは五つ)とチャネルを開設をすることです。これは、エンドユーザーにライトニングネットワークへ複数の異なる入り口を持たせ、ルーティングノードがオフラインになる場合に備え、信頼性の向上に役立ちます。これはインターネットのルーティングとは対照的です。なぜなら、ISPは物理的なインフラ(ファイバーと無線送信機)を建設するための費用による制限があるからです。ライトニングでは、他のノードと接続するためのインフラ構築のコストは単にオンチェーンのビットコイントランザクションのコストと同じです。

ネットワーク接続性、ライトニングネットワークvsインターネット:ライトニングネットワーク内のユーザーは、同じコストで物理的な制限に関わらず、そのネットワーク内ではどこにでもチャネルを開設できます。インターネットのルーティングは物理的なインフラコストによる制約があり、「ハブースポークト」ポロジーの形になってしまいます。


ソースルーティングとオニオンルーティング

ライトニングペイのルーティングとインターネットのルーティングの違いの一つに、ライトニングの場合、経路に沿ったそれぞれのルーターによって決定(通常のインターネットルーティング)されず、支払い者(ソースルーティング)によってルートが決定・確定されます。さらに、ライトニングはマルチホップペイメントのためにオニオンルーティングを採用しています。これは支払い経路内の中継ノード��は、それぞれのノードの前方と後方の情報しか知らないことを意味します。重要なことは、ソースルーティングとオニオンルーティングを組み合わせることで決済の送信者と受信者の情報を保護し、プライバシーと検閲耐性を強化できることです。

また、ライトニングネットワークのプロトコルはTorをサポートしており、将来のlndリリースではTorをサポートする予定です。エンドユーザーlndノードとゲートウェイルーティングノードとのやりとりは最終的にはTorがデフォルトになり、さらなるプライバシー保護をサポートすることが期待されます。


ブリッジチャネルとネットワーク接続性

これまで、ゲートウェイルーティングノード(エンドユーザーにライトニングネットワークへの接続するための方法を提供するノード)についてお話してきました。しかし、ライトニングユーザーがよく抱く懸念に、(1)接続性と(2)可用性(ライトニングネットワーク内のどこにいる参加者に対しても、速く信頼できる支払いができるか)があります。資本効率の良い(かつ安価な手数料)方法でこの接続性を向上させるためには、十分な総容量でより信頼性のあるノードが、他のルーティングノード間を「橋渡し」することです。これをブリッジノードと呼び、他のルーティングノードからのインバウンド広告チャネルを受け入れ、そして他のブリッジノードとゲートウェイノードに対して大きなアウトバウンドチャネルをつなげます。ゲートウェイノードとブリッジノードとの間に明確な区別があるわけではありません。あるノードは比較的多くのゲートウェイチャネルを持つかもしれませんし、あるノードはブリッジノードに重点を置くかもしれません。


ブリッジチャネルは、一般的にゲートウェイチャネルよりも速く支払い処理をし、また、ブリッジチャネルはエンドユーザーの中から引き抜かれるため、自然にバランスの取れたフローを持つでしょう。この二つの要因により、ブリッジチャネルはゲートウェイチャネルよりも多いバッファーキャピタルを持ち、その資本でたくさんの取引を処理することが期待されます。この資本効率はゲートウェイホップよりもブリッジホップの方がより安価な手数料になります。ゲートウェイノード単独で構成されるよりも、ブリッジチャネルがライトニングネットワークのユーザーに安価なコストで多くの接続性を与えるでしょう。

ネットワークが成長するにつれ、より多くのホップとブリッジチャネルが増えていき、指数関数的に多くのユーザーがネットワークを形成していくことが期待されます。私たちの暫定的なモデル予想では、直径10~15ホップのネットワーク内において、基本的な取引量と1円/取引以下相当の手数料で数十億ユーザーまでは対応可能です。また、上記で述べた資本効率性の理由により、ゲートウェイルーティングノードは、一般的な入出のバランスを取るために必要なだけ多くのユーザー(概算で数百ユーザー)にサービスを提供し、そしてブリッジチャネルを活用しより広範な接続性を提供することが期待されます。エンドユーザー視点では、ウォレットはより安価な手数料になるルートを選択(これは資本効率のよいブリッジチャネルを選択する傾向があるということ)するでしょう。

もう一つ注目すべきことは、エンドユーザーは複数のポイントでネットワークに接続され、またそれぞれのルーティングノードは他のルーティングノードとも接続されるので、特定のブリッジまたはゲートウェイノードによる取引の検閲はうまくはいかないでしょう。取引を検閲しようとするノードは迂回され、もし検閲しているノードが異常な数のルーティングエラーを出せば、他のノード達はその検閲ノードから切断するでしょう。また、オニオン暗号は送信者と受信者の情報をブリッジノードから見えなくするので、よりいっそう検閲が難しくなります。

マルチホップ支払い経路:ネットワークが拡大すると、始点と終点の経路の両方において非公告チャネルを二つ以上のゲートウェイノードとブリッジノードを越えることがでてきます。ライトニングが搭載されたソフトウェアはプライバシー向上のためにホップを追加しランダムにすることができます。


アトミックマルチパスペイメント(AMP: Atomic multi-path payments)

ライトニングルーティングに関する最後のトピックはAMP(アトミックマルチパスペイメント)で、これは送金者によって高額支払いを複数の小額支払いに分割することを可能にします。分割された支払いはライトニングネットワーク上の異なる経路を通って送信され、受取人がそれらを結合し、あたかも一つの取引であったかの様に見立て、その支払いを受理または拒否することができます。ユーザーにしてみれば、AMPプロセスは自動的に行われます。AMPはさらなるルーティングの柔軟性を可能にし、また複数の小さいチェネル群を1つの結合されたチャネルのように振舞うことができます。今後のブログではこのAMPの詳細について述べたいと思います。


結論

このブログでは、ライトニングルーティングに関わるいくつかの基本的なコンセプトについてお話しました。私たちLightning Labsでは、現在のプロトコルで、プライバシーの強化、ビットコインの非中央集権化および検閲耐性の向上をしながら、最低でも数百万のユーザーまで安価で信頼のある取引がスケールアップできると信じています。このブログはルーティングに関する私たちの考えについてお話しましたが、その他のライトニング実装をしている方々やライトニングコミュニティは他の考えを持っているかもしれません。ライトニングはオープンソースで協力しあうコミュニティであり、様々なアイディアについて討論することを楽しみにしています。

ライトニング革命は黎明期であり、今私たちが予測できないような様々な方法によって、プロトコル、アルゴリズム、ハードウェアの向上が効率性、プライバシー、スケーラビリティを改善することもあり得るでしょう。私たち(とライトニングのその他の実装者たち)は、将来版ライトニングネットワーク仕様書のためのプロトコル改善をすでにもっています。しかし、今後数ヶ月、数年にわたって、より多くの新しく、面白く、予想できないようなアイディアがライトニングネットワークのコミュニティおよびエコシステムから来ることを期待しています。

ライトニングユーザ体験:キャロルの生活の一日

まえがき

本投稿は、Lightning LabsのメンバーBryan Vu氏によるライトニングブログ(投稿日:2018-05-02)より本人の許可を頂き翻訳しました。少しでも多くの方にライトニングについて興味を持っていただき、ライトニングでの決済が広がればと思います。本ブログの原作者Bryan Vu氏にこのような機会をいただき感謝します。


はじまり

このブログの目的は、エンドユーザのライトニングネットワーク体験がどのようになるかの将来像を、ビットコインコミュニティとライトニングユーザーへ贈るものです。ここでは、ライトニングペイが初のキャロルを中心に、またライトニングラボがこのユーザ体験を現実にするために取り組んでいるプロジェクトについて紹介します。今後数ヶ月にわたり、これらのプロジェクト(ルーティング、ウォッチタワー、ニュートリノ、モバイル、バックアップ)の詳細を紹介していきます。


キャロルとの出会い


今回の記事では、キャロルがこの物語の主人公です。彼女は仲の良い、熱心なビットコイナーのアリスからビットコインについて教えてもらい、今日までちょっとした投資家兼ホドラーです。この物語では、「ライトニングペイが技術的に成長し、日常での支払いが始まろうとしているそれほど遠くない将来」という設定です。彼女はライトニングペイの楽しさをまさに今体験しようとしています。


オンボード(搭乗)


最初のステップは、アプリストアでライトニングアプリ*1をインストールしセットアップすることです。ビットコインウォレットをセットアップしたことがある人ならお馴染みの初期設定。まずは、24個のバックアップシード*2が作られるので、キャロルはそれを紙に書いて安全な場所に保管します。このシードは、スマフォを失くした時や壊れた時に復元することができます*3。次に、ビットコイン交換所からビットコインを彼女のスマフォに送金します。この最初の送金は通常のビットコイン送金と同じです。これはキャロルもお馴染みの送金方法なので簡単ですね。


オートパイロット(自動操縦)


残りの初期設定は自動で行われます。先ほど送金したビットコインが承認されるまで(通常のオンチェーン上の送金なので約1時間)、ライトニングアプリはニュートリノプロトコル*4を使ってブロックチェーンを同期します。ニュートリノはスマフォなどの低スペックデバイスでも高度なセキュリティとプライバシーを保ちながらビットコインを使うことを可能にします。そのため、数分で同期が完了します。

ライトニングアプリへのビットコイン送金が承認されれば、オートパイロット*5と呼ばれるシステムが後を引き継ぎ、ビットコインをライトニングネットワークへ移動してくれます。この処理は最長で1時間(いくらデポジットしたかで時間にばらつきがある)で完了しますし、この処理は初期設定の1回限りです。これでキャロルはライトニングペイを使うための準備が整いました!


ショッピングモールにて


ライトニングアプリの設定が完了したので、彼女はちょっとショッピングをしようと決めました。彼女はアルパカウールが大好きで、地元のショッピング街Bloomingblocksにある新作アルパカ靴下に目をつけていました。彼女はこれはライトニングアプリを試す絶好のチャンスだと思い早速購入をします。ショップ店員がRectangle™のライトニングペイ統合型POSシステムを使って、商品決済用のQRコード*6を表示してくれました。キャロルはライトニングアプリを開き、そのQRコードをスキャンすると、その支払い情報が表示されたので、金額が間違っていないかと送金手数料を確かめました(なんと手数料は1円以下!*7)。彼女が確定ボタンをタップすると数秒以内に送金完了画面がPOSシステムに表示され、レシートがキャロルへメールされました。このような感じで、彼女は履き心地の良い新品の靴下と一緒に家に帰ったのでした。


背面下では


キャロルの知る限りでは、ライトニングペイ体験は速くシンプルなものですが、背面下ではちょっとした様々な技術がこの体験を可能にしているのです。


ペイメントチャネル:ライトニングネットワークを作る上での大切なものは、ペイメントチャネルというコンセプトです。これはブロックチェーンのセキュリティを強化させ、速く低コストな取引を可能にします。

スマートコントラクト:ペイメントチャネル配下では、「スマートコントラクト」という形式が使われます。これは資金を移動する上で、暗号学的にセキュリティを保障するものです。第一のライトニングのスマートコントラクトは、ハッシュタイムロックコントラクト(the Hash Time Locked Contract:HTLC)と呼ばれ、ビットコインのブロックチェーン上で施行されます。HTLCはライトニングペイにとって、複数チャネルにわたって(これをマルチホップペイメントと呼びます)送信されることが可能です。ペイメントチャネルとHTLCの詳細はここに記載してあります。

ルーティングノード:上記で述べたとおり、キャロルは1セットのルーティングノード群(デフォルトではオートパイロットは5つのノードとチャネルを開設します)を通してライトニングネットワークに接続しました。ルーティングノードはいつもオンラインであるコンピュータで他のユーザー達へ送金を促します。Bloomingblocksも1セットのノード郡と接続されています。六次の隔たり理論で経路を発見するための処理を通して、キャロルのライトニングアプリは自動的にBloomingblocksとリンクするノードを決定し、そのノードたちを伝って支払いが送信されます。次回のブログではルーティングノード、チャネルバランスそしてルーティングネットワークについての詳細についてご紹介します。

ウォッチタワー:キャロルのライトニングアプリは「ウォッチタワー」と呼ばれるセキュリティシステムを使っています。インターネット接続が数日間ない場合に、キャロルのペイメントチャネルに問題が起きた場合に備えての保護を提供します。もしこの種のネットワークエラーが発生した場合、ウォッチタワーが自動的に復旧作業に入ります。ウォッチタワーの詳細については今後のブログにてご紹介します。

スプライシング:キャロルが支払いたい販売者がまだライトニングペイに対応しておらず、通常のビットコイン決済を受け付けていた場合に、「スプライシング」を使うことができます。これは、ペイメントチャネルを閉塞させずにそのチャネルから通常のビットコインを取り出し決済に当てることを可能にします。スプライシングはオンチェーンとオフチェーンとの取引をシームレスにします。この機能についても今後ご紹介してきます。

AMP(Atomic Multipath Payments):AMPも今後のブログ内容のうちの一つです。AMPは一つの大きな支払い金額を複数の小額へ分割し、それらを別々のペイメントチェネル越しに送信することを可能にします。受信者はこの別々な小額支払いを一つにまとめ、あたかも一つの取引であるかのよう受理または拒否することができます。ユーザーは、この処理は自動で行われるため気づくことはありません。

再度ですが、エンドユーザとしてのキャロルは、ウェブサーフィングをするのに、様々な技術(HTTP,TCP/IP,TLS,BGPなど)を理解する必要がないのと同じ以上に、ライトニングアプリを使うのに、上記のコンセプトを知る必要はありません。


販売者へ


ライトニングペイ統合のメリットの1つに、支払いを受け取るのに手数料がかからないことがあります。販売金額の2~3%をクレジットカード会社へ支払っていた販売者にとって、これはかなりの節約になるでしょう。さらに、ライトニングペイは取り消しができないため、彼らはチャージバックやクレジットカード詐欺にかかる原価損失費や管理費を心配する必要がありません。ライトニングペイでは、販売者がすぐに売上金を手にでき、クレジットカード会社からの支払いに数時間、数日待つ必要はありません。

これらの理由から、私たちは、クレジットカード決済よりもライトニング決済が好まれることを望んでいます。結果的に、販売者の中にはライトニングペイで決済するお客様には割引やポイントなどを提供するようになるかもしれません。


キャロルへ戻って


今キャロルはショッピングから帰宅し、リラックスをしようとしています。熱烈な Legend of Wowcraftプレイヤーである彼女は、次のクエストではギルド仲間の一人がDevout Shouldersという装備が必要であることに気がつきました。そこでLegend of Wowcraftのバーチャルショップで「ライトニングペイ」をクリックしました。

彼女にとって未知であったこのボタンは、実はライトニングペイのリンクをリクエストするものでした。このボタンで、彼女のライトニングアプリの「確定」画面が自動で表示されました。この確定ボタンをタップすると、数秒でLegend of Wowcraftはアイテム装備の支払いを受け取り、彼女とそのギルドは装備を購入し戦闘準備完了となりました!


ライトニングアプリへの補充


その後、モンスターとの戦いと最新ZhouTongedアルバム(キャロルがLighTunesで購入)を何度も聞き入った後、彼女がライトニングアプリをふと見てみると、残高が少なくなってきていることに気がつきました。彼女のお気に入りのビットコイン交換所GenesisTransactionが最近ライトニングネットワークをサポートしたのを思い出したので、試してみようと決めました。ライトニングアプリ内の「資金を追加」ボタンをタップし、チャージしたい分のビットコインを入力し、交換所一覧からGenesisTransactionを選択後、彼女のアカウントを入力しました。これでGenesisTransaction交換所へライトニングペイのリクエストが送信されます。キャロルのスマフォに入っているGenesisTransactionアプリが自動で起動し、確認画面が表示されました。彼女はその取引を確定すると、瞬時にその資金がGenesisTransactionの彼女のアカウントから差し引かれ、ライトニングアプリへチャージされました*8。彼女がよくやっていた通常のビットコイン送金と違い、取引が承認されるのを待つ必要がなく、送金手数料もとても低いのです。

この資金の補充プロセスは、彼女がショッピングモールで靴下を購入した時と似ていますが、ただ処理の流れが逆向きになっただけです。彼女はその処理を知る必要はなく、次回のショッピングやオンラインショップができるようになっただけです。とても簡単に、彼女はライトニングペイのチャージが可能で、給料やオークションで決済、友達との割り勘も可能なのです。

このライトニングペイやライトニングチャージは、高く遅いビットコインのオンチェーン取引なしで、数ヶ月または数年継続できます。一度ライトニングアプリの設定が完了すれば、ビットコインのオンチェーン取引は、ライトニングペイのための資金追加(ライトニングチャージ)やビットコインのネットワークエラーを回復させるためだけに、ほんの少し使われるだけでしょう。


一日の終わり


今日の早期先駆者にとってライトニングはまだ複雑な技術です。lnd 0.4.1-betaを使っているユーザーは、プロトコルおよびペイメントチャネルがどのような仕組みかを理解する必要があります。これは暗号、セキュリティ、ゲーム理論、経済などの分野の知識も関連してきます。ビットコインだけでも複雑ですが、さらに複雑さを増します。しかし、ライトニング技術が成熟してくれば、よりシンプルで直感的で馴染み易くなるようライトニングペイのユーザー体験を改善することができるでしょう。理想的には、キャロルのようなユーザーが背面下の技術を理解する必要なく、預け入れや支払い、残高の管理ができるようになり、そして今存在している決済手段(チェック、クレジットカード、現金など)よりも一層便利で低コストになるでしょう。

このパズルで最も重要な1ピース(lndのプロトコル実装)は、今、ビットコインとライトコインのメインネット(本番環境)上でベータ版です。デスクトップとモバイルのアプリ、ルーティングノード、ウォッチタワーとその他インフラは開発途中です。冒頭で述べたとおり、今後もライトニングネットワークを作りあげるこれらの技術についての詳細を連載していきます。乞うご期待!


脚注

1 私たちは現在、最新版のライトニングアプリ(デスクトップ版)のリリースに向けて取り組んでいます。私たちのアルファ版アプリは廃止予定となっています。モバイル版とデスクトップ版アプリを促進していきます。

2 AEZeed:lndはAEZeedと呼ばれる形式のシードを採用しています。これはバックアップとライトニングチャネルの検索のため開発された機能です。今後の記事で詳細なバックアップと復元がどのような仕組みなのかについてご紹介します。

3 ライトニングチャネルの復元のためのAEZeedでは、新規チャネルが開設される時に作られる「静的」バックアップと、取引が行われるときに更新される「動的」バックアップからできています。最初は少なくとも、ウォッチタワー機能としてバックアップを実装する予定です。

4 ニュートリノの詳細はBIP157,BIP158そしてNetrino Github repoで見ることができます。

5 オートパイロットはルーティングノード群(特に稼働時間と支払いの信頼性を重視し選択される)と接続し、そしてこれらのノードとペイメントチェネルを開設します。デフォルトでは、5つのチャネルが開設され、もし1つのノードがオフラインになり、かつ・または、オンチェーン取引を経由して復元するための資金が必要となった場合、80%の資金はまだ利用可能な状態になるでしょう。これにはキャロルがする必要のない詳細があります。彼女が知っていることは、彼女のお金はすぐにライトニングペイで使用可能で、ライトニングペイでお金を送金することができます。

6 現在、多くのスマフォにはNFCが搭載されおらず、そのためQRコードがビットコイン決済の主流となています。しかし、私たちはNFCがこのワークフローをいっそうシンプルなものにすると予想しています。

7 ライトニングの手数料は、通常のオンチェーンのビットコイン取引よりもかなり低いです。オンチェーン取引では数万または数十万のコンピュータが伝送、検証、保管に関わっている一方で、ライトニング取引は少数のコンピュータしか関わっていません。ライトニング取引を処理するためのリソースコストはとても低いため、手数料もそれに応じて低いのです(我々の計算では1円以下です)。

8 現在、このプロセスはコピー&ペーストが必要ですが、交換所がライトニングをサポートすれば、この例のように自動化が可能となるでしょう。

【2019夏トレンド】ジャックウィルスの店舗紹介

Jack Willsの店舗

ジャックウィルスはイギリスのブランドですが、アメリカ、香港、シンガポールなどにも展開しており、それぞれ個性的な店舗です。日本には店舗がなく、ジャックウィルスを着ている日本人は殆どいないと言っていいでしょう。だからこそ!まだ日本では注目を浴びていないこのブランドをいち早く先取りしてみませんか?今回はジャックウィルスの店舗を各国別に紹介していきます。

アメリカ

アメリカには東海岸にいくつかの店舗があり、その一例が以下の3店舗です。

Jack Wills – Chatham

Jack Wills – Nantucket

Jack Wills – Boston

香港

イギリスの植民地であったこともあり、香港ではジャックウィルスが5店舗もあります。

Jack Wills Leighton Centreの外観です。

フィッティングルームとは思えないほどオシャレな作り!

シンガポール

シンガポールでも英国色がすごくあり、ジャックウィルスはとても人気!店舗内装もイギリスに来ているような錯覚になるぐらいブリティッシュ感がでていますね。

Jack Wills – Raffles Cityの店内の様子です。

イギリス

スコットランドはエディンバラの店舗のフィッテングルームの写真です。

ジャックウィルスの本場イギリスはオックスフォード店舗。

いかがでしたでしょうか?ジャックウィルスはまだ日本では知名度が殆どありませんが、とてもオシャレなファッションブランドです。今年のトレンドであるパステルカラーや淡色系も揃っています。

メンズは、ジャックウィルスのロゴが刺繍された、さわやかなブルーのサンドルフォードTシャツがお勧めです。

レディスはパステルカラーさわやかな色合いの「パステルブルー」のこの一枚。背中にはかわいらしいノットがワンポイントとしてさらにオシャレ度をアップしてくれています。

ライトニングネットワークで決済を簡単に!

Eclair walletを使いオンラインショップYYBazaarで商品購入し、ライトニングネットワーク決済(以降、ライトニングペイ)してみたのでその過程を簡単にまとめてみた。以下の流れで商品を選び決済用QRコードを表示するまではパソコンで、そのQRコードをスキャンしライトニングペイするのはスマフォで実施した。

1. eclair walletをGoogle Playからインストール

MainnetとTestnetがあるので、Mainnet版をインストールする。現時点ではandroid版のみが対応している。アプリを起動すると警告が表示される(警告内容は以下の表参照)。24個の英単語をバックアップし、6個の数字でパスワードを入力すると、メイン画面が表示される。

オンチェーンのファンド
(通常のビットコイン)
BIP39とBIP49の仕様で24個の英単語を保管しバックアップできる
オフチェーンのファンド
(ライトニングネットワーク)
は現在はバックアップ機能は実装されておらず、一度ファンドすると、そのデバイスでしか使用できない

2. eclair walletにビットコインを入金

Your Bitcoin Addressタブに表示されるビットコインアドレスへビットコインを入金する(後述するがとりあえず5000円分を入金)。ビットコインをeclair walletへ送金するとTransaction historyタブに送金履歴が表示される。6確定するまでしばらく待機する。

3. チャネルの開設

ビットコイン入金後、6確定するとLightning channelsタブからチャネルを開設できるようになる。開設方法は以下の4つから選択できる。

Paste a node URI 任意のライトニングネットワークノード情報を貼り付け、開設する
Scan a node URI 任意のノードをQRコードからを読み取り、開設する
Random node ランダムなノードとチャネルを開設する
ACINQ node ACINQノードとチャネルを開設する

今回はYYBazaarのノード情報をスキャンしてチャネルを開設した。チャネル開設時にビットコインをいくらチャージするから聞かれるので、5000円ほど入金した。いくら入金するかは迷うところだが、少なすぎてはライトニングペイの魅力が損なわれる。ライトニングペイは電子マネーをチャージするのに似ている。電子マネーの入金は現金やクレジットカードで入金し即反映される。しかし、ライトニングペイの場合はビットコインでの入金のため以下のデメリットがある。

・送金手数料がかかる
・ウォレットに反映されるのに数十分かかる

そのため、まずは5000円~10000円ほどを入金することをお勧めする。現在ライトニングペイで支払いができる日本サイトはYYBazaarのみである。また海外のサイトではここから確認ができるので興味があれば参考にしてみるとよい。チャネル開設を開始するとLightning channelsタブにチャネル情報とステータスが表示される。チャネル開設に3確定必要なため、最初は「WAIT_FOR_FUNDING_CONFIRM」の状態となる。また、Transaction historyタブでもトランザクション状態が確認できる。ここで3 conf以上となればLightning channelsのステータスが「NORMAL」となりチャネル開設が完了する。

4. ライトニングペイで決済

ここまでこれば、あとは欲しい商品をオンラインショップで探して、ライトニングペイするだけ。今回はYYBazaarのライトニングTシャツをを購入してみた。

ライトニングTシャツを選択しカートへ入れる。

必要事項を入力し「PROCESS TO LIGHTNING PAYMENT」をクリックする。

支払い金額とQRコードが表示される。

ここでeclair walletのTransaction historyタブの矢印ボタンをタップし、Scan a payment requestからQRコードをスキャンし、Payボタンをタップ。支払いが成功するとeclair walletには成功メッセージが表示される。それとほぼ同時に、オンラインショップの画面が更新されて支払い完了画面が表示され、支払い完了メールが届いた。また、数日後には配送処理が完了したというメールも届き、数日でTシャツが届いた。

所感

チャネルを開設するのに多少時間はかかるが、一度チャネルを開設してしまえば、それ以降のライトニングペイでの支払いは数秒で完了する。通常のビットコイン決済は手数料がやや高かったり(現在時点で30円前後)、決済確定まで最低でも10分はかかるが、ライトニングペイはクレジットカードや電子マネーとほぼ同じスピード感で決済が完了する。

まだライトニングペイは開発・発展段階ではあるが、今後はライトニングネットワーク上でビットコイン決済が主流になる展望はかなりあると実感した。

夏のプレイリストを聴こう!

ジャックウィルスが選曲した今夏のプレイリストを公開しました。Spotifyのアカウントがあれば全曲聴けます。持っていない方でも各曲30秒ほど聴けるので、ジャックウィルスの雰囲気を味わうことができると思います。

毎シーズン、ジャックウィルスはその季節にあったプレイリストを自作公開しています。このプレイリストは店舗内のバックグラウンドとして流れています。日本には店舗がないのが残念ですが、このプレイリストを聴いてイギリスの店舗にいる雰囲気を味わってみてください。

Jack Wills | ジャックウィルス とは

Jack Willsは、帽子をかぶり杖を持ったキジという可愛らしいロゴ。イギリスならではの伝統に、遊び心を加えたファッションを基本として、ブリティッシュフォーマルなシャツ、ツイードジャケットやブレザーから、よりカジュアルなフーディーやスウェットパンツ、Tシャツ、ポロシャツまでを手がけています。大学生を主要ターゲットにおきながらも、アッパーミドル向けのやや高価な価格帯として、ファストファッションとは一線を画しいます。また、スポーツとの関連も持ち合わせ、英国ならではのポロ、ラグビー、レガッタをイメージしたデザインも多々あります。大学生をターゲットとしながらも、高校生から大人まで幅広い層に人気があります。

私がイギリスへ行った時、友達にJack Willsを教えてもらい、現地ショップで購入したのをきっかけに、デザインや着心地さがともて良く、そしてなんと言ってもイギリスブランドという響きにハマッてしまいました。帰国後、Jack Willsについて調べてみると日本展開はしておらず、知名度も殆どありませんでした。そこで、このJack Willsの良さを知ってもらおうと本オンラインショップを立ち上げました。

ほとんどの店舗が英国内ですが、アイルランドやアメリカ、香港、シンガポールにも店舗展開してます。オンラインでは、ヨーロッパ、米国、カナダ、オーストラリア、ニュージーランド、日本、香港などから購入が可能です。Jack Willsの公式オンラインショップでは日本への配送もしていますが、日本語対応はしておらず、送料が3,000円以上、10,000円以上の購入には10%の関税がかかったりと色々と不便だと思います。そこで本サイトを通じて少しでも多くの人がJack Willsに興味を持ってもらい、手軽に購入できればと思います。