Yuya

Yuya

@ogw_yuya

ちょビットコイナー

流れ星を眺めながらジョギングをする

ここ1、2か月、心身ともに調子が良くなかった(というよりはどちらかというと老年になってきた?)のですが、最近涼しくなってきたので、今日久しぶりに20キロジョグをしてみました。ハーフを走るのは今年3月に走った名古屋シティマラソン以来でしたが、夜中ということもあって、快調に走ることができました。これまで10キロでもバテバテだったけど、やっぱり涼しくなるだけで身体への影響は違います。 走るコースは地元の河川敷を走るのですが、名古屋の街中でも星は結構見えます。最近は月を見ながら走っていましたが、だんだん月の出が遅くなってきて、今日は走っていた23時30分ごろでもまだ月が出ていませんでした。星は綺麗に見えるけど、月が見えないのはちょっと寂しいなと思いつつ走っていた時でした。なんと、自分が走っている前方上空を、橙色に光る星が夜空を駆けていき、颯爽と僕を追い越し消えていったのです。一瞬の出来事でしたが、流れ星の余韻が残るほど、まぎれもない流れ星でした。流れ星を眺めながらジョギングができ風情な一日となりました。 実は今年の11月末に人生初となるフルマラソンを走る予定で、出場するのは「富士山マラソン」です。富士山の絶景を見渡しながら走れるということでとても楽しみ。サブ4は切れると思うので、サブ3.5を目標にしたいと思います。

秘密鍵の保存だけで👌 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はロ

Windows 10でstream-lnd-htlcsを実行する

Umbrelって設置に関してはGUIで全てできてしまいます。びっくりするくらい簡単にできます。ただし、障害が起こった時とかちょっと詳しく掘り下げたい時とかはSSHでログインしてからのCUI操作が必須になります。コマンドに慣れてない人にとっては下手にいじって環境潰してしまったらと思うと非常に恐怖を感じると思います。しかも対象が資産を管理している端末ならなおさらの事。仕事で多少LINUXを使う自分でさえUmbrelでのコマンド操作はかなりビビります。 そこでルーティング情報を取得するstream-lnd-htlcsを極力Umbrel側に手を加えずにWindowsメインで動かす手順を紹介します。 ①lnd.confの変更 このファイルはおそらく過去にaliasの設定で触った事があると思います。その時と同じ手順でSSHで接続してnanoエディタでファイルを開きます。tlsextraipがすでに設定されていると思いますが、すぐ下にUmbrelのローカルIPを追加で設定します。私の場合はtlsextraip=192.168.11.2で追加しています。 UmbrelのローカルIPがわからない時はDOSプロンプトよりping -4 umbrel.localと打てばローカルIPが返ってきます。lnd.confの設定を保存したらSSHからexitし、UmbrelのWEB画面より再起動を行ってください。注意が必要なのはUmbrelはデフォルトではDHCPで動いるので将来IPアドレスが変更になる可能性があります。その場合は再度設定変更が必要になるので固定IPで設定しておくか、別の方法でIPが変わらないようにしましょう。自分はルーター側でMACアドレス指定でIPを固定しています。 ②証明書関連ファイルのダウンロード 次にUmbrelからファイルのダウンロードが必要になりますが、私は普段WindowsからLinuxにファイルアップロードやダウンロードする時はWinSCPというソフトを使っています。エクスプローラーライクでドラッグアンドドロップで操作できるのでかなり便利です。で、ダウンロード必要なファイルは /home/umbrel/umbrel/lnd/tls.cert /home/umbrel/umbrel/lnd/data/chain/bitcoin/mainnet/readonly.macaroon になります。いったんデスクトップにでも保存しておいてください。tls.certファイルは上のUmbr

苦手な英語を避けられない暗号資産 dev が乗り切る、 a と the の違い

