d

d

@1268

LNBIGでインバウンドチャンネルを買う

こんにちは。せっかくBitcoinのフルノードを建てたので、Lightning Networkで遊んでます。 Lightning Networkでこちら側からチャンネルを開くと、その時点ではRemote Balance : Local Balanceが0:100となります。そのため、こちらから支払いをすることはできますが、支払いを受けることはできません。 十分にRemote Balanceがないと支払いを受けられないので、こちらが他のLNウォレットに送金するか、相手にチャンネルを開いてもらうことでRemote Balance : Local Balanceが100:0の別のチャンネルを作る等の方法を取る必要があります。 そこで、LNBIGという、手数料を払うことで相手側からチャンネルを開いてもらえるサービスが役立ちます。 ということで、早速私もLNBIGを使ってチャンネルを開いてもらおう!と思ったのですが、何個か引っ掛かるところがあったので備忘録を残しておきます。 https://lnbig.com/#/open-channel にアクセスして、チャンネルの容量を指定して、手数料をLNで支払ったところ、よくわからないQRコードが出てきました。 調べてみたところ、これはLNURLと呼ばれるもので、ウォレット等がサポートしていれば、読み込むだけでチャンネルを開けるようでした。 しかし、c-lightningは対応していなかったので、何個かの手順を踏む必要がありました。それを以下に記載します。 ①LNURLをデコードする LNURLは、bech32でエンコードされているため、 LNURL1DP68GURN8GHJ7UM9WFMXJCM99E3K7MF0V9CXJ0M385EKVCENXC6R2C35XVUKXEFCV5MKVV34X5EKZD3EV56NYD3HXQURZEPEXEJXXEPNXSCRVWFNV9NXZCN9XQ6XYEFHVGCXXCMYXYMNSERXFQ5FNS のような人間には解読できない文字列になります。そのためまず、これをデコードする必要があります。 デコードにはプログラムが必要ですが、面倒なのでデコードできるサイトを作りました。 https://decode-bech32.dai.gd デコードすると、URLが取得できます。(https://lnbig.com/api/v2/oc?xxxx-xxxx-xxxxのような形式) このURLにアクセスし

ラズベリーパイ上でBitcoinノードを動かす① (モニター・マウス・外付けキーボードなし)

こんにちは。  マーケットも盛り上がっているためか、ビットコインノードを建てている人が増えているように感じます。その中でもほとんどの人がUmbrelを利用しているのではないでしょうか? UmbrelOSをSDカードにインストールしてラズベリーパイに差し込むだけでビットコインノードが動くという簡単さは素晴らしいです。こんなに簡単なら自分もフルノードを立ててみようと考えた人は多いでしょう。ネットワークの分散化にも一役買っています。 ですが、自分でBitcoin Coreを一からビルドして動かすのにもロマンがあると思いませんか?(自分だけかもw) ということで、Umbrelの使い方は他の記事にお任せするとして、今回はBitcoin Coreのソースコードをダウンロードしてビルドし、Torの設定をして実際にビットコインノードを動かすところまでを書きたいと思います! ①必要な材料 (余っているコンピューター等がある場合は必要ありません、あくまでも参考で自分はこれを買いましたというものです、Umbrelでノードを動かす場合でもここだけは参考になると思います。) ・Raspberry Pi 4 Model B RAM 4GB(私は4GBバージョンを購入しました、現在64bit版のRaspbian OSが提供されていないので、8GBを購入する場合はUbuntu等のOSを入れることになると思います。) ・SSD 1TB(Genesis〜現在までのブロックの容量は大体400GBくらいです、日時が経てば必要な量も増えるので、余裕を持って1TBを購入しました)製品の一例: https://www.amazon.co.jp/gp/product/B07MW159XC/ ・micro SDカード 32GB(OSのブート用、16GBでも動くと思いますが余裕を持って)製品の一例: https://www.amazon.co.jp/microSD-Nintendo-メーカー動作確認済-SanDisk-SDSQUA4-032G-EPK/dp/B08K4214KB/ ・5V=3Aに対応する電源アダプタ製品の一例:htt

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

Utreexoは中央集権的にならないか?

ビットコインの分散性を維持するためには、取引データを最小限に維持することが重要です。現在ビットコインの取引データは400GBを越え、UTXOだけでも4GBあります。 ビットコインにはフルノードとSPVと呼ばれる軽量クライアントがあります。フルノードは、さらにPrunedモードと呼ばれるUTXOだけを保持する運用も可能です。また軽量クライアントでは、フルノードと違い、全データを検証せずにブロックヘッダーのみをダウンロードし、自身に必要な取引データだけを検証することでストレージ容量を節約しています。 これまで軽量クライアントはBIP37で定義されているBloom Filterを使って各ウォレットを実装してきましたが、プライバシーが損なわれることからBitcoin Core v0.19.0以降ではBloom Filterはデフォルトでは無効となっています。Bloom Filterのデメリットは、クライアントごとにフィルターが異なるので検閲が可能となる点です。これを解決するために登場したのがBIP157,BIP158のCompact Block Filterで、これはBloom Filterとは異なり、フィルターがブロックごとに作成されるためビットコイン・ネットワークで全て同じものとなります。ただし、どちらにしても軽量クライアントはあくまでブロックヘッダーのみを保持し自身に必要な取引データのみを検証するので、全データを検証するフルノード/Prunedノードほどトラストレスではありません。 さて、ビットコインのフルノードは全データを保持するフルノードと検証したデータは捨てUTXOのみを保持するPrunedノードの2種類がありますが、これとは別なアプローチをするフルノードの提案としてUtreexoがあります。技術的な説明は割愛しますが、UtreexoはUTXOの管理・保持をマークル木ハッシュを使ったアキュムレーターで行います。これにより保持するデータ容量の大幅な削減だけでなくいくつかのメリットが生まれます。 メリット Utreexoノードは数キロバイトのデータ保持のみでよい IBDの並列処理が可能 コンセンサスアルゴリズムをデーターベースから独立できる ソフトフォークなしで実現できる デメリット IBDではネットワーク帯域が20%増加 Utreexoアーカイブノードは通常のフルノード以上のストレージが必要 ※IBDとはInitial Block Downloadの略で、最初の同期処理で行うブロックデータのダウンロードのこと Utreexoはソフトフォークなしで実現可能ですが、そのトリックはブリッジノードとよばれるノードの存在です。このブリッジノード(上記デメリットのUtreexo

Popular stories

ラズベリーパイ上でBitcoinノードを動かす① (モニター・マウス・外付けキーボードなし)

231

LNBIGでインバウンドチャンネルを買う

176

Archives

2021-04
1posts
2021-03
1posts