
Outline
【本文】
Bitcoinネットワークのoff-chainの一種であるLightning Networkを利用したマイクロペイメント(少額決済)についてコマンドの流れを追っていく。
【主な参考文献】
構築手順及びコマンドは、”ElementsProject/lightning (Github)”に掲載されているのでそちらを参考。
【前提及び環境】
- OS: lubuntu(v16.10) ※軽量版Ubuntu。(Mac OSでも良い。)
- Bitcoin Core(v0.15以上)が導入済みであること。
- Lightning Network(以下、LN)が導入済みであること。
- テストネットを使用。
- テストネットでテスト用BTCを手にする。
- 1satoshi = 0.00000001BTC
テストネット用にBitcoinを超たするには以下サイトから。
↓↓↓
Kiwi’s testnet faucet.
【今回の流れ】
- bitcoin coreを起動
- LNを起動
- LN用アドレスを新規発行
- LN用アドレスに適当な量のsatoshi(Bitcoinの単位)を送金(1confirmations待つ)
- LNノードにチャネルオープン(fundが必要。ここでも1confirmations待つ)
- LN上でマイクロペイメント実行
- LNノードとのチャネルクローズ
【Bitcoin Core起動】
1. Bitcoin Core起動
コンソール起動し、以下コマンドを実行。
(printtoconsoleの代わりにdaemonでも良い。)
$ bitcoind -testnet -printtoconsole
2. Bitcoinの残高確認
新たにコンソール起動し、以下コマンドを実行。
$ bitcoin-cli --getinfo { "version": 159900, "protocolversion": 70015, "walletversion": 159900, "balance": 1.51194898, "blocks": 1260888, "timeoffset": 0, "connections": 5, "proxy": "", "difficulty": 1, "testnet": true, "keypoololdest": 1512216424, "keypoolsize": 1000, "unlocked_until": 0, "paytxfee": 0.00000000, "relayfee": 0.00001000, "warnings": "Warning: unknown new rules activated (versionbit 28)" }
【LN起動】
3. LN起動
新たにコンソール起動し、ディレクトリ移動
$ cd lightning/
port:42480。ディレクトリもテストネット用に分けておく(と便利)。
$ lightningd/lightningd --network=testnet --log-level=debug --port 42480 --lightning-dir ~/.LN-test
【LN用アドレス発行】
4. LN起動状態確認
新たにコンソール起動し、ディレクトリ移動
$ cd lightning/
起動状態を確認
idやport、テストネットに繋がっているか等を確認できる。
$ cli/lightning-cli --lightning-dir ~/.LN-test getinfo { "id" : "02826a9ce98c34d50cfd94767a210cf2c62ba957b75d6e424a9a616a96e4d301bd", "port" : 42480, "address" : [ ], "version" : "v0.5.2-2016-11-21-1646-g73c3175", "blockheight" : 1260888, "network" : "testnet" }
5. LN用アドレス新規発行
新規にアドレスが発行される。こちらにBitcoinを入金することになる。
$ cli/lightning-cli --lightning-dir ~/.LN-test newaddr { "address" : "2NErWgNbBQtVGXDe6YBLkk4TJDB6dHiuNQi" }
【LN用アドレスにBitcoin送金】
いったん、Bitcoin Core側での作業となる。
6. walletのパスワード解除
‘注)walletにパスワードをかけていない場合、手順6の作業はスキップ’
$ bitcoin-cli walletpassphrase ●●● 60
7. LN用アドレスにBitcoin送金
発行しておいたLN用アドレス(”2NErWgNbBQtVGXDe6YBLkk4TJDB6dHiuNQi”)に任意のamount送金(3000000satoshi = 0.03BTC)
$ bitcoin-cli sendtoaddress 2NErWgNbBQtVGXDe6YBLkk4TJDB6dHiuNQi 0.03 20e8f200c8e5066329f05d6ea5c1c976dac4a8a62f8dcc419fcb61599ef9a670
LN用アドレス宛に送金後、実際にLN用アドレスでfundが可能になるまで1confirmations(マイニングでTxがブロックに取り込まれる。)待つ必要がある。
【LNノードとのチャネルオープン】
fundが現状ないことを確認
$ cli/lightning-cli --lightning-dir ~/.LN-test listfunds { "outputs" : [ ] }
8. LNノードにチャネルオープン
任意のLNノードにconnect(Yallsへconnect)
Y’allsの接続情報
- id: 02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b
- ip: 52.3.235.238
- port: 9735
注)fundが出来るようになるまでにLN用アドレスに入金後、1confirmations経過しておく必要がある。
$ cli/lightning-cli --lightning-dir ~/.LN-test connect 02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b 52.3.235.238 { "id" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b" }
一度、接続確認(fundしてないので、この段階では完全にはチャネルオープンしていないはず)
(”GOSSIPING”状態。fundが必要。)
$ cli/lightning-cli --lightning-dir ~/.LN-test listpeers { "peers" : [ { "state" : "GOSSIPING", "id" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "netaddr" : [ "52.3.235.238:9735" ], "connected" : true, "owner" : "lightning_gossipd" } ] }
※LN用アドレスに入金後、1confirmation経過すると、以下作業が可能になる。
fundを使いチャネルオープン(200000satoshi)
Yallsの接続id(”02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b”)を指定。
$ cli/lightning-cli --lightning-dir ~/.LN-test fundchannel 02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b 200000 { "tx" : "0200000000010170a6f99e5961cb9f41cc8d2fa6a8c4da76c9c1a56e5df0296306e5c800f2e82001000000171600147e95f54b986d68db733516a2a4b3ab08dedf49ffffffffff02400d030000000000220020e8b183278c2a0d5833deace94753e6bbfdb9c649fbff43c168d8a272bf6fb119ceb82a0000000000160014d82aaa52078523b4d3d5f78e9d8febf77ffb3df402483045022100b9b1374ea3cf39b79efb00f7747052674b19a6af0f93a40d9e7925fca41db07e0220721f33233ff969aa41578d8841253ecdac3df8dc5038e85d0f587b76032d48c00121026de3a91cac8e3b1ea05852f9c5a09948caf8ae90bca32776a48b811d0a158a6900000000", "txid" : "01eca14f6b01a9d3ac985d461fb877f4407ccbb87ded81a1ad2157fce4b6ac2a" }
再度、接続確認
“CHANNELD_AWAITING_LOCKIN”状態。この段階はまだ接続中で、チャネルオープンまで1confirmations待つ必要がある。
$ cli/lightning-cli --lightning-dir ~/.LN-test listpeers { "peers" : [ { "id" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "connected" : true, "netaddr" : [ "52.3.235.238:9735" ], "channels" : [ { "state" : "CHANNELD_AWAITING_LOCKIN", "owner" : "lightning_channeld", "funding_txid" : "01eca14f6b01a9d3ac985d461fb877f4407ccbb87ded81a1ad2157fce4b6ac2a", "msatoshi_to_us" : 200000000, "msatoshi_total" : 200000000, "dust_limit_satoshis" : 546, "max_htlc_value_in_flight_msat" : 18446744073709551615, "channel_reserve_satoshis" : 0, "htlc_minimum_msat" : 0, "to_self_delay" : 6, "max_accepted_htlcs" : 483 } ] } ] }
1confirmations後、再度、接続確認
“CHANNELD_NORMAL”状態。これで正常にチャネルオープンしたことになる。
200000000msatoshi = 200000satoshiなので、指定したfundが入っていることを確認。
$ cli/lightning-cli --lightning-dir ~/.LN-test listpeers { "peers" : [ { "id" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "connected" : true, "netaddr" : [ "52.3.235.238:9735" ], "channels" : [ { "state" : "CHANNELD_NORMAL", "owner" : "lightning_channeld", "short_channel_id" : "1260892:77:0", "funding_txid" : "01eca14f6b01a9d3ac985d461fb877f4407ccbb87ded81a1ad2157fce4b6ac2a", "msatoshi_to_us" : 200000000, "msatoshi_total" : 200000000, "dust_limit_satoshis" : 546, "max_htlc_value_in_flight_msat" : 18446744073709551615, "channel_reserve_satoshis" : 0, "htlc_minimum_msat" : 0, "to_self_delay" : 6, "max_accepted_htlcs" : 483 } ] } ] }
以上でチャネルオープン完了。
続いて実際にLNを利用してマイクロペイメントを実施する。
【LNでのマイクロペイメント】
9. マイクロペイメント
実際に、Y’allsサイトでLN支払いをしてみる。
ここでは、記事を読むのに少額課金が発生するというもの。
[Y’allsのリンク]
Y’alls -Read and write articles, with Lightning Network micropayments.-
[今回購読する記事リンク]
Lightning network explorer
図1のように、記事の続きを読むためには支払いをする必要がある。
図1の[Continue…](黄色)ボタンを押下すると、図2のように支払いに関する情報(bolt11と呼ばれるLN用invoice)が表示される。
記事の続きを読むために、図2の「bolt11」と呼ばれるinvoiceをコピーして支払い
preimageの結果が返ってきたら決済完了。
(決済は1秒かからないくらいの速度。)
$ cli/lightning-cli --lightning-dir ~/.LN-test pay lntb1u1pdxmydzpp55qr4zy3z7s7xtvvy2gar43eutvd85zechnrn32npuxqwutf9zyvqdyj0v3xgg36yffx2ctyypqhyarfvdkx2w3qf35kw6r5de5kueeqdejhgam0wf4jqetcwpkx7un9wg3zcgnfygazyvfjxgukzd35v5knvvmrxvkngvpsxcknjwryx5knvepnxqexyepcx5enjv3z05cqzysd3hzytzn4sc8vrtzzu3asr0am5plgnqswhzycm0m23r8epqmqjkxd4yfxact2e374mlkdcqe6z0uql5wyqnh4pz0v9ynk9ktdt6v3xqq5a3gtl { "preimage" : "59e498c411bd6bec4e0dda7e1b4be2b81c8b41611462246d3dee3aa3ac61e28d" }
図3のように記事の続きが表示される。
ついでなので、記事に対するコメント(Comments)も入れてみる。
“Good Job!”のコメントを入れて「post」すると、図4のように「bolt11」が発行されるのでこちらを利用して支払い。
$ cli/lightning-cli --lightning-dir ~/.LN-test pay lntb200n1pdxmy4lpp5s0rkudkxlpsx5gudup73wm2mefpv7u8p92hg6ycc2w56eayyzedqdr80v3xgg36yfqkgepqvysxxmmdd4jkuapz9s3xjg36yfnxzd34xyenycfdvfskye3dxscxvd3d8yunswpdxqersd3c89nrzenz8qcjylgcqzysj7cqe4cge9aqsk2f5uhxu7mj9lsvcv5m30c98cr92jhqurhkv5fqq3rc2eww0e376xp8ya3y7fwjer6s8pz7vr2ecgq8wl75wps9ufgqx4fan0 { "preimage" : "f877187e88753b771c03f0e2c78baaa3b1d51617473fd66fffe9d1dff051dff6" }
図5の通り、実際にコメント欄に「Good Job!」のコメントが追加されている。
10. 決済情報確認
自分が決済した情報を確認する。
実は、最初の決済(”id” : 1)は、上記の記事を見る為のpayコマンドを誤って2回実行してしまった人為的なミスによるもの。なので、決済情報としては正常。
決済総額は、100000(id:1) + 100000(id:2) + 20000(id:3) = 220000(msathoshi)
$ cli/lightning-cli --lightning-dir ~/.LN-test listpayments { "payments" : [ { "id" : 1, "payment_hash" : "e5d95a192f660e258ee03c31e2715864e94dd938f0fd22fc96cf6e40c07b40bd", "destination" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "msatoshi" : 100000, "timestamp" : 1517130083, "created_at" : 1517130083, "status" : "complete", "payment_preimage" : "8fa4d689c4fe08da1992e05f8bec84e36d6e5bc47061916e7f3fc4e335e2823a" }, { "id" : 2, "payment_hash" : "a007511222f43c65b184523a3ac73c5b1a7a0b38bcc738aa61e180ee2d251118", "destination" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "msatoshi" : 100000, "timestamp" : 1517130196, "created_at" : 1517130196, "status" : "complete", "payment_preimage" : "59e498c411bd6bec4e0dda7e1b4be2b81c8b41611462246d3dee3aa3ac61e28d" }, { "id" : 3, "payment_hash" : "83c76e36c6f8606a238de07d176d5bca42cf70e12aae8d131853a9acf484165a", "destination" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "msatoshi" : 20000, "timestamp" : 1517130475, "created_at" : 1517130475, "status" : "complete", "payment_preimage" : "f877187e88753b771c03f0e2c78baaa3b1d51617473fd66fffe9d1dff051dff6" } ] }
11. fund情報確認
自分の残高を確認。
“msatoshi_to_us” : 199780000 (自分)
“msatoshi_total” : 200000000 (fund総額)
なので、差額は220000(msatoshi)となり、No.10で確認した決済情報総額と一致する。
(ご参考: 220000msatoshi = 0.000022BTC)
$ cli/lightning-cli --lightning-dir ~/.LN-test listpeers { "peers" : [ { "id" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "connected" : true, "netaddr" : [ "52.3.235.238:9735" ], "channels" : [ { "state" : "CHANNELD_NORMAL", "owner" : "lightning_channeld", "short_channel_id" : "1260892:77:0", "funding_txid" : "01eca14f6b01a9d3ac985d461fb877f4407ccbb87ded81a1ad2157fce4b6ac2a", "msatoshi_to_us" : 199780000, "msatoshi_total" : 200000000, "dust_limit_satoshis" : 546, "max_htlc_value_in_flight_msat" : 18446744073709551615, "channel_reserve_satoshis" : 0, "htlc_minimum_msat" : 0, "to_self_delay" : 6, "max_accepted_htlcs" : 483 } ] } ] }
fundの状態変化確認
$ cli/lightning-cli --lightning-dir ~/.LN-test listfunds { "outputs" : [ { "txid" : "01eca14f6b01a9d3ac985d461fb877f4407ccbb87ded81a1ad2157fce4b6ac2a", "output" : 1, "value" : 2799822 }, { "txid" : "eaf9562ee170867fca11ebc2ff5ee894dc0fa0d6e69247a62585da74c02eb912", "output" : 0, "value" : 199596 } ] }
LN用アドレス残高: 2799822 (fee: 178)
fund残高: 199596 (fee: 404)
合計: 2999418
差額(fee): 582 (3000000 – 2999418)
【LNノードとのチャネルクローズ】
最後にチャネルをクローズしてみる。
12. チャネルクローズ
$ cli/lightning-cli --lightning-dir ~/.LN-test close 02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b { }
13. 接続状況確認
”ONCHAIND_MUTUAL”状態となり、Y’allsとの間でチャネルクローズしたことが分かる。
$ cli/lightning-cli --lightning-dir ~/.LN-test listpeers { "peers" : [ { "id" : "02d041e838da7decc58ac47cd2ff01cd3774f00f172953b4d82429ada29216a40b", "connected" : false, "channels" : [ { "state" : "ONCHAIND_MUTUAL", "owner" : "lightning_onchaind", "short_channel_id" : "1260892:77:0", "funding_txid" : "01eca14f6b01a9d3ac985d461fb877f4407ccbb87ded81a1ad2157fce4b6ac2a", "msatoshi_to_us" : 199780000, "msatoshi_total" : 200000000, "dust_limit_satoshis" : 546, "max_htlc_value_in_flight_msat" : 18446744073709551615, "channel_reserve_satoshis" : 0, "htlc_minimum_msat" : 0, "to_self_delay" : 6, "max_accepted_htlcs" : 483 } ] } ] }
14. fundからの資金引き上げ
おそらく、この段階ではまだfundに残金が残っていると思われるので、最終的にBitcoinアドレスに送金(引き出し)する必要がある。
この辺りの仕組みが自分の中で未だ良く分かっておらず、確信は持てないが、一応、LN用コマンドには”withdraw”がある。
今回、この”withdraw”コマンドを使用してBitcoinアドレスにfund残高を戻す。
“withdraw”コマンドについて
以下、リンクにリクエストとして挙がっている。(2018/4/26)
Bitcoin Core上でrefund用の新規アドレスを発行
$ bitcoin-cli getnewaddress mqEVHaro9myyivNGYZ5SojcdaBAQUoqSUx
発行したrefund用アドレスにbitcoinを全額分戻す。
$ cli/lightning-cli --lightning-dir ~/.LN-test withdraw mqEVHaro9myyivNGYZ5SojcdaBAQUoqSUx all { "tx" : "0200000000010212b92ec074da8525a64792e6d6a00fdc94e85effc2eb11ca7f8670e12e56f9ea0000000000ffffffff2aacb6e4fc5721ada181ed7db8cb7c40f477b81f465d98acd3a9016b4fa1ec010100000000ffffffff01c3c32d00000000001976a9146a940ea67c5d7dfab5de49289ad92f808a8ba6d388ac02473044022052a69dc1e6f3339fc6b7e723da358e401abd744c1c3e1e542c803ba28af43d28022012da574a62edbbe464a1604e08e580b8b26163ca78bafcdfcbe0bb452384332a0121030e39664ec5a75bc471d51ce33c8b75ec44ceec78823f445c011700f47306b7cc02483045022100d2114c7dd2e4bfcacf79ed66ee5957e4f8569abd3d734bf48737589e8aea300f022021e53e0e814993e9d18705186b4fc2b591563ff43c27a9714fb6963817a029f50121039f6ecdd9afc735753b91c6d0a0cb6b142564471872214c515ef7a4e307562ffd00000000", "txid" : "ff984b4aaf52a58a02782568428349db903c7d1e05695158eee9ec3b2fe008f3" }
fund確認(全額引き出したため、fund残高がなくなっている。)
tomo-hata@tomohata-VirtualBox:~/lightning$ cli/lightning-cli --lightning-dir ~/.LN-test listfunds { "outputs" : [ ] }
【終わりに】
Lightning NetworkはBitcoinのレイヤー2に当たるもので、Bitcoinが抱えるスケーラビリティ問題をon-chainではなくoff-chain等で解決しようとする試みの一つである。
特に、Lightning Networkは不特定多数のものと双方向・多対多のマイクロペイメント(少額決済)を実現可能とするもので、今回見てきたように、接続先ノードにfundすると言う点においてもLightning Networkノードの運用が肝になる。
一方、チャネルオープンからクローズまでの間はマイニングによる影響を受けることがなく決済可能となる為、少額決済(理論上は1satoshiでも可能。)及び高速決済が実現できることになる。
Ethereumでも同様の試みが行われており、例えば、Raiden NetworkもOff-chain上で多対多の決済を可能にし、Plasmaと言うEthereumネットワークとは別だがし少し重なるように独自のon-chainを構築することで、EthereumネットワークとPlasma上を行き来しながらスマートコントラクトを高速処理する試みもある。なお、PlasmaはLightning Networkの考案者であるJoseph PoonとEthereum FoundationのVitalikによる共同提案によるもの。
パブリック型(アナーキー型)ブロックチェーンは、一時期、高速かつ少額決済には向いていないとされ、特に企業向けにプライベート型の開発が主流になりつつある時期もあったが、最近のBitcoinやEthereum及びその周辺プロジェクトの進展を見ていると、再びパブリック型が重要視される可能性も十分に考えられる。
ブロックチェーンと一口に言っても、様々な基盤が存在し、それぞれの思想や解決したい課題に応じて日々研究や開発が行われている。パブリック型でもプライベート型でもそれぞれに長所・短所があるので、より広い視野を持ってこれからも勉強していきたいと思う。
- Angularで可視化しながら、3通貨アービトーラージ(内部アービトラージ)の自動化実験をしてみた
- [Zaif]Pythonで簡単に仮想通貨の取引が出来るようにしてみた
- NEM のトランザクションを作る
- Bancor プロトコル:Smart Tokenの革新性とは。「Coincidence of Wantsの解決」とそれがもたらす「取引の再発明」
- IOTA【技術解説】署名と承認。 – 改訂版
- IOTA:【入門】トランザクション大解剖!ウォレットは裏で何をやっているか。
- Bitcoinのコードをまとめるためだけのページ
- Raspberry piを使って仮想通貨取引自動化してみた
- Ethereumで仮想通貨を発行する
- Ethereum: Raiden Networkを触ってみた!(環境構築と起動)
- ブロックチェーンエンジニア Lv. 1 —スマートコントラクトをデバッグするぞ—
- NEMアプリケーションを構築するための開発者ツールとしてのNanoWalletをインストールする
- bitFlyerなど仮想通貨の取引所や販売所のAPIで、ゴニョゴニョのリンク集
- ブロックチェーンエンジニア Lv. 2 —ガチャを実装する—
- macでダブルクリックでMoneroをマイニングできるようにしてみた
- Pythonでcoincheck APIを使ってみる。 ~自動取引プログラム作成に向けて~
- ラズパイでBitZenyをCPUマイニングする -組み込みエンジニアだってお金が欲しい-
- LinuxでXPをPosマイニングする(CUI版)
- Vue.js + Nuxt.jsでコインチェックのチャート表示サービスを作った
- コピペとブラウザ”だけ”で作る、イーサリアムの仮想通貨
- monacoind 不要の faucet を作ってみた (骨格だけ)
- IOTA:【随時更新】最速でフルノードを立ち上げる。
- 仮想通貨自動取引入門
- 国産仮想通貨KOTOの作業メモ
- 仮想通貨取引所(bitbank.cc)の公式APIを使って仮想通貨の取引をする方法
- Swiftで始める仮想通貨システムトレード入門
- ビットコインの裁定取引の自動化を考える
- Script入門
- 世の中にはびこるコンセンサスアルゴリズムを調査した件(Proof of X)
- [知見求む!] 確定申告用に仮想通貨取引の帳簿アプリを作ってみた
- IOTA ~ポストスマートフォン時代のフィンテック~
- Bitcoin開発環境を構築する
- ブロックチェーンはどのようなサービスで活用できるのか
- Zaif Paymentを使ってビットコイン&モナコイン仮想通貨決済システムをつくってみる
- IOTA:【実践】APIでウォレットを実装。受送金と残高計算。
- IOTA:【技術解説】マルチシグを理解し実装する。
- 0から仮想通貨を作るために知っておくべき技術【第1回アドレス編】
- GAS(GoogleAppsScript)で「社内通貨」を作ってみた話
- Ethereum入門 〜独自トークンの発行〜
- 流行りに乗って仮想通貨(Bitcoin etc)を自動取引できるwebサービス作った
- ビットコイン自動裁定取引アプリを独自に開発!(配布あり)
- ccxtを使って裁定取引botを作ってみたらなぜか虚しくなった件
- 仮想通貨NEMアプリ開発時ベストプラクティスのまとめ
- ビットコイン株価の乱高下に合わせて音色を奏でるプログラム作ったんだよ
- CryptoWatchのAPIを用いたローソク足チャート生成
- 【2018年版】有力ブロックチェーン特徴まとめ18選
- Python+Flask+Herokuで作るLINE bot (具体的な操作: Postback, carouselなど)
- 自動売買botの損益をpythonだけで可視化してみたらなぜかテンション下がった件
- Counterpartyでアプリを簡単に作ろう!
- ERC-918 マイニング可能トークンについて
- ブロックチェーンにおける主要な攻撃や問題まとめ
- Webエンジニアがサクッと社内通貨を作ってみた
- 円建で XEM 払いできる QR コードを作ってみる
- 月数100万アクセスをDB使わず超簡単にさばく
- 暗号通貨(Bitcoin, Monacoin)のプロトコルを理解する: 公開鍵と秘密鍵
- 暗号通貨用Webサービスを立ち上げるためのmonacoind(bitcoind)のビルドと運用
- わかりやすいブロックチェーン(blockchain)とは何か? の説明
- Mac OS X で bitcoind をコンパイル、インストールする方法
- Bitcoinの初期ブロックチェーンのDLを早くする bootstrap.dat
- Bitcoinの中本哲史論文を箇条書きでわかりやすくまとめてみた
- bitcoin.conf の書き方 まとめ
- 技術者向け Ethereumの基礎知識 (イーサリアム、エセリウム)
- Ethereum の Smart Contracts やアプリの作り方
- 技術者向けビットコイン、ブロックチェーンの基礎用語 まとめ
- ビットコインのブロックチェーンの技術的な説明 まとめ
- Bitcoin: bitcoind APIのまとめ
- Bitcoinの技術 Namecoin とは何か? 非集権型DNS?
- Proof of Stake とは何か?
- ビット・クラウド(Bitcloud)とは何か?
- 空きサーバで分散暗号通貨Quarkを掘る(基礎編)
- オライリー本「Mastering Bitcoin」の読書
- Bitcoin: サイドチェーン(sidechain)とは何か?
- 次世代非集権型インターネット MaidSafe とは何か?
- Bitcoin: OP_RETURN の技術的説明
- 暗号通貨の技術: Proof of Burnとは何か?
- [ビットコインの技術] マルチシグネチャの技術的説明
- オレオレコインの作り方(前編)
- 5分でできる razrbit SDK + Node.js でビットコイン・プログラミング
- ビットコインを勉強するためのサイトや本 まとめ
- ビットコイン2.0 とは? Bitcoin 2.0 資料まとめ
- そもそもお金ってなに?ビットコインを勉強する前に。
- ビットコインのウォレットの技術的解説
- Mastering Bitcoin: 5章 トランザクション のまとめ
- オラクル(Oracle)とは何か? ブロックチェーン
- 多くの賢い人がビットコインを学ばず後悔するというよくある話
- 【文字起こし】ビットコインウォレットサービスのセキュリティについて
- TradeWave使ってみた(PythonでBitCoin システムトレード)
- BIP39 MNEMONIC GENERATOR
- ビットコインの Lightning Network メモ
- Open Assets Protocolの実装 まとめ
- BitCoinとBlockChainにまつわる誤解ーそんなことはできない
- bitcore-nodeの導入方法(ブロックエクスプローラーinsightの導入方法)
- Zaif取引所(Bitcoin/Monacoin)のAPIをGolangから使う
- 全人類の口座残高を管理する――(1) Bitcoinの場合――
- Bitcoin faucet 〜 無料でBitcoin が手に入るカラクリ 〜
- 全人類の口座残高を管理する――(2) Ethereumの場合――
- Ethereumでコントラクトの監視 – Event –
- ブロックチェーンにできること、できないこと
- ビットコインのアドレス生成の仕方
- ビットコインの扱い方
- BlockChain は電子署名 2.0 となり得るか
- ビットコインのブロックチェーンから入金確認をする
- BitcoinをPythonのhashlibでマイニングしてみる
- Ethereum互換のノードをScalaでスクラッチ実装した話
- BitFlyer Ligntning APIをPythonで使ってみる
- 公開鍵暗号とRSA暗号の仕組み
- Proof of Work考、あるいは暗号通貨システムのガバナンスについて
- EthereumやLightningNetwork等のBitcoin改的な取組みは普及するか、という非技術的な<考察> その1
- ビットコインプログラミング超入門編
- 暗号通貨による札束の燃やし方(オーストラリア産中本哲史とチューリップ信託騒動に関連して)
- bitcoin-cliを使ったBitcoinAPI入門
- OpenAsset入門
- Bitcoin(Mainnet, Testnet)への接続方法
- P2SHとP2PKH宛のUTXOを使った送金から学ぶBitcoinの署名の仕組み
- CentOS 6.8(64bit)でbitcoind 0.10.4.0をインストールする方法
- [Zaif]Pythonで簡単に仮想通貨の取引が出来るようにしてみた
- サーバーレスフレームワークTruffleでÐappを爆速開発する ①Tutorial
- ビットコインの採掘って何なの?気になったので調べてみた
- bitcoindをcentos7にインストール
- ホットウォレットとコールドウォレットとは?
- 秘密分散DAO、もう一つのクリプト2.0
- ビットコインウォレットの開発にはどれがいいか(JSON-RPC,bitcoinjs-lib,bitcore-lib)
- さまざまなブロックチェーン技術
- 【総まとめ】ブロックチェーンの仕組みと、ブロックチェーンの今後について学んでみる
- ブロックチェーンで Hello world! (Minimum Viable Block Chain)
- pycoinでビットコインの簡易ウォレットを作ってみた
- ビットコインにおける匿名性を高める技術
- bitFlyer APIを利用して自動的にマネーを次世代通貨にフォワードする
- サーバーレスフレームワークTruffleでÐappを爆速開発する ②爆速で銀行を設立する
- P2SH まとめ
- マルチシグの仕組み(P2SH方式)
- Bitcoinのブロックチェーンに任意の80byteデータを刻みこむ
- イケてる ÐApps 100選
- アイドルとオタクがBitcoinで永久に消えないメッセージを刻む
- 翻訳: Proof of Workより「安い」方法は存在しない
- SHA-256ハッシュ関数をrubyで自前実装
- PythonからcoincheckのWebsocketAPIに接続する
- 初心者が一攫千金を目指してBitcoin自動取引botを作るよ! その1【情報取得】
- 初心者が一攫千金を目指してBitcoin自動取引botを作るよ! その2【APIで取引】
- 初心者が一攫千金を目指してBitcoin自動取引botを作るよ! その3【ローカルBot】
- nanowalletに学ぶ、JavaScriptだけで暗号通貨のNEMアカウントを生成する方法
- 初心者が一攫千金を目指してBitcoin自動取引botを作るよ! その4【サーバレス化】
- PycoinでBitcoin Testnetに接続
- .NET Core で bitcoin の送金をしてみる on Ubuntu
- Gitとブロックチェーンの関係
- bitcoindをdockerで環境構築する
- Node.jsとNEM-sdkを利用して仮想通貨XEMのばらまきサイトを超簡単に作る。
- 公平なランサムウェア
- Mac OS XでモナーコインをCPUマイニングする
- 【飲食店では世界初】Ethereum上でICO(イニシャルコインオファリング)のコード監査をした話
- [Node.js]ブロックチェーンアドレスを生成してみた – 中級編 –
- Bitcoinのコードをまとめるためだけのページ
- bitcoinのSegWitの仕組み
- クラウドの力を借りて無限収入システムを構築する(はずだった)
- TensorFlow(LSTM)でBitcoinの価格予想
- Python – bitflyerから一定間隔でビットコインレートBTC/JPYを取得してファイルに保存
- Bitcoin Core を AWS で動かしてみる
- ビットコイン自動裁定取引システムを開発・トレードした結果
- Zaif取引所のAPIで仮想通貨の売買価格を取得しチャートを作成する
- NEM/mijinにおけるマルチシグのユースケースについての考察
- 【謝罪】皆様が利用している間に、コインマイニングしていた話【Coinhive】
- 【エンジニア向け】ビットコインを学んでブロックチェーンを完全に理解する【第一回 歴史とネットワーク】
- ビットコイン裁定取引のチャンスを可視化する
- (随時更新) BlockChainハッカソンマニュアル by Team AI
- 【エンジニア向け】ビットコインを学んでブロックチェーンを完全に理解する【第二回 トランザクション】
- ビットコイントランザクションの中身を詳しく見てみる
- 各ビットコイン取引所APIの認証で陥りやすいポイント
- Counterpartyの技術情報 まとめ
- BIP 0001【翻訳】
- ブロックチェーンを作ることで学ぶ 〜ブロックチェーンがどのように動いているのか学ぶ最速の方法は作ってみることだ〜
- ビットコインアドレスを自分の手で作って理解する
- Beyond Blockchain(bbc1)のインストールから起動まで
- とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト
- Bitcoinを電気代”0円”でマイニングして稼ぐ!
- Bitcoin Standard Transactions(送信)
- Pythonで仮想通貨自動取引 (1) : 板情報取得と各取引所のレスポンスタイム計測
- ビットコインインフラとしてのelectrumx(server)
- NEM-sdk を使ってサーバーレスな無記名掲示板を作る
- 0からのブロックチェーン勉強法
- ラズパイでBitZenyをCPUマイニングする -組み込みエンジニアだってお金が欲しい-
- ブロックチェーンによくある誤解と批判を紐解いてみる
- Monacoinオンラインウォレットを作ってみよう
- 【Google Apps Script】その8 スクリプトを定期実行し、ビットコインの1分ごとの価格を自動取得する
- Rubyでブロックチェーンを理解しよう!!
- マイニングで一番稼げる仮想通貨は何か!?BTC・LTC・MONA・XMR・BCNの5種でベンチマークしてみた!
- 暗号通貨にまつわる事件/障害事例まとめ
- bitFlyer APIを使ってビットコインのFX取引をしてみる
- 海外の仮想通貨取引所が使いにくいので、LINEで話せる美少女コンシェルジュを作る
- Ethereumのアドレス生成アルゴリズム
- ビットコインの原論文を読んで俺のブロックチェーンをつくろう Part 1
- 仮想通貨NEMでLINEに発言させたりビットコインをマルチシグ送金させたり、いろいろやってみる。
- 仮想通貨取引所(bitbank.cc)の公式APIを使って仮想通貨の取引をする方法
- Script入門
- DQNで機械学習した人工知能がBitcoinをシストレして月700万円儲けるまでの話(失敗)
- 世の中にはびこるコンセンサスアルゴリズムを調査した件(Proof of X)
- Prophetを用いた時系列解析によるビットコイン価格予測
- 作って学ぶBitcoin!ゼロから作るSPVウォレット
- Bitcoin開発環境を構築する
- ビットコインの原論文を読んで俺のブロックチェーンをつくろう Part2
- できる!GolangでBTC自動取引
- 素人でもOK!?仮想通貨のマイニングをしてみる!!
- Zaif Paymentを使ってビットコイン&モナコイン仮想通貨決済システムをつくってみる
- CPUマイニングでも利益が出せる BitZeny を試してみる (Ubuntu編)
- Swiftでブロックチェーンを実装してみる
- Rubyでブロックチェーンを実装してみる
- Bitcoinが楕円曲線暗号の公開鍵からアドレスを生成する流れをシェル芸だけで実装してみる
- 0から仮想通貨を作るために知っておくべき技術【第1回アドレス編】
- 流行りに乗って仮想通貨(Bitcoin etc)を自動取引できるwebサービス作った
- Bitcoin: Lightning Networkによるマイクロペイメント
- 仮想通貨を扱うサービスが最低限するべきなセキュリティ対策
- Angularで可視化しながら、3通貨アービトーラージ(内部アービトラージ)の自動化実験をしてみた
- ディープラーニングでビットコインの価格予想
- 【2018年版】有力ブロックチェーン特徴まとめ18選
- Counterpartyでアプリを簡単に作ろう!
- [仮想通貨取引所]BitlflyerのRealtimeAPIをPythonで呼び出す
- Clojure でブロックチェーンを実装してみる
- Bitcoinの自動取引botのバックテストをしてみたら思ったより利益出てる
- 【Python】ビットコインの価格を教えてくれるLINE BOTを 右も左もわからない初心者がつくってみた
- ブロックチェーンにおける主要な攻撃や問題まとめ
- ビットガールズ埋蔵金を発掘した話
- こいつはすごい!ブロックチェーンプロジェクト ベスト5【2018年版】

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。