2月にライトニングネットワークの開発者メーリングリストに投稿された、アトミック・マルチパス・ペイメントが、異様なレベルの発明だと話題になっている。
アトミック・マルチパス・ペイメント=AMP
は、ライトニングネットワークの支払いを改善し、いくつかの批判への回答となるかもしれない発明だ。 続きを読む 異様な発明、アトミック・マルチパス・ペイメントについて
2月にライトニングネットワークの開発者メーリングリストに投稿された、アトミック・マルチパス・ペイメントが、異様なレベルの発明だと話題になっている。
アトミック・マルチパス・ペイメント=AMP
は、ライトニングネットワークの支払いを改善し、いくつかの批判への回答となるかもしれない発明だ。 続きを読む 異様な発明、アトミック・マルチパス・ペイメントについて
ライトニングノードを簡単な立て方を書きます。
有料版のほうでは使い方ふくめ詳しいレポートを書いたのですが、ここでは簡単な立て方を紹介します。
基本的に、このブログの翻訳です。レポジトリなどこちらのブログの作者のものをそのまま紹介します。
ライトニングはいろんな実装がありますが、bitcoindと親和性の高い、c-lightningを使うことにします。
まず、bitcoindをインストールしてない人は前段階として、bitcoindを入れて、ブロックをすべて同期するひつようがあります。(およそ容量180GBで、12時間ほど要します)
blog作者のDockerをつかった簡単な方法を転載します
blog作者レポジトリに接続
root@docker-s-6vcpu-16gb-nyc3-01:~# git clone https://github.com/dougvk/lightning-node.git
bitcoindのDockerイメージをbuild
root@docker-s-6vcpu-16gb-nyc3-01:~# cd lightning-node root@docker-s-6vcpu-16gb-nyc3-01:~/lightning-node# docker build . -t dougvk/bitcoind
bitcoindイメージを走らせる
root@docker-s-6vcpu-16gb-nyc3-01:~# mkdir -p /scratch/bitcoin/mainnet/bitcoind root@docker-s-6vcpu-16gb-nyc3-01:~# docker run --name bitcoind_mainnet -d -v /scratch/bitcoin/mainnet/bitcoind:/data -p 8333:8333 -p 9735:9735 dougvk/bitcoind:latest
こちらのコマンドで同期の状況を確認
root@docker-s-6vcpu-16gb-nyc3-01:~# docker logs bitcoind_mainnet --tail "10"
ネットワークの設定として、ポートは、8333(bitcoin)と9735(lihgtningd)を開けておいてください
bitcoin-cliのショートカットを作ります。
getinfoとやって、うまく情報がでればうごいてます。
root@docker-s-6vcpu-16gb-nyc3-01:~# cat /usr/local/bin/bitcoin-cli #!/usr/bin/env bash docker run --rm --network container:bitcoind_mainnet -v /scratch/bitcoin/mainnet/bitcoind:/data dougvk/bitcoind:latest bitcoin-cli "$@" root@docker-s-6vcpu-16gb-nyc3-01:~# chmod +x /usr/local/bin/bitcoin-cli root@docker-s-6vcpu-16gb-nyc3-01:~# bitcoin-cli getinfo { "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16", "version": 150100, "protocolversion": 70015, "walletversion": 139900, "balance": 0.00038800, "blocks": 505216, "timeoffset": -1, "connections": 15, "proxy": "", "difficulty": 2227847638503.628, "testnet": false, "keypoololdest": 1516416352, "keypoolsize": 1999, "paytxfee": 0.00050000, "relayfee": 0.00500000, "errors": "" }
さてブロックの同期には12時間はかかるので、寝ましょう。
以上は、Bitcoindのセットアップです。もしすでにBitcoindを走らせているノードをお持ちでしたら、下記のLigtnigdのセットアップからやってください。
ブロックが同期し終わったら、Lightnindをセットアップします。
root@docker-s-6vcpu-16gb-nyc3-01:~# mkdir -p /scratch/bitcoin/mainnet/clightning root@docker-s-6vcpu-16gb-nyc3-01:~# docker run --rm --name lightning --network container:bitcoind_mainnet -v /scratch/bitcoin/mainnet/bitcoind:/root/.bitcoin -v /scratch/bitcoin/mainnet/clightning:/root/.lightning --entrypoint /usr/bin/lightningd cdecker/lightningd:master --network=bitcoin --log-level=debug
ログがでるかどうか確認
... lightningd(1): Hello world from 03e71ed1bbedcf41d97e06ef3dfe4cdf79e871e9a3c809ab32b78e71dea45bf78c aka SLICKERGOPHER #03e71e (version v0.5.2-2016-11-21-1414-g5eceaa7)! ... lightningd(1): Adding block 00000000000000000055234efac33e0ea30cc8e84ded7997f9e434534fd6f1bb lightningd(1): Adding block 0000000000000000006fcfbab65ccb4634a800c5b12913b8379e6704b42db663 lightningd(1): Adding block 0000000000000000003f350dcff4fa5b1df61355cd80e9b06be55654d6384518
Lightning-cliのショートカットを作成します
#!/usr/bin/env bash docker run --rm -v /scratch/bitcoin/mainnet/clightning:/root/.lightning --entrypoint /usr/bin/lightning-cli cdecker/lightningd:master "$@" root@docker-s-6vcpu-16gb-nyc3-01:~# chmod +x /usr/local/bin/lightning-cli root@docker-s-6vcpu-16gb-nyc3-01:~# lightning-cli getinfo { "id" : "03e71ed1bbedcf41d97e06ef3dfe4cdf79e871e9a3c809ab32b78e71dea45bf78c", "port" : 9735, "address" : [ ], "version" : "v0.5.2-2016-11-21-1414-g5eceaa7", "blockheight" : 505236 }
これも、lightning-cli getinfoとやって、ノードの情報が表示されればOk
以下から、ライトニングの操作です。
ライトニングのウォレットのアドレスを作成。
root@docker-s-6vcpu-16gb-nyc3-01:~# lightning-cli newaddr { "address" : "3Dx1XCcBsTtUQmWW6KD8PfMx6fB9saejYM" }
上記にビットコインをいくらか入金してください。6 confirm 後に、ウォレットにあるかどうか確認できます
root@docker-s-6vcpu-16gb-nyc3-01:~# lightning-cli listfunds { "outputs" : [ { "txid" : "[HIDDEN]", "output" : 0, "value" : 300000 } ] }
他のノードに接続してみましょう。ノードは、https://lnmainnet.gaben.win/とかのライトニングのマップで調べるのがよいです。
よくわからければ、おすすめノードに接続してみてください。
blog作者のノードは、SLEEPYARKという名前で、
私のノードは、ln.inazuma.ccです。
以下、私のノードのpub idとIPを載せておきます。
ln.inazuma.cc: pub key : 03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef IP: 133.18.56.130
接続するには、connectとします。
%lightning-cli connect 03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef 133.18.56.130 { "id" : "03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef" }
で接続できます。ノードIDが帰ってきたらOK
(手数料は手動設定しなくても、問題ないですが)、デフォルト値があまりに低くすると、チャネルが閉じられないく成る可能性があるので、適時リーズナブルな値に設定すること。
root@docker-s-6vcpu-16gb-nyc3-01:~# bitcoin-cli settxfee 0.0005
次にチャネルにBTCをデポジットします。
%lightning-cli fundchannel 03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef 100000
指定する金額の単位は、Satoshiです。ここでは、10万サトシつまり、1000円くらいデポジットしてます。
手数料の状況ではコレだと足りないかもしれないので、適時増減してください。
ここで、チャネルが確立するまで、6 confirmまってください。
%lightning-cli listnodes
で、チャネルの状況がモニターできますので、CHANNEL_NORMAL、CONNECTEDとなっていれば、チャネル確立完了
支払いの方法ですが、BOLT11のペイメントコードを取得してください。
ためしにブロックストリームストアかなにかなで何か買うのがいいかもです。
https://store.blockstream.com/
こういう奴です。
で、
%lightning-cli pay lnbc1712393610p1pdx8n8mpp5c72tc40vzyf9deqm5lzn76404heejady02l494ykke3vm3x44y8qdy2gfkx7cmtwd68yetpd5azqv339cunvgz42dzzqen0wgsyymr0vd4hxarjv4sk6gznv96x2mrvd96x2grnw35kx6m9wgs8sgp5ypskuepqf35kw6r5de5kueeqwd6xjcmtv4ezq7pqxvcqpggq86huylgdcd4st0d8thgdlw67tefjkhrnssyf8zk2s9cu37hdanwm6q96llg5zgjckwe7jamsmxnp4vy4q7vyulv57d9yg0wm7df0cpgwgu2m
とかやれば、支払いできます。
以上です。
有料サロンの方では、ブログ翻訳ではなく、c-lightningをソースからビルドする方法で、詳しくコマンドの使い方など含め書き起こして解説していますので、ご興味があれば、こちらからよろしくねがいします。
【レポート096】ライトニングネットワークスタートマニュアル(ノードの立て方、チャネルの貼り方、支払いまで)
最近は、ライトニングネットワークや、サイドチェーンといった2ndレイヤーと呼ばれる技術に注目が追いついてきました。簡単に解説をしていこうとおもいます。
サイドチェーンについて書きます。
図(https://blockgeeks.com/guides/blockchain-wiki/)
サイドチェーンとは、メインチェーンとは別にもうひとつのブロックチェーンを勝手につくって、メインチェーンとPegと呼ばれる手法に相互運用性をつくることで、メインチェーンには無かった機能を追加したり、手数料や承認時間をゼロに近づけたりと、独自のチェーン設計と運用が行えるようにするものです。
上の図で言うと、左の丸がメインチェーン(BTCのチェーンなど)、右の丸がサイドチェーンで、真ん中の黒い双方向の矢印が、ペグという手法を指します。
ざっと解説すると、こうなります。
という感じです。
サイドチェーンの何が嬉しいかですが、
まあ新たにアルトコインなんかつくらなくても、サイドチェーンでいろいろできるよってことで。
次にいくつかの疑問点にお答えすると。
Q サイドチェーンのセキュリティはメインチェーンより落ちるのでは?
→そのとおりで、利便性や多機能とセキュリティはトレードオフになるのが一般論。ビットコイン自体のセキュリティを緩めるんじゃなくて、サイドチェーン利用で、利用目的にあわせて、セキュリティと機能は選べるようにしようということ。(for diffent purpose, different security and consensus model.)
Q もしサイドチェーンで不正などがおきてサイドチェーンコイン内のコインが増えちゃったり、改ざんされた場合、それをメインチェーンに戻したら、メインチェーンのコインも不正できるの?
→No. サイドチェーンが壊れたら、メインチェーンにロックしているBTCが取り出せなく成る。サイドチェーン内でも不正は困ったことに。
Q 実用化されているサイドチェーンは?
→Ethereumライクなスマートコントラクトが使えるRSKという再度チェーンがベータ版をローンチ。その他、取引所間のプライベートサイドチェーンであるLiquidなどがある。
最近は、ライトニングネットワークや、サイドチェーンといった2ndレイヤーと呼ばれる技術に注目が追いついてきました。簡単に解説をしていこうとおもいます。
ライトニングネットワークについてです。
いろんな説明があるのですが、手数料無料、早いといったユーザーベネフィットの話からのものが多いと思いますが、すこし別の切り口から説明してみます。 続きを読む ライトニングネットワークの簡潔な解説
Segwitのデプロイ関係を、もういちど簡潔にわかりやすく解説してみようと思う。
プロトコルの仕様それ自体、デプロイメントメソッド、推進体制、この3つがごっちゃになっているので、非常にわかりにくい。これを切り分けて整理する。 続きを読む Segwitの状況についての基礎理解と再整理をしてみました(UASF/Segwit2x)
Segwit2xがめまぐるしく動いているようだ。現在は、NYAという文字をブロックに埋め込むことでマイナーが支持を表明しており、80%を超えている。
現在の状況については、Jimmy song氏のブログがわかりやすいまとめになっているので、これの要点を引用しながら、解説する。 続きを読む Segwit2xの現状と、BIP91について
昨日からASIC BOOSTについての話題でビットコイン界はもちきりである。
ASIC BOOSTは、ビットコインの仕様と、SHA-256関数のアルゴリズムの特徴を上手く使うことにより、計算コストを20−30%節約することができるという手法である。
以下、ASIC BOOSTとその対策について、できるだけ簡単かつ簡便に解説する。