つぶやき。ぽえむ。 暗号資産の dev になるだなんて、よもやよもや、だ。 英語がツラい。 解りみ深い。 英語が必須になる未来が見えていたら、学生時代に、もちょっと勉強したぴょん…。 以降、本ポエムは、プログラミング言語がわかるが英語が死ぬほど嫌な暗号資産 dev に向けて書く。…その dev って "某無職業者BOTの中の人" では? 前提ノウハウ: 解らなくてもなんとかなる 世界に散らばる暗号資産の dev 連中は、融通の全く効かない AI ではない。仮に現実世界では "押し込められ" ていたとしても、少しは融通の効くニンゲンである。 怪しいカタコト日本語を話してくれるだけでも、日本語話者の我々としては有り難かったりすることを思い出そう。 相手は、暗号資産に関する数理や政治を理解できる、全世界レベルで見て高い知能の持ち主である。相手の理解力と忍耐力に全面的に頼ろう。そうでなきゃやってられん。 前置詞 a だいたい 2 つ登場の仕方がある。(もっとあるかもしれない) 基本: new 演算子 今まで話題に登らなかったのに、いきなり登場するモノ。Java/C++ 的オブジェクト指向が解っているなら、「new 演算子」だと思えばだいたい合っている。話題の中でインスタンスが作られる。(あとで参照される) 応用 あともう一つ。こっちは応用編的だが、ふわっとみんなが知っているものに対してポインタを張る。 I am an Einstein.  「私の名前はアインシュタインです」ではない。「私って(相対性理論で有名な)アインシュタイン? …みたいなwww」つまり誰もが「天才だよね」と思っているものに対してポインタを張ることで オレって天才() <

Blockstream Satellite Base Stationに関する続報と感謝感謝w

いつもお世話になっております。 タコタコ星からやってきた、タコ頭と申します。 以降、単なる報告記事ですがw 下記の件物理的なセットアップとblocksat-cliのインスコ及び動作確認が完了しました。 コロナ前にBlockstream satelite kit Basicを購入してから、何年経ったかは覚えてはいませんが、やっとやっと(とりあえずの)安定したダウンリンクに成功しました… 実際は、サービスが始まり日本での受信可能になる前から注目をしており、当時から考えると死ぬほど時間がかかりました。 中々エンジンが掛からない性格な上、やっと初めてもBlockstream satelite kit Basicを基本にした機材でのセットアップが、デバドラの謎のトラブルやらロックが何もしてないのに外れるやら折れそうになりましたが… なるべく一般的な機材で受信したいという、当初のコンセプトからは外れましたがなんとかなりやしたぜ。 勿論、継続して元のコンセプトで研究を進めていきますが、いいベンチマークができたので楽になるでしょう。 そうそう大事な事ですが、 30tぐらいある腰を上げてスタートしたきっかけになったのが、btc_dakaraさんの下記の記事です。 <div class="iframely-responsive" style="height: 142px; padding-bottom: 0p

Purchased this article i29tpg64n

-200

Purchased this article i3bhdin3s

-100

極度妄想(しなさい) purchased this article gfp1tn2fd

1000

極度妄想(しなさい) purchased this article 9ls5blrux

100

極度妄想(しなさい) purchased this article lsi01x8qs

1000

Yuya tipped you

100

Purchased this article 5ze2adr8v

-100

Purchased this article upcs9d0dx

-100

Purchased this article 0635vyvav

-500

Purchased this article 6uifx3bnz

-100

sutadonman purchased this article p5bkaovrb

100

Purchased this article y6dkn0zib

-100

Purchased this article q56hng895

-100

GoldFish purchased this article 7pg7m71hd

10000

GoldFish purchased this article ps4699x8j

10000

GoldFish purchased this article 32u6bi6tf

10000

GoldFish purchased this article w1tst6g5o

10000

GoldFish purchased this article vaal4lvtp

1000

GoldFish purchased this article 3gt0psvnq

2000

ロクヨウ purchased this article yqymlagm2

100

Popular stories

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

1356

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

820

猫でも分かるLightning Network解説!

673

Archives

2021-10
2posts
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