Greenlight by BlockstreamでLightningを手軽に始める
Lightning Network

Greenlight by BlockstreamでLightningを手軽に始める

Christian Decker
Christian Decker

本日、弊社の新サービスGreenlightを皆さまにお披露目できることを大変嬉しく思います。Greenlightを使えば、誰でも手軽にクラウド上でLightningノードを立ち上げることができます。ユーザーは簡単かつ安全にLightningネットワークにアクセスできるのはもちろん、ビットコインは自ら保有、管理できます。

初心者にとってビットコインは難しいもので、特にプライバシーを守りながら安全に管理するのは至難の業です。Lightningネットワークを使おうとすると、チャネルと流動性の管理、バックアップ、ウォッチタワーの設定など事態はさらに複雑になります。このためLightningネットワーク初心者の多くが、こうした面倒を代行してくれるカストディアルサービスを選びます。しかし、利便性と引き換えに資金を預けるサービス運営者を信用せざるを得なくなります。

弊社はこの2つの選択肢の間に解があると考えます。ノード運用に関わる面倒は業者に任せつつ、資金の管理権限はユーザーが保持するというものです。Greenlightはまさにこれを実現します。モジュール式で柔軟に拡張可能なオープンソースのLightning実装であるc-lightningをベースとしたノードを弊社が自社クラウドインフラ上で運用する一方、秘密鍵はユーザが自身のデバイスで保管、管理します。ノードで秘密鍵による署名が必要な際は、ユーザーがデバイスに保管した秘密鍵で署名します。

Lightningを簡単に

Greenlightを使えば、わずか数秒で誰でも弊社のクラウドインフラ上に専用Lightningノードを立てられます。もちろん、資金の管理権限は100%ユーザーが保持します。オンチェーン、オフチェーンを問わずトランザクション署名に必要な秘密鍵はユーザーのデバイスに保管され、外部に露出することはありません。

ユーザーはシンプルかつプログラム可能なインターフェイスを介してノードと通信できます。必要に応じたノードの起動や、ビットコインノード、バックアップ、ウォッチタワーの管理は弊社で行います。ユーザーは資金管理に専念し、残りは弊社が代行します。

ノード稼働中にユーザー資金へのアクセスが必要な場合、ノードは秘密鍵を保管するユーザーのデバイスと通信して署名を求めます。ユーザーがノードを使わない時はノードは自動停止します。再度必要になれば、ノードは一瞬で起動するため、ユーザーがストレスを感じることはありません。

他の方法でLightningノードを運用する場合との主な違いは以下です:

  • セキュリティ:Greenlightはノンカストディアルサービスです。ノードは弊社のインフラ上で運用しますが、秘密鍵はユーザーのデバイスに保管されるため、弊社のノード管理者がユーザー資金にアクセスすることはできません。秘密鍵での署名が求められる場面では、ユーザーは自身のデバイスで署名する内容を検証した上で署名します。
  • 低コスト:c-lightningは消費リソースが小さい上、ノードはオンデマンドで必要時のみ起動します。つまり、Greenlightは同様のサービスと比較して非常に低コストです。またサービス試用期間中は利用料金がかかりません。
  • 1ユーザー、1ノード:ノードがフロントエンドアプリと一体化されているサービスとは異なり、Greenlightは複数のフロントエンドアプリで1台のノードを共有できます。このため、複数ノードを運用する際のオンチェーン手数料がかさむ、ノード間で資金を流用できないといった問題を解決します。Greenlightならチャネルキャパシティが低下するたびに自宅のノードからスマホのノードに資金を移す必要はなくなります。
  • リカバリーが容易:もしスマホを海に落としても、ビットコインを失うことはありません。弊社が保管するノードのバックアップとデータベースを使えば、新しいフロントエンドをシードフレーズで初期化するだけで資金を回収できます。
  • オンボードだけでなくオフボードも:Greenlightの目的はビットコイン初心者に簡単かつ安全なオンボード体験を提供することです。事業性という意味では奇異かもしれませんが、弊社としてはGreenlightの利用を通してユーザーが知識を蓄え、最終的には自力でノードを運用できるようになってほしいを考えています。そのため、ユーザーがノードを弊社のインフラから他のプラットフォームにエクスポートできるオプションを用意しています。

