Torと聞くと怪しいダークウェブにアクセスするための特別なブラウザのことでしょ、という認識の方が多いかと思います。あるいは、そもそもTorなんて知らないですよね。

前回のコラムでは、そんなTorという技術を俯瞰しました。

【2022/5/11】ビットコインも利用するTorとは

https://coinkeninfo.com/tor-1/

ここでは、Torはアクセス元のIPアドレスを隠すことができる技術ですよ、と紹介したのですが、実はTorには自宅サーバーを手軽に公開できる、といった側面もあります。

ダークウェブというのは、そもそもどこか得体の知れない場所で運営されているWEBサーバーが公開するWEBのことですね。

その得体の知れない場所が自宅であってもよいわけです。そして、サーバーも手軽にラズベリーパイであってもよいわけです。

ということで、今回はそんな自宅サーバーを手軽に公開できるよ、という側面についてご紹介します。

Onionサービス

Torネットワークを通してWEBといったサービスを提供する場合、Onionアドレスというものをサービスに紐付けます。

Onionアドレスは、次のような感じでランダムな文字列に.onionを付けたものとなります。

twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion

この例は、最近Twitterが始めたもので、Torブラウザを通してTwitterにアクセスできます。

こうしたOnionアドレスに紐付けて公開されるサービスをOnionサービスと呼びます。

OnionアドレスはIPアドレスの代わりになるもので、サービスを特定するために使われます。

見た目は.onionがつくことからドメイン名ぽいですが、技術的には別物です。

そのため普通のブラウザではこの文字列を解釈してサーバーに接続することはできないです。

TorブラウザやBraveブラウザのようなTor対応をうたっているブラウザは、このOnionアドレスを解釈し通常のURLアクセスのような勝手を実現しています。

サーバーの身元を一意に特定する必要があることから、ビットコインアドレスのように公開鍵を元に生成され、ランダムな文字列となります。

このへんはビットコインと同じで親近感が湧きますね。

でも、完全にランダムな文字列だと、サービスと紐付くにしては分かりにくいですよね。

そのためか、上述のTwitterのOnionアドレスは先頭の7文字をtwitterとしています。

これはバニティアドレスと呼ばれ、頑張って鍵を生成しまくってこうしたアドレスになるものを探すことで得られます。

バニティアドレスについては加藤さんのコラムを参照ください。

【2021/6/3】バニティアドレスをトラストレスに生成してもらうhttps://coinkeninfo.com/vanity-address/

Torで自宅サーバーを手軽に公開する

Umbrelというライトニングネットワークノードをラズベリーパイで立ち上げられるプロジェクトがありますが、これを使うと実は簡単にOnionサービスを自分で立ち上げて公開することができます。

そもそも、ビットコインノード自体もOnionアドレスで公開されるため、Onionサービスとしてフルノードサービスを提供している、ともいえますね。

Umbrel自体は本研究所でも何回か登場しています。是非こちらもご参照ください。

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

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

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

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

【2021/10/14】Umbrelから聞こえるDLC普及の足音

Umbrelから聞こえるDLC普及の足音
最近のUmbrelのアップデートでインストール可能なアプリが急速に増えました。その中にKrystal Bullという、DLC (Discreet Log Contract)と呼ばれるスマートコントラクトについて結果を発表するオラクルの役割を果たせるアプリがあり、久しぶりにDLCについて考えていました。 いわゆるブロックチェーン型DefiよりP2P型Defiに興味のある自分としてはDLCが活用されるようになっていくことに期待しています。 DLCがわからない方は2020年春に書かせていただいた「5分でわかるDiscreet Log Contracts」をご覧ください。 https://www…

Umbrelにはアプリストアが提供されており、様々なアプリをインストールできます。

外部公開することの出来るアプリにはそれぞれ別のOnionアドレスが紐付けられます。

そのため、アクセスできるポートを絞った状態と捉えることもでき、この点ではなにげにセキュアです。

例えばビットコインウォレットが同じラズベリーパイで動いていたとしても、そのウォレットに他のアプリ用のOnionアドレスを使ってアクセスされることはないです。

UmbrelにはBTCPay Serverというビットコイン決済に対応したECサイトをつくるアプリもインストールできます。

そんなトライをずいずいさんがやって記事にしてくれています。

こちらの記事は画像も多く、雰囲気がとても良く分かるのでおすすめです。https://spotlight.soy/detail?article_id=iod58ux0o

いやあ、りっぱなダークマーケットが出来上がってます笑

その他、Umbrelのストアには

  • Agora - デジタルデータをビットコインで販売するサービス
  • IPFS Podcasting - ポッドキャスト配信サービス

などの外向けOnionサービスを提供するものもあれば、

  • Specter Desktop - マルチシグウォレット
  • Vaultwarden - パスワードマネージャー

などの自分専用のOnionサービスを立ち上げられるアプリもあります。

スマートフォンから自宅サーバーにて動かしているアプリにアクセスできるってことですね。

まとめ

上で見たように、Onionアドレスを使うと自宅にあるラズベリーパイを使って世界中のどこからでもアクセスできるサービスを提供できます。

従来の方法ですと、一般家庭のネットワークだと動的なプライベートIPであったりルーター越しであったりして、サーバーを公開するのは結構大変です。

例えば、通常のやり方ですと

  • 固定グローバルIPをプロバイダーと契約する
  • IPアドレスとドメインとを紐付ける(ドメインを購入したり、DDNSをセットしたり)
  • セキュリティを頑張る(余計なポートが開いたりしないようにする、サーバー証明書をセットする)
  • NAT越しのアクセスができるような細工をする(ポートフォワードの設定など)

といった、いろんな作業をする必要があります。

これが、Onionサービスで公開する、とするだけでずいぶんとシンプルになります。

NAT越しアクセスの細工は相変わらず必要ですが、Umbrelでしたらここも自動で巻き取ってくれたりします。

このシンプルさは凄いよね、とDiamond Hands (日本のLNコミュニティ) 開発部でも一時期話題になりました。

シンプルに個人がサービスを提供する側に回れる仕組み。

これが、Torのあまり知られていないけど凄いところ、だと思います。

いやあ、個人主体の時代らしいですね。