ここ数ヶ月で、ビットコイン即時決済を実現する技術であるライトニングネットワークが急速に発達しはじめました。

BitMEX Researchによる統計情報によると6月時点で1,500BTCであったキャパシティが2ヶ月で46%も急拡大したとのことです。

fig.1.

https://bitcoinmagazine.com/.../lightning-network-over...

こうした急成長を支えるドライバーとして、ラズベリーパイでライトニングネットワーク用ノードを立てられるUmbrelやmyNodeといったプロジェクトの登場があげられます。

今回は、そうした中で最近特に元気なUmbrelに関して、そのソースコードを解析しちゃおうという内容となります。

Umbrel

Umbrel: https://getumbrel.com/

Umbrelがなにか、については本研究所でも私であったり、加藤さんであったりが紹介しておりますので是非そちらも確認いただけますとイメージが沸くかと思います。

【2021/5/6】ビットコインエコシステムの新星:Umbrel

ビットコインエコシステムの新星:Umbrel
皆さんはご自身のビットコインノード、ライトニングノードを持っていらっしゃるでしょうか。ノードの管理や、ビットコイン関連の様々なオープンソースソフトウェアの利用は敷居が高いイメージがあるかもしれません。しかし、そこにUmbrelというソリューションが昨年の夏頃に登場し、急速に人気を集めています。今日はUmbrelについての紹介と、業界にどのような影響を与える可能性があるかについて触れていきます。Umbrel: https://getumbrel.com/ UMBRELとは Umbrelはラズベリーパイや古いPC、NUCなどに簡単にインストールできる、ビットコインノードとライトニングノードおよ…

【2021/6/30】オープンソースなアプリとの付き合い方

オープンソースなアプリとの付き合い方
今回は、satoshiが降ってくるDiamond Handsプロジェクトに実は興味あるけどエンジニアじゃないし、、、と二の足を踏んでいる方を想定し、Umbrelを例にオープンソースなアプリを自身でセットアップするコツを共有させていただきます。 ビットコインの世界はオープンソースでフリーで使えるソフトウェアがたくさんあります。ですが、こうしたソフトウェアは有料なものと違ってトラブルに遭遇しても自分自身で解決する必要があります。興味はあるけど、トラブったときどこをどう調べれば良いか勘所がわからない、と悩まれることはありませんか。 まず理解いただきたいのは、これはエンジニアだって同じだという点で…

上記から引用すると、

Umbrelはラズベリーパイや古いPC、NUCなどに簡単にインストールできる、ビットコインノードとライトニングノードおよび周辺機能をまとめたソフトウェアです。Umbrel自体もオープンソースで無料なので、必要なのは動かすためのハードウェア (PCやラズベリーパイなど)だけです。
UIがわかりやすく、設定が一箇所にまとまっているUmbrelを使うことで、ユーザーはビットコインウォレットを自分自身のノードに接続して使ったり、ノンカストディアルなライトニングウォレットを使用することがこれまで以上に簡単にできます。また、Umbrelはすべての接続にTorを使用するため、外部からの接続を受け入れるために難しいネットワークの設定も特に必要ありません。

といった代物です。

そして、素晴らしいのがアプリストアを内蔵している点です。

改めて引用すると、

UMBREL APP STORE
さて、Umbrelの一番の目玉機能はUmbrel App Storeだと私は思います。App Storeとはいっても、掲載されているアプリはすべて無料でオープンソースのものなので、ユーザーからすればオプション機能をインストールするようなイメージです。インストールボタンを押すだけで導入でき、特に難しい設定などが必要ない点が素晴らしいです。
現在入れられるアプリで代表的なものをいくつか挙げると:
BTCPay Server-オンラインストアやクラウドファンディングを作れる。
Bluewallet Lightning-Bluewalletのサーバーを動かすことで、通常はカストディアルなBluewalletのライトニングウォレットをノンカストディアルに使える。家族などにサービス提供もできる。
Specter Desktop-使いやすいマルチシグ機能を重視したウォレット。
Samourai Server-プライバシー向上のためにミキシングを実行できる。
界隈の代表的なオープンソースソフトウェアプロダクトの多くがすでにUmbrel App Storeに登場していることがわかると思います。Umbrel普及の勢いが持続すれば、今後もその数は増えていき、ユーザーにとって使いやすくなると考えられます。ノードに同梱という特長によって、エンドユーザーがサーバー系 (常駐)のアプリを簡単に動かせるのが特にいいですね。

こうした仕組みは果たしてどうやって実現しているのでしょうか。

ソースコードを解析してみる

UmbrelもソースコードはGitHubにて公開されています。

GitHubリポジトリ: https://github.com/getumbrel/umbrel

こちらのREADME.mdというファイルに、利用しているオープンソースプロジェクトの一覧が記載されています。

- Umbrel Dashboard

- Umbrel Manager

- Umbrel Middleware

- Bitcoin Core

- LND

- Tor

- Nginx

- Neutrino Switcher

- Electrs

どうやら、ビットコインノードとしてはデファクトであるBitcoin Coreを利用しており、ライトニングネットワークノードとしてはLightning Lab社のLNDを採用しているようです。

とてもオーソドックスな構成です。

ちょっと面白いのは、Neutrino Switcherの存在です。