アプリ開発者向けのツール

上述の通り、Greenlightの目的の1つはビットコイン初心者でも簡単に使える選択肢を提供することです。もう1つの目的はLightningアプリ開発者がLightningノード管理に時間を取られることなく、アプリ開発に専念できるようにすることです。この実現に向け、SphinxとLastbitという非常に有望なスタートアップ2社と既に協業しています。

Sphinx ChatはLightningネットワーク用のブラウザで、ビットコインの送受信、暗号化チャットグループの作成、ポッドキャストのストリーミング再生などが可能です。ユーザーはsphinx-relayをRaspberry PiにダウンロードしてGreenlightサーバーに接続すれば、数秒でノードを起動しチャットを楽しめます。ブロックチェーンの同期、Lightningノードのインストール、インフラ管理は一切不要です。

LastbitはLightningネットワークを使用して世界中どこにでも低コストかつ瞬時に送金できるプラットフォームです。LastbitはシンプルなWebインターフェイスStrigaを介してGreenlightを提供しており、サイト訪問者はインフラ不要で自身のノードをオンデマンドで立ち上げることができます。

一般公開

最高のユーザー体験を届けるため、Greenlightのへのアクセスはサービス拡張ペースに合わせて徐々に拡大する予定です。現在は協業中のSphinxとLastbitを介して新規ユーザーを増やし、一般公開前に解決すべき課題を洗い出しています。サービスを試用してみたい方は弊社までご連絡ください。

Greenlightローンチは長い道のりの最初の一歩にすぎません。現在はオンデマンドでのc-lightningノード提供にとどまりますが、将来的にはチャネル開設の自動提案、流動性のリバランス、スワップサービスなど多様な機能を追加をしていく予定です、

GreenlightはSphinxおよびLastbit(現在はtestnet限定)経由で利用できます。一般公開はベータテスト終了後の予定です。Greenlightをいち早く体験したい方は、ぜひSphinxまたはLastbitからお試しください。

ロードマップ

サービスローンチは単なる出発点です。今後ベータテスターからのフィードバックを参考に新機能を追加し、セキュリティとプライバシーを強化してサービスを改善するとともに、より多くの人が利用できるようサービスをスケールしていく所存です。

Blockstreamは守れない約束はしない主義で、現実的なゴール設定を実践しています。以下は弊社の姿勢を反映した現時点の課題と解決策、今後実装したい機能です:

  • チャネルと流動性の管理:これはビットコイン経験の有無に関わらず、Lightningノード運用で直面する最大の課題です。弊社はこの自動化を目指します。常に流動性があり送受金可能な新規チャネル(インバウンドとアウトバウンドの両方)の開設を提案する機能を実装予定です。ユーザーがチャネルと流動性という概念を知らなくてもLightningネットワークを使えるようにします。
  • プライバシーの改善:弊社はインフラ管理者としてユーザーの支払いに関するメタデータを取得できる立場にありますが、こうしたデータへのアクセスを最大限減らしたいと考えています。そこでインボイスや支払い履歴の暗号化を計画しています。暗号化データはユーザーのデバイスで復号します。また、oblivious sendsという仕組みを使い、ペイメントの経路計算をユーザーのデバイスにさせることで、ノードにはLightningネットワークの中継ノードと同様に暗号化されたルーティングオニオンしか見えないようにする機能の追加を予定しています。
  • セキュリティの強化:現状のアクセス権限設定はシンプルで、どのクライアントアプリも同じアクセス権限を持っています。一部のクライアントアプリのアクセス権限を変える、例えば読み取り専用とすることが求められる事例も想定されます。そのため認証レイヤーを設けてアクセス権限のより詳細な設定を可能にする方法を研究しています。実現すれば、ユーザーが弊社のインフラをトラストする必要性を最小化できます。この分野の研究が将来的にLightningネットワーク対応のハードウェアウォレットにつながる可能性もあります。もちろん、研究成果はオープンソース化するのでご安心ください!

弊社は少数精鋭チームであり、これらの課題解決には時間を要するでしょう。このような挑戦に興味があり、課題解決に手を貸したいと思いませんか?弊社では優秀なエンジニアを常時募集しています。メールでお気軽にご連絡ください。

If you have specific preferences, please, mark the topic(s) you would like to read: