Yuya

Yuya

@ogw_yuya

ちょビットコイナー

秘密鍵の保存だけで👌 ElectrumのRecoverable channelsとは

以前の記事で、LNノードを運用する上でのバックアップについて紹介しました。そこでは、オンチェーン資金のバックアップは秘密鍵の保管を、オフチェーン資金のバックアップでは、UmbrelやmyNodeなどLNDを使ってる場合はStatic Channel Backupと呼ばれるファイルをチャネルの開設ごとにバックアップする必要がありました。オンチェーン資金のバックアップは一度限りで良いですが、LNのチャネル上にあるオフチェーン資金は秘密鍵とは別にチャネル開設ごとに取得する必要があるので、結構手間がかかります。できれば秘密鍵に集約したいですよね。そんな悩みを解消してくれるのがElectrumのRecoverable channelsです。 Electrumはビットコインウォレットの老舗ですが、去年ごろからライトニングネットワークをサポートしました。そのElectrumが実装したRecoverable channelsとは、チャネルバックアップをチャネル開設時のトランザクションに書き込むというものです。こうすることで、ユーザーはチャネルバックアップをする必要はなく、秘密鍵さえ保管しておけばいいのです。もしLNノードやウォレットが壊れたりしたら、秘密鍵からオンチェーン資金を復旧し、また、オフチェーン資金の復旧に必要なチャネルバックアップは、ブロックチェーンから読み取り、その情報を使って復旧することができます。 Recoverable channelsの欠点は、チャネル開設時のデータサイズが大きくなるので手数料が通常以上にかかるります。また、ブロックチェーンに書き込んでいるのでチャネル開設時の相手にチャネルバックアップをしていることが知られてしまいます(バックアップデータ自体は暗号化されているので内容は分からない)。以前の記事でも触れましたが、このStatic Channel Backupはある一定の信頼があるので、もし相手にSCBから復旧しようしていることが知られると不正をされる場合があります。とは言え、実践的にはこのような不正はほぼありえないと思いますし、ユーザーは秘密鍵の保管だけで良いので、よりLNが使いやすくなりそうです。 ElectrumのRecoverable channelsについては以下のリリースノートおよびコードベースを参照してみください。 <iframe allowfullscreen="allowfullscreen" allow="autoplay *; encrypted-media *" src="//cdn.iframe.ly/

チャネル、ホップ、オニオン、ゴシップ!

ライトニングネットワークはビットコインの上で動くセカンドレイヤー技術で、低手数料、高速送金を実現することができます。ライトニングネットワーク(以下、LNと称す)では大きく分けて以下の二つの技術で構成されています。 ペイメントチャネル マルチホップペイメント ペイメントチャネル ペイメントチャネルでは、2者間でマルチシグアドレスを生成し、そのアドレス上でお互いの残高を管理していきます。残高の更新があるたびに署名をしますが、この署名されたデータはブロックチェーンへ送信せず、お互いのウォレット内で保管します。こうすることで、2者間で送金があってもブロックチェーンへ送信しないので、ゼロ承認かつゼロ手数料での送金ができるわけです。このマルチシグアドレス上での残高管理・送受信を仮想的なトンネルと見立てたものをペイメントチャネルと呼びます。 ペイメントチャネルは2者間での送金を可能にする技術ですが、もし第3者へ送金したい場合、その第3者ともチャネルを作らないといけないのでしょうか。送金したい相手ごとに作成する必要があるととても不便です。その問題を解決する技術がマルチホップペイメントと呼ばれるものです。 マルチホップペイメント マルチホップペイメントでは、ビットコインのスマートコントラクトを活用することで、中継者を経由して第3者へ、トラストレスに送金をすることができます。例えばアリスとボブ、ボブとキャロルの間にペイメントチャネルがある場合を見てみます(下記の図を参照)。この時、アリスはボブを経由してキャロルへ送金をすることができるのですが、ここでアリスがボブへ送金してもボブはキャロルへその送金を中継しない場合が考えられます。これだと既存の銀行間送金のような第三者への信頼モデルになってしまいます。そこでアリスはボブへの送金時に「キャロルしか知りえないシークレットがあれば受け取れる」という制約をつけて送金をします。ボブはこの送金を受け取るにはキャロルへシークレットを貰わないといけないので、同様な制約をつけてキャロルへ送金をします。キャロルはこの送金を受け取るためにシークレットをボブへ渡します。そしてボブはアリスからの送金を受け取るためにこのシークレットをアリスへ渡し、送金を受け取ります。 こ

52756e6e696e6720626974636f696e

ビットコインのブロックチェーンに任意文字を書き込めるのは意外と知られていると思います。送金データにOP_RETURNというOPコードを付与することで、任意文字をブロックチェーンへ書き込むことができます。 実はライトニングネットワークでも送金データに任意文字を付与できるのをご存知でしょうか?LN上のP2Pチャットアプリ「SphinxChat」はこの仕組みを応用して送金データに文字列を付与して少額送金することで、チャットを実現させています。任意文字を埋め込むために使われる仕組みはTLV(Type Length Value)と呼ばれるデータフォーマットで、このフォーマットでオニオンメッセージ(データのカプセル化)を作って通信相手に送信することで、予め指定された型番号(Type)をデコードすることでメッセージを読み取ることができます。任意メッセージのTypeは34349334となっています(c-lightning, LND)。 LNノードのログを解析していたら本日付で以下のようなデータが送金データと一緒に送られていたことに気付きました。メッセージを書き込むためのTypeは34349334でした。そのTypeに対するValueを変換することでメッセージが読めるようになりますが、、、 "custom_records": { "34349334": "52756e6e696e6720626974636f696e", "34349337": "72797270376464756b39786d6b6334336a63396a6e6338676833706f6d6a6b74347966753778726a39356763746534387368737a6363756e347471636965626d77736237347839707231703735653674726a336a6e396139367333646768636b35357374636a3939", "34349339": "0387be05e3549387cc3bc546def54d4fe1630358528316826c301853a67355fa14", "34349340": "4879706572426974636f696e697a6174696f6e", "34349345": "74657874", "34349347": "74657874", "5482373484": "af5d8c79f58a5912dfc8372d7b9d1efa

SSHトンネルでリモート接続

LNDのニュートリノモードはビットコインフルノードなしに手軽にライトニングを始めるには便利です。しかしニュートリノだと欲しいデータ、具体的にはlncli describegraphによるネットワーク上の全てのチャンネルやノード情報が取得できません。そこで、今回はVPSサービスのbitcloudsでbitcoindのインスタンスを購入し、LNDからbitcoindへリモート接続することで、ニュートリノモードからフルノードモードへ切り替えてみました。フルノードモードでLNDを稼動することで、上記のネットワーク情報がすべて取得できるようになります。 bitcoindへリモート接続する場合、RPCポートを公開すればリモート接続が可能ですが、そのままでは暗号化されておらず安全性にかけます。また今回接続するbitcoindはVPS内のローカルエリアにあるため、ちょっとした工夫が必要です。 そこで今回はSSHトンネル(ローカルポートフォワード)でLNDからVPS上のbitcoindへリモート接続してブロックデータなどを取得してみました。以下は簡単な環境図です SSHトンネル接続 まずはbitcloudsでbitcoindインスタンスを購入し、SSHでログインします。インスタンス購入からSSHログインまではこちらの記事を参照してください。SSHログインできたら、$ bitcoin-cli stopでデーモンを停止します。停止したら、bitcoin.confを以下のように修正して、再度$ bitcoindで起動します。rpcconnectはデフォルトでIPが指定されているので、そのままで。ユーザー名・パスワードもデフォルト値のままで大丈夫です。 mainnet=1 server=1 daemon=1 rpcconnect=192.168.3.7 // local ip address rpcuser=hogehoge // username rpcpassword=gehogeho // password [main] rpcallowip=0.0.0.0/0 rpcbind=0.0.0.0 その後、ログアウトして、LNDのマシン上からSSHトンネルのコマンドを以下のようにして実行します。-Lはローカルへの通信をリモートにバインドするためのオプションです。8332:192.168.3.7:8332はロ

ビットコインと米ドルは共存するのか? それとも競合するのか?

周知のように、2021年9月7日(現地時間)、中米エルサルバドルでビットコイン法が施行されました。 これによって、ビットコインは世界で初めて法定通貨となりました。 歴史的瞬間です!!!   さて、これまた周知のように、同国ではビットコインだけが法定通貨として通用するのではなく、これまで同様に、米ドルも使うことができるそうです。 つまり、彼の地では、ビットコインと米ドルという、二つの通貨が同時に存在することになります。 これはどういう結果になるのでしょうか? 私はこれに興味津々なのです。 今回はその話です。 お付き合いいただければ幸いです。     二つの通貨の存在が、どうなっていくか。 私は二つのシナリオが考えられると思います。   まず一つ目のシナリオは、「共存」です。 別の分野で住み分けたり、あるいは、お互いを補完しあったりして、双方が存続していくという在り方です。   二つ目のシナリオは、「競合」です。 お互いに優位を競い合う中で、場合によっては、どちらかが完敗するかもしれません。 そうなると、法的には両者が認められいても、現実に通用するのはどちらか一方だということになるでしょう。     こうしたことを私が考えたのは、経済の本を読んでいて、「かつてイギリスでは、金貨と銀貨の両方が使用されていたが、それがうまくいかずに、その結果、金本位制になった」という説明を目にしたからです。 18世紀のイギリスでは、金銀複本位制でしたが、それで経済を安定させることができなかったために、19世紀になって金本位制に移行した、というのです。   「悪貨は良貨を駆逐する」という言葉があります。 これは、「二種類の通貨が認められている場合、人は良質な貨幣(良貨)を保蔵しようとするとともに、質の悪い貨幣(悪貨)を処分しようとするので、悪貨のほうが決済手段として通用するようになる」ーーという現象をいうそうです。 二つの通貨に質の違いがある場合、通貨として両立できないということかもしれません。   以上をまとめると、私の興味は以下の二点になります。 ①エルサルバドルにおいて、米ドルとビットコインの二貨幣体制は可能なのか ②「悪化が良貨を駆逐する」ような事態となった場合、勝つのはどちらか  

gus purchased this article gqmtt6yuh

10000

Purchased this article 100gslmyy

-100

Purchased this article 08dvl9vcc

-100

Purchased this article d0ws0iun0

-100

Sent a tip fnzq00dut

-1000

Purchased this article fnzq00dut

-100

nigg purchased this article p5bkaovrb

100

Yuya tipped you

100

Purchased this article oh3zi06u0

-100

ラバ purchased this article w21dwhhcq

100

nigg purchased this article w21dwhhcq

100

Cryptcoin Junkey purchased this article w21dwhhcq

100

タコ頭のおじき purchased this article w21dwhhcq

100

匿名ユーザ purchased this article w21dwhhcq

100

Purchased this article w6uqc0s6h

-100

Purchased this article 2fbnmd1ta

-100

btc_dakara purchased this article w21dwhhcq

100

Culi-zusi purchased this article w21dwhhcq

100

Ky purchased this article w21dwhhcq

100

toshihr purchased this article w21dwhhcq

100

Popular stories

LNノードの運用益はどれぐらい?パート1

1282

LNノードの運用益はどれぐらい?パート3

763

猫でも分かるLightning Network解説!

639

Archives

2021-09
5posts
2021-08
5posts
2021-07
9posts
2021-06
2posts
2021-05
4posts
2021-04
9posts
2021-03
11posts
2021-02
5posts
2021-01
4posts
2020-12
8posts
2020-10
2posts
2020-09
20posts
2020-08
4posts
2020-07
5posts
2020-06
10posts
2020-05
7posts
2020-04
10posts
2020-03
3posts
2020-02
3posts
2020-01
6posts
2019-12
6posts
2019-11
5posts
2019-09
1posts
2019-08
1posts
2019-07
1posts
2019-05
4posts
2019-04
7posts
2019-03
4posts
2019-02
5posts