ビットコインの需要の高まり – THE BLOCK

ビットコインの需要の高まり
Grayscale Bitcoin TrustGBTC)の運用資産(AUM)は、10ヶ月ぶりの最高値の14.2億ドルに達しました。4月末までに、Grayscale(グレースケール)は225,638BTCを保有しており、Bitcoinの総循環供給量の約1.3%に該当します。


この記事はTHE BLOCKから送られてきたPDFを元に日本語訳しております。

Institutional demand for bitcoin appears to be increasing

THE BLOCK

Grayscale Bitcoin TrustGBTC)の運用資産(AUM)は、10ヶ月ぶりの最高値の14.2億ドルに達しました。4月末までに、Grayscale(グレースケール)は225,638BTCを保有しており、Bitcoinの総循環供給量の約1.3%に該当します。つまりGBTCBitcoin保有量は、4月に史上最高値を記録しました。これは機関投資家の需要が増加していることを示しています。

GBTCは、Bitcoinにのみ投資する14億ドルのクローズドエンド型ファンドであり、おそらく最も優れた指標と言えます。データは機関投資家の需要が増加していることを示しています。

GBTCに直接投資できるのは、適格認定投資家のみで、最低投資額は5万ドルとなっています。グレースケールによると、投資家の80%が直接的に投資可能となっており、2018年は機関投資家(66%)と一般投資家(14%)が投資をしました。

GBTCは投資家自身の名義で株式を所有する伝統的な投資手段を通じてBitcoinのエクスポージャーを得る機会となっています。Xapoはグレースケールに代わってBitcoinをコールドで保管しており、グレースケールは経費率2%を請求しています。

経費率請求による収益性は高く、The Blockの推計によると、グレースケールは過去三年間にGBTCから5200万ドルの手数料を徴収しました。2017年には1490万ドル、2018年には2730万ドルもの手数料を徴収しています。

Bitcoin1215日から135%上昇して9ヶ月ぶりの最高値を記録したことで、GBTCの価格も上昇しました。GBTCの価格は、2月初めから124%上昇し、628日に8ヶ月ぶりの高値をつけました。

GBTCの管理下にある資産、ここではファンドに保有されているすべてのビットコインの価値は、628日に10ヶ月で最高の142000万ドルに達しました。

4月末までに、グレイスケール社は225,638BTCを保有しており、これは流通している全供給量の約1.3%にあたります。

Bitcoin Trustの全ビットコイン保有比率は4月に過去最高に達しました。

Bitcoinの流入は4月に過去最高に達し、機関投資家の需要が高まっていることを示しています。実際、4月のBitcoinの流入(11,236BTC)は、それ以前の4ヶ月間とほぼ同じでした。

Bitcoinの流入額を米ドルに調整すると、4月にはグレイスケールの保有資産に5820万ドル近くが追加され、201712月の強気相場のピーク時には6080万ドル近くに達しました。

もう一つの興味深い指標は、GBTCの価格と純資産価値との関係です。

GBTCの株価は純資産価値よりも高く取引されるため、投資家はBitcoinを直接購入するよりもプレミアムを支払うことになります。これは、GBTCの価格が需要と供給によって決定され、大多数の投資家が 「物理的な」 Bitcoinではなく証券を所有することを好むためです。

GBTCプレミアムの増加は、GBTCに対する需要が増加していることを示しています。したがって、機関投資家の関心も高まっています。これまで、プレミアムは、20175月と20178月に100%を超えており、現在、プレミアムは40%近くに達しており、12月以降一貫して上昇しており、市場のセンチメントは変化しています。

同様の傾向は、GBTCの月間取引量を見ると、2018年初頭よりも5月の方がまだかなり低いものの、ここ数カ月は明らかに増加傾向にあることがわかります。

GBTCのデータを評価した結果、この数ヵ月で傾向が逆転したことが明らかになりました。同ファンドは現在、Bitcoin総流通量の約1.3%を保有しており、4月には過去最高の11,236BTCを記録しました。Bitcoinの流入額を米ドルに調整すると、4月には5820万ドル近くが追加されており、これは201712月の上昇相場のピーク時に追加された6080万ドルとほぼ同水準です。同様の傾向は出来高にも見られ、出来高も増加し始めています。

この記事はTHE BLOCKから送られてきたPDFを元に日本語訳しております。

メールアドレスで無料レポートを受け取る

Join Lab Now

ライトニングネットワーク内のビットコインが安全と言える仕組みを理解する

ライトニング・ネットワーク内にデポジットされた資金が盗まれるという、一部界隈の懸念を具体的な仕組みの説明によって払拭しました。こちらの記事を見ていただくことで 、なぜ資金が安全と言えるのかを理解していただくと同時に、その仕組みを理解して頂くことができます。


前回のライトニング・ネットワークのチャネル内の仕組みと基礎に引き続き、今回もライトニング・ネットワークに関して執筆致します。内容は、テレグラムの「Tokyo Dragons Den」グループ内での大石氏による発言とコミュニティー内の発言をまとめたものになります。

前回の記事を読まれていない方はこちら

[blogcard url=”https://coinpicks1.wordpress.com/lighteningnetwork-1/”%5D

 

ライトニング・ネットワークで資金を盗む方法

ライトニング・ネットワークに関して「チャネル内の資金が盗まれる」という話があります。

結論から言うとその心配はありません。

それはなぜか?

まずは「チャネル内の資金が盗まれる」という話の前提から説明します。

ライトニング・ネットワークは、チャネル内の残高に対してお互いが電子署名を確認することで、送金しているように見えるというのは前回の記事で図を用いて説明させて頂きました。

さて、ここで悪意のあるAがいたと仮定しましょう。

ここにライトニング・ネットワークによる決済に対応したスターバックスがあります。

Aはコーヒー代金をBTCで決済しました。ここで悪意のあるAさんは、BTCで決済する前のチェーンに遡り履歴をオンチェーン(ブロックチェーン内)にブロードキャストしてチャネルを閉じて確定しようとしています。Aさんは過去にすべての残高に電子署名しているので、どの残高であってもブロードキャストをして確定させることができてしまいます。

これが「チャネル内の資金が盗まれる」という話の前提になります。

あたりまえですが、これでは使い物にならず最新の残高だけが有効でないと困ってしまいます。そのような悪意のある行動に対して、チャネルのクローズ方法に工夫をすることで防止しています。

 

協力的なクローズと非協力クローズ

悪意のあるものによるダブルスペンド(2重払い)を防止するために、チャネルのクローズ方法に工夫があることをお伝えしました。

チャネルには2種類の閉じ方、協力的クローズ非協力クローズがあります。

協力的なクローズは、ブロードキャストされた残高に対してABが合意することでクローズします。このクローズ方法であれば、最新の残高履歴が確認されるので協力クローズでは不正はおきません。

問題は、ダブルスペンドを目的とした古い残高をブロードキャストした後に、非協力クローズによって一方的にチャネルを閉じるというものです。しかし、非協力クローズのTX(トランザクション)には、タイムロックがかかる仕組みになってます。タイムロックがかかったTxは、48時間や2週間などあらかじめ定められた期間が経過しないと有効にならない仕組みです。もしその時間が経過すると、不正TXがマイニングされ成功してしまいます。

しかし、その48時間とか2週間の猶予の間に不正TXがブロードキャストしていることを検知してカウンターTXを出すことで、カウンターTXが先にマイニングされチャネル内のBTCを総取りできるような仕組みになってます。つまり、善意で不正Txを検知したものには正のインセンティブを提供し、悪意あるものにはチャネルのBTCを全て失う負のインセンティブを提供しています。

これが冒頭でお伝えした、チャネル内の資金が盗まれる心配は無いという理由です。

しかし、この不正TXをどのように検知するのかという課題があるのも現実です。

 

不正トランザクション(Tx)を検知する方法

悪意あるものによる不正TXはどのように検知するのか?

基本的には、ブロードキャストされてくるTXを全てウォッチしている必要が有ります。これはフルノードであれば必ず全てのTxを検知しているので、フルノードでライトニング・ネットワークを走らせているひと(またはフルノードに接続してつかうウォレット)にとっては何ら問題になりません。

Point:これはフルノードを運用するインセンティブになります。先日、国内で暗号通貨ウォレットを提供しているGincoもフルノードの運用を代理で行うことを発表しました。これから大手などの参入もどんどん増えてきそうですね。

不正Txの対処にかかる労力が大変という声が聞こえてきそうですが、基本的に不正Txの対処はライトニング・ネットワークのソフトウェアが自動的に行うので、ユーザーへの負担は全くありません。

問題はモバイルウォレットです。

実際に筆者の経験ですが、ウォレットに関しては数日以上オフラインの場合が多いです。その間にチャネルがクローズされ、タイムロック期間内にカウンターTx発行できないという問題があります。

それを防ぐために、ウォッチタワーというのが出てきます。

これは普通のフルノードですが、これに自身のチャネル情報を登録しておくことで、不正TXを発見した場合に代理でカウンターTXを発行してくれます。これはLND(*1)などのソフトウェアに実装される見込みで、今年の春くらいには使用できるようになるはずです。

*1 LND:Lightning Labs(ライトニング・ラボ)が開発しています。詳細はこちら

 

質問と回答

以下のような質問と回答がコミュニティー内でありましたので共有します。

Q:チャネルの状態を最新のものから巻き戻していけないので、バックアップが絡むと問題が複雑になりますよね。古いバックアップに戻してはいけない=バックアップを持っていることはある種のリスクになってしまいます。実際に少し前までは、Lightningのバックアップはどうしたらいいですかと質問すると、「バックアップは取るな!」という回答も見かけました。バックアップファイル(ある時点のチャネル状態)を持っているだけでは、決してそれはバックアップとして機能せず、必ずそれが最新であることを保証しなければなりません。個人ならば、それは個人の記憶やメモで補えるかもしれません。しかし、チャンネルの状態は、自分だけでなく相手方も変える権限がある。というか誰でも変えられる(routing)はずで、厄介では。

大石氏

そうですねバックアップの問題はややこしいです。自分のバックアップが最新なのかどうかを確かめる必要が常にでてきますね。おっしゃるようにルーティングノードは厄介ですね。いまのところ効率的な回答はなく。ただ、プロトコルレベルで、最新のステートだけをもてばよく過去の履歴はもたないで大丈夫な方法も提案されています。

 

LINE@ – 友達追加 –

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Labってなに?

ビットコイン発行上限を迎える2140年以降のマイニングインセンティブについて考える

ビットコインのマイニングリワード(報酬)が頭打ちになる2140年、ビットコインはどのような未来を迎えるのでしょうか?この記事では約120年後の未来について3つの観点から予想しています。この記事を読んでいただくことで未来のビットコインネットワーク最大の問題を認識していただけます。


Q:新規発行がゼロになった後のビットコインシステム維持のシナリオがよくわかりません。手数料のみでマイニングインセンティブが十分とは思えません。手数料が高騰するのでしょうか?

2140年以降ビットコインマイナーは撤退しシステムは止まるのか?

質問ありがとうございます。

非常に重要な質問であるためお答えする前に下記にて前提知識を共有して多くの方が質問の意味が分かるようにしたいと思います。

前提知識

  • ビットコインは2140年で発行上限に到達
  • 692万9999番目のブロックが上限
  • 枚数換算すると2100万枚
  • 2019年現在10分に1度12.5BTCが発行
  • 4年毎に半減期が訪れる
  • 次の半減期は2020年
  • 変更にはハードフォークが必要

以上

質問者様の言うように、現在マイニングに対するマイナーのインセンティブはブロックリワード(報酬)と手数料です。2140年にビットコインのマイニングリワードが頭打ちした際には手数料のみがマイナーのインセンティブになります。

現在(2019.02.07)の取引手数料は、$60,654/ 1日となっています。JPY換算で¥6,611,286です。一方マイニングリワードはビットコイン価格を$4,000とした時に$576,000 / 1日となっています。JPY換算で¥62,784,000です。つまり現在のところ、取引手数料はマイナーのインセンティブの約11%しかないのです。(MESSARI調べ)

確かにこれではマイニングリワードが頭打ちになれば、マイニングインセンティブはないと考えることができます。しかも今後、どれだけビットコインの取引量が増えても1日に処理できるブロックの数は約144個と決まっています。1日に144個ということは1ブロックあたり約¥45,911の手数料インセンティブしかなく、当然マイナーの損益分岐点を下回ります。

最近公表されていたBITMAINの1ビットコインあたりの費用はJPY換算で約¥343,840でした。現状1ブロックあたり12.5BTCのリワードがあるので損益分岐点は1ブロックあたり¥4,298,000となります。

ということは2140年以降マイナーは撤退しシステムは止まってしまうのか?

実はこの問題に対する具体的な対策は提案されていません。しかも、大きな問題ではあるものの日本ではあまり話題になっていません。そもそもネットワークの参加者は自身の利益を追求しているだけなので1世紀以上も先の問題で建設的な意見が活発にならないのも仕方ないでしょう。大半の人が既に亡くなっているでしょうから…

それでは、筆者の予想と界隈の予想をいれながら約120年後の未来について考えたいと思います。

 

ビットコインシステム120年後の未来予想

手数料の高騰

質問にもあるように単純に手数料が高騰する可能性が考えられます。

現状の1トランザクションあたりの手数料は約0.5ドル前後です(約54円)。

ブロックリワードが無くなると手数料収入のみで損益分岐点を越える必要があります。すると必然的に手数料の下限値が決まります。上記であげたようにマイナーの1ブロックあたりの損益分岐点は¥4,298,000となります。現状の1トランザクションあたりの手数料は約1,754円になります。現状の32倍の手数料ですね。

POINT:ただし、1ブロックあたりのリワード枚数は0に近づいていくのでこの算出方法は好ましくありません。正式には電気料金と人件費、ハード代などの実数値から計算する必要があります。

あくまで現状からの参考に…

手数料が54円から1,754円と約32倍の高騰!

トランザクション手数料が高くて騒がれていた時で400円前後だったので、それの4倍以上となると大きな問題であることには変わりありません。これを考えるとこのアプローチは最適だとは思えません。ただしライトニング。ネットワークが普及するならば話は変わりますが、今回は割愛させて頂きます。

現状の損益分岐点に関してコメントをいただいたので目を通してみてください。

 

2xxx年ハードフォークが起こる

ハードフォークはネットワークが健全な証です。

歴史は繰り返されることを学べば大きな議論時にはハードフォーク論争は付きものです(現在ハードフォーク論争を経験した人は120年後にはほぼ亡くなられていますから)。このハードフォークによってビットコインの発行上限がないものが生まれるでしょう。

しかし、そうなれば個人的にはGRINでいいのでは?と思うので現実的なアプローチとは思えませんが、これによって利益を得る人もいるので確実にハードフォークは起きるでしょう。

しかし、それが失敗するのも歴史の教えです。

 

完璧に分散化された世界

2140年ビットコインのブロックリワードがなくなれば、マイナーのインセンティブは手数料収入のみになり、それが現実的ではないことを説明しました。そうなれば大手マイニングプールは撤退を余儀なくされマイニングのプレイヤー構造は大きく変わると考えています。

プレイヤー構造がどのように変わるのかといと、大手事業者から小規模事業者へ、小規模事業者から個人へとより分散化したネットワークに回帰するでしょう。回帰という言葉を使ったのは、ビットコインが世の中に登場した2009年頃のビットコインネットワークを想起したからです。

大手マイニング事業者が撤退するのであれば、手数料収入というインセンティブを求めて小規模事業者や個人がマイニングに参加するメリットがあります。個人のパソコンの余力を使って手数料収入が自動的に発生するのであれば一定数の参加者が見込めるでしょう。そのインセンティブがビットコインネットワークをより分散化させ、より堅牢なシステムを作り上げます。

筆者が想像するにこの未来は割と可能性が高いのではと考えています。

 

まとめ

ビットコインシステム120年後の未来予想ということで、3つの予想をさせて頂きました。

まだ先の話ではありますが、非常に重要な問題で議論に値する内容だと思います。筆者が想像するに「分散化された未来」と言うのが割と考えられる未来なのではないかと思います。

他にもこんな未来があるのでは?

などの意見お待ちしております。

メールアドレスで無料レポートを受け取る

Join Lab Now

ライトニングネットワークのチャネル内の仕組みと基礎

ライトニング・ネットワークのチャネル内の送金の仕組みや方法について解説しています。基本的なことをお伝えしておりますので、この記事を読んで頂くことで今後のライトニング・ネットワークに関する情報についてもより理解を深めやすくなると思います。また、コミュニティー内の質問も多く収録しておりますので一度目を通してみてください。


ライトニングネットワークのチャネル内の仕組みと基礎

今回は、テレグラムの「Tokyo Dragons Den」というグループ内で非常にわかりやすいやりとりがあったので共有致します。

Q:ライトニング・ネットワークについて1つ疑問があるのでご教授頂きたいのですが、A→C、A→B→Cといった形で送金をする場合には、その取引記録等は最終的に誰が保管する事になるのでしょうか?デポジットしているBTCの増加減の事ではなくAとCの取引をしたという記録の保管先についての質問です。

大石氏

A・B・Cがそれぞれ保持します。ABの部分はABが保持して、BCの部分はBCがそれぞれ保持します。

ライトニング・ネットワークではチャネルに関する部分が少し複雑になっています。上記の質問と回答の意味がそもそも分からないという方がほとんどではないでしょうか?

この記事を読んでいただくことで、最終的には上記の質問と回答の意味を理解して、ライトニング・ネットワークのチャネル内の送金に関する基礎を理解頂けます。

 

ライトニングネットワーク チャネル内の送金の仕組み

ライトニング・ネットワークのチャネル(*1)内での送金に関して下記より図を用いて説明致します。前提として黒い玉はキャパシティ(デポジットされたBTC)を表しており、Bobを「A」Aliceを「B」とします。また、後ほど登場するTomは「C」とさせて頂きます。

*1 チャネル:例えば、「A→B」という取引を行う場合には、まずはじめにチャネルを開く必要があり「A→B」の部分の「→」の部分がチャネルとなります。

上図はA→Bのチャネルを表しています。

A→Bというチャネルを通して、黒い玉を2個送金すると、チャネル内の残高が書き換わります。この状態でチャネルを閉じ(精算す)ると、この残高がそれぞれオンチェーン(ブロックチェーン上)で処理されます。

上図から分かるようにA←Bという送金を実現するためには、いったんAからBに黒い玉を送金しないとA←Bの送金はできません。では、A→B→Cはどうやるかというと、この玉突きの連携です。

これがA→B→Cの連携状態です。

この状態のとき、AからCに2つ黒い玉を送金するためにはどうしたら良いでしょうか?

答えは、AからBに送金、BからCに送金するという連携が必要になります。

ここで重要なのはBはAから受け取った黒い玉をCに送っているわけではないということです。あくまでチャネルはAとB、BとCの間だけで成り立っているので、Aのコインが直接Cに送金されるというわけではありません。

つまりライトニング・ネットワークは、チャネルのバランス(残高)を玉突きのようなイメージで行ったり来たりさせることで、あたかも送金されているような感じに見えるという仕組みなのです。

 

チャネルの精算と残高の記録

次にチャネルを閉じた際のブロックチェーンへの記録についてお話します。

チャネルを閉じるのに必要な情報はABBCがそれぞれの間で保持しています。ABが合意すればABの間の残高を閉じて精算できます。BCも同様に双方の合意によってチャネル間の残高を閉じて精算することができます。ちなみにAは、BCのチャネルを勝手に精算することはできません。

POINT:チャネルを精算するということは、AとBの精算時の残高をブロックチェーン上に記録することを意味します。ライトニング・ネットワークはチャネルを開くことからはじまり閉じることで終わります。手数料は唯一この時に発生します。

チャネルを閉じるとブロックチェーン上に最終残高だけが記録されます。それまでの間に、黒い玉がチャネル内を何回移動しようが、その履歴についてはABの当事者しかわからないようになっています。

このようにA→Bのようなチャネルが沢山作られ、A→B→Cというように繋がっていくと、それがネットワークとなり様々なところに送金可能になるのです。現在ライトニング・ネットワーク内のチャネルは23861個つくられています。また総デポジット量は652BTC(2019年2月7日現在)です

Lightning Network Search and Analysis Engine

Lightning Network Explorer

視覚的にライトニング・ネットワークのチャネルを確認することができて面白いですよ。

 

ライトニングネットワークの送金網とAMP

A→BCDという送金があったとします。

この時Bは、最終着金者がDであることは知りません。Bは、Aからの送金をCにバケツリレーするという命令だけうけて実行しているだけにすぎず、その先Dまで行くということは関知できません。同じように、Cは、Bからの送金をDに送るだけで、それがはじめはAからの送金だったということはわかりません。

つまり、ルーティングする人は前後だけしかわからないという仕組みになっています。しかし、ADは、お互いがどのようなルートでいくら送金したかというのは記録を保持しているので知ることができます。当事者だけが全体を知っているという形になっています。

「ライトニング・ネットワーク内の送金は全て検閲される」という噂がありますが、上記の仕組みを理解していればFUDであることがわかります。

さらにAMPというものがあります。
これは送金経路をいくつかに分けるというしくみです。

たとえばAからXに黒い玉を3個を送りたいとします。

  • A→B→Xというルートで1個送金
  • A→C→D→Xというルートで1個送金
  • A→P→Q→Xというルートで1個送金

3つのルートからの送金をひとまとまりにして送金することができます。

そうすると、それぞれ途中の経路の人は、全体の送金がいったいどうのように行われているのかを知るすべは殆どないでしょう。ということでライトニングは経由者(=ハブ)が検閲できるという話も正しいですが…

  1. 送金経路を知ることができる範囲は前後まで
  2. AMPで送金すると全体像は把握不可能

なので、全体としてはオンチェーンよりも匿名性が増し、チェーン解析のようなこともできないと考えられます。

 

質問と大石氏の回答

Q:ライトニングはこのリレー途中で外部からの阻害行為を仕組的に予防してることにもなるのでしょうか?

Community ALNHTLCという技術を使ってトラストレスな仕組みを構築しており、外部からの阻害および参加者同士の裏切り行為を防止しています。結構複雑なので自分もなかなか理解できなかったのですが、以下の記事がたぶん一番わかりやすいかも?https://zoom-blc.com/lightning-network

HTLCというのは、Hashed Timelock Contractの略でBTCをロックされたアドレスに送金して、一定の条件を満たすことで資金の取り出しが可能となります。この仕組みを用いることで赤の他人ともトラストレスな取引が実現します。

Q:オフチェーンの仕組がなぜこんなに早い送金を実現してるのでしょうか?

Community A:ご存知と思いますが、オンチェーントランザクションは新規BTCの供給スケジュールを固定にするためにどうしてもブロックタイム10分の制限があります。オフチェーンの場合はそこに依存しないので、参加者同士での接続のみで次々にチャネルを更新できるので早いです。

オフチェーンはブロックチェーン外の処理ということです。

Q:リレー途中で阻害されても、一時的にロックして到達先から承認されないと(自分のチャンネル内の?!)全て取引が破棄されるので、セキュリティーが担保される感じでしょうか

Community A:自分の理解だと、ロックしているものを無理やり解除するしようとすると損するため実質できない、ということだと思います。

Q:最終的にブロックに記録されるのはライトニングで決済されたかなり後になってからトランザクションとして記録されるイメージでよいのでしょうか?

Community A:ブロックに記録されるのは、ペイメントチャネルを閉じたときですね。たしか現状は時間の制限はないので、ずっと開きっぱなしでもいけるはずです。

大石氏

リレー途中で悪さや障害があると、送金全体が失敗する仕組みになっています。なので資金が途中でスタックしてしまうというようなことはないようになっています。技術的にはHTLCという仕組みを使っています。

最終的にオンチェーンでコインを使いたければチャンネルを閉じてコインをオンチェーンに戻す必要があります。ただしその必要がなければチャンネルはずっと開けっぱなしでもOK ですし、オフチェーンの世界でなんで何度でも使って送金したり受取することができますので、 そのまま財布として使い続ければ問題なしです。送金の都度チャネルを閉じる必要はありません

Q:Bluewalletに関してはペメントチャンネルを意識せずに使えてるように感じますが、他のウォレットだとチャンネルを閉じるか開けとくか任意に設定出来る感じでしょうか?もし他に代表的なお勧めのウォレットなどあれば教えていただけると幸いです

大石氏

Lightning Wallet というのが、チャネルの設定ふくめていろいろできるようになってます。私もこれをつかってます。(android のみ)

Q:ただの質問になってしまい恐縮ですが、追加でBTCをライトニング・ネットワークに入金する場合は、チャネルを閉じる必要はない。ライトニング・ネットワーク外のウォレットにBTCを出金する場合、チャネルを閉じる必要がある。という理解で大丈夫でしょうか?

大石氏

今のところチャネルにお金がなくなった時に外からBTCを入金するというのができないのですが、サブマリンスワップという方法を使うとこれができるようになります。ただし通常のオンチェーン手数料がかかります。あとスプライシングと言ってチャネルの容量を後から増減できるような技術も今後できるようになるようです。

以上

ここまで読んで頂けたのであれば最初の質問にも答えられるようになっているはずです。試しにもう一度見直してみてください。また、それ以上に全体像の理解ができたのではないでしょうか?

今後もライトニング・ネットワークに関する記事を増やしていきたいと思います。

 

あわせて読んでほしい記事

[blogcard url=”https://atomic-temporary-106217043.wpcomstaging.com/bitcoin-qa2/”%5D

 

LINE@ – 友達追加 –

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Labってなに?

ライトニングネットワークが世界に与えるインパクト

ライトニング・ネットワークは、オフチェーン処理によってネットワーク内にデポジットされている分だけを高速で送金することができ、グローバルな決済システムとしての可能性を持ちます。しかし、今回の記事ではそれ以上に伝えたいことがあります。



ライトニングネットワークが世界に与えるインパクト

CoinPicksの質問箱にて下記のような質問をいただきました。

Q最近BTCのライトニング・ネットワークの発展の記事がありましたが、最終的にBTCのライトニングネットワークが拡大構築されることでどこまでの規模の決済送金ができるようになる可能性があるのでしょうか?

質問ありがとうございます。

早速上記質問内容について回答をしていきたいと思います。

 

ライトニング・ネットワークがもたらす決済システム

ライトニング・ネットワークに興味を持って頂けたということで、関連する記事を執筆した甲斐がありました。

ありがとうございます。

「ライトニング決済が拡大していくと、どこまでの規模の決済送金ができるようになるのか」という部分ですが、ネットワーク内にデポジットされている分だけ送金として使用することができ、グローバルな決済システムとしての可能性を持ちます。

1回の最大送金金額についてですが、金額が上がるにつれてキャパシティ不足に陥り成功確率が下がるようです。実際の数値について詳しい方がみえましたらコメントお待ちしています。

HELP:ライトニング・ネットワークを用いたオフチェーン処理にキャパシティ問題があるとおもうのですが、送金枚数と成功確率の相関関係についてご教授下さいませ。

テレグラムの「Tokyo Dragons Den」にて回答をいただきました。

ビッグストーン

送金金額が多くなると成功確率は下がります。いまの多くのチャネルが100万〜200万サトシ前後だとおもいます。なので、50ドルを超えると成功確率がぐっと下がるとおもいます。

去年の夏頃は5万サトシとか7万サトシの送金が通る確率が半分ぐらいだった感じです。今だとそれはほぼ確実に通る感じですね。

200万サトシの送金をacinq経由でブルーウォレット宛に行ってみましたが実験結果は通りました。

通常の買い物の範囲と言うとだいたい100ドルぐらいだと思うのでつまり二百万サトシがいつでも通るようになると本当に 日常決済はライトニングでできるようになると思います

非常に学びになりますね。

ありがとうございます。
今回の質問と合わせて筆者はお伝えしたいことがあります。

ライトニング・ネットワークは世界に何をもたらすのか?

 

ライトニングネットワークは必要なのか?

ライトニング・ネットワークは、ビットコインのスケーラビリティ問題をオフチェーン(ブロックチェーン外)処理によって解決ではなく迂回しています。ビットコインによる決済をオフチェーン処理することで、1ブロック10分という制約を受けません。これによって同一ネットワーク内に存在するユーザーと高速なマイクロペイメント(少額決済)を実現することができます。

マイクロペイメントというと、1円以下の少額決済の実現とよく聞きます。

ところで1円以下の決済(経済圏)って必要なの?

これは非常に面白い視点です。

前回、下記記事でも紹介したようにライトニング・ネットワークを用いた決済サービスは複数存在します。

[blogcard url=”https://atomic-temporary-106217043.wpcomstaging.com/lightning-network-contents/”%5D

記事の続きを読むのにマイクロペイメント

予測市場(ギャンブリング)にマイクロペイメント

少額の寄付にマイクロペイメント

・・・・

上記サービスでも確かに少額決済するメリットがあります。

しかし革新性に欠けます。

しかし、これらのサービスから気付きを得ることができます。

それは何か?

Visualization of value(価値の見える化)です。

何気ない感謝の気持ちや些細な行動を可視化して、トークンインセティブによって形にすることができるのです。これは全く新しい経済圏であるがゆえに必要か否かという議論は不毛でしょう。それよりも新たな経済圏を創出するライトニング・ネットワークの可能性は計り知れないと感じます。

2019年2月1日 追記

記事投稿後に2件質問を頂きましたので共有させて頂きます。

Qライトニングネットワークはこのまま広がると10万円から100万円の決済それ以上もできるようになることを目指しているのでしょうか?

あくまで目的はスケーラビリティの改善です。

日常的な買い物で決済の確定までに約10分掛かるのは現実的な数字ではないですよね。それを数秒で完了させることを目的に開発されているのがライトニング・ネットワークです。

GMOリサーチ株式会社調べで日常的な決済で使用される金額は平均2,000円から3,000円とのことです。実質10,000円以下の決済がほとんどでしょうから、この金額がスムーズに決済可能となれば実用化も現実みを帯びてきます。

2019年2月の段階で既に100万Satoshi(約4,000円)から200万Satoshi(約8,000円)の決済が可能になっているようです。ネットワークの安定性はさておき、ライトニング・ネットワークが日常的な決済として使用される基準値に近づいています。

ビットコインの価格市場は低迷していますが、テクノロジーは発展を続けています。

ちなみに10万円から100万円の決済がライトニング・ネットワーク上で、できるようになるかはネットワークデポジットされたビットコインの全体数に依存します。

[blogcard url=”https://www.coinpicks-lab.com/t/topic/145″%5D

Qライトニングネットワークは5,000円くらいまでの決済のみまでで、それ以上の決済は他の仕組みを実装または他の通貨(BCHなど)に任せる形になるのでしょうか。

なぜライトニング・ネットワークの送金が100Satoshi(約5,000円)から200Satoshi(10,000円)の送金に留まっているのかというと、ネットワーク内にデポジットされているビットコインの全体数がまだまだ少ないからです。

去年の夏頃はもっと少なかったので、ライトニング・ネットワークで送金できる金額はもっと低かったのですよ。なぜ、デポジットされているビットコインの全体数が少ないと送金額に制限がかかるのかは、また記事にしたいと思います。

あわせて読んでほしい記事

[blogcard url=”https://www.coinpicks-lab.com/t/topic/144″%5D

[blogcard url=”https://atomic-temporary-106217043.wpcomstaging.com/lighteningnetwork-1/?preview_id=2684&preview_nonce=71c2a74af2&_thumbnail_id=2706&preview=true”%5D

 

LINE@ – 友達追加 –

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Labってなに?

ライトニングネットワークを使ったマイクロペイメントができるようになる記事

ライトニングネットワークを活用したアプリケーションの紹介と実際に筆者が体験した際の体験談をまとめます。ライトニングネットワークの体験は非常にエキサイティングです。ライトニングウォレットに残高がある方は、この記事をきっかけにマイクロペイメントの初体験となれば幸いです。


ライトニングネットワークのコンテンツ紹介と実体験

前回のライトニングウォレットへの最大1,000Satoshiのバラマキキャンペーンでビットコインを受け取ったものの、使用方法で困っている方が多いのが実態ではないでしょうか?

まだ受け取りをしていない人は下記より受け取りが可能です。

[blogcard url=”https://atomic-temporary-106217043.wpcomstaging.com/lightning-network/”%5D

 

今回のバラマキキャンペーンは、よくあるエアドロップとは性質が異なり、資産を増やしたりおこずかいとして使用するために配布されたものではありません。(もちろん使用方法はユーザーの自由ですが…)今回のキャンペーンはライトニングネットワークについて知るきっかけ、体験するきっかけを生む非常に価値あるものだと筆者は感じています。

1,000Satoshiを受け取ったまま財布に放置しておくのは本末転倒、機会損失と強めの言葉を用いてお伝えさせて頂きます。

 

 

筆者のウォレット(BlueWallet)にも1,000Satoshiが入っております。

この記事を読んで頂けた方が、最後にライトニングネットワークの体験をするきっかけとなれば執筆の目的が果たせたことになります。

 

マイクロペイメントが利用できるコンテンツは以外と多い

ライトニングネットワークを活用したアプリケーションは「LApps」とも言われています。

■ Y’alls

記事に対するマイクロペイメント。記事に対して決済をすることで続きが読めるようになります。

■ Lightning Network Implement Store

Lightning Neoworkを使った支払いでECサイトで注文が可能です。

■ Microbet

サッカー・バスケットボール・フットボールの勝敗に賭けて勝てば増えるマイクロペイメントです。

上記はほんの一部です。
こちらのサイトをご覧ください。

https://lightningnetworkstores.com/

マイクロペイメントを利用できるアプリケーションは、意外と多いことに気付きます。単純に驚きました。

さて次は筆者自身がライトニングネットワークを用いたマイクロペイメントを体験してみます。

 

実際にマイクロペイメントを体験してみる

Y’allsでマイクロペイメントをしてみたいと思います。

ここから先の記事を閲覧するには$0.005USD必要になります。支払いをするために決済ボタンをクリックします。

支払い先のQRコードがでてきました。

支払いをするためにウォレット(BlueWallet)を開きます。

現段階で1,000Satoshi確認できます。

QRコードをウォレットから読み込むと、送金に必要な金額が表示されます。問題がなければ「Pay」を押して送金してください。

上述した残高850Satoshiというのは、マイクロペイメントに150Satoshiを用いた決済枚数です。

約2秒後には決済が完了しており、記事の続きが見られるようになっています。感覚的には本当に一瞬です。

 

自身の残高を使用することにどうしても抵抗がある方へ

これは私のウォレットのインボイスになります。ここに50Satoshi送って頂ければ、そのままあなたに返金します。

この方法であればあなたはライトニングネットワークの送金体験をすることができ、あなた自身の残高が減ることはありません。

送金いただけた方は、Twitter又はCoinPicksのLINEに連絡を下さい。すぐに対応させて頂きます。

Twitter

https://twitter.com/imai_ryouji

LINE

https://line.me/R/ti/p/%40abg3669g

 

まとめ

最後までご覧いただきありがとうございます。

ライトニングネットワークを使用したマイクロペイメントのやり方はご理解頂けましたでしょうか?

また、この記事が体験するための動機となりましたでしょうか?

ライトニングネットワークは、ビットコインによる価値の移転をオフチェーン、つまりブロックチェーン外で行うことでスケーラビリティという問題を解決するアプローチとして注目されています。

今回筆者自身がマイクロペイメントを経験してみて、そのスピードや革新性に驚きを隠せないのが正直な感想です。

これはビットコインからはじまった仮想通貨の歴史の変化の1つと感じており、次なるイノベーションはここにあると感じた次第です。

より多くの方が、この感動を実感できることを願っております。

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

ライトニングネットワークの仕組みを体験する

ビットコインエバンジェリストの大石氏が最大1,000Satoshiを無制限で希望者にに送付するキャンペーンを開始しました。このキャンペーンを通してライトニングネットワークの仕組みを体験してみましょう。その送金スピードやライトニングの未来に注目するきっかけになります。


ライトニングネットワークと未来

https://twitter.com/bigstonebtc/status/1088061768650305536

ビットコインエバンジェリストのビッグストーンこと大石氏が最大1,000Satoshiを無制限で希望者にに送付するキャンペーンを開始しました。現在のところキャンペーンの終了日程は公表されておりません。

 

キャンペーンの意図

https://twitter.com/bigstonebtc/status/1088072768237629442

ライトニングネットワークについて知ってもらうためには、ユーザー体験が最適解であり、新体験はユーザーの動機を駆り立て市場形成を助長します。実費による今回の活動は流石ビットコインエバンジェリストといったところです。

私自身、ライトニングネットワークによる送受信を体験するのは初めてではあったものの、「送金が速い」というのは認知しておりました。しかし、実際に1,000Satoshiを受信してみるとその速さには驚きました。大石氏が送金してから約2秒から3秒程で着金します。

なぜこれ程速い送金が可能なのでしょうか?

それは、ライトニングネットワークによる取引がオフチェーン処理によってブロックチェーンに記録されないからです。明確には、取引をしたい相手とチャネルを開きオフチェーン取引を実行します。このチャネルが開いている間の取引は、一切ブロックチェーンに記録されず手数料も発生しません(手数料が発生するのはチャネルを開いた時です)。チャネルを閉じると過去の取引はブロードキャストされず、その最新状態のみがブロックチェーンに記録されます。

簡単に言うと、オフチェーン(ブロックチェーン外)での処理になるためマイニングが不要になるからです。

それではあなたも体験してみましょう。

① blue walletをインストール

https://bluewallet.io/

② Tokyo Dragons Denグループに参加

https://t.me/joinchat/BK5vb1JixidsAJs1njqkCg

③ インボイスのQRコードを1,000Satoshi以下で作成してグループ内にQRコードを貼り付け

④ 約2秒から3秒待つ(大石氏が送金完了してからの時間です。)

⑤ 着金

 

blue walletってなに?

オープンソースで開発されており、Segwitアドレスに対応したウォレットです。

ウォレット内の機能についてはこちらをご覧ください。

blue walletはとにかくシンプルで、上述したライトニングネットワークを使用する際の、チャネルを開く動作すらも省くことでユーザー体験を優先しています。むしろライトニングネットワークを使用している感覚がないくらいで最終的には、ユーザーにとって理想形と言えるのではないでしょうか。

 

マイクロペイメントとYalls

今後ライトニングウォレットを使用することで1円以下のマイクロペイメントを誰にでも送ることが可能となり、挨拶やチップの代わりに送ることもでき、今までにはなかったマーケットが開かれるでしょう。

yallsはライトニングネットワークのマイクロペイメントを活用した新たなビジネスモデルでしょう。

アクセスするとトップ画面に記事が並んでいます。

記事一覧の中から1つ選択しました。

続きを読むには$0.005(約0.55円)を支払う必要があります。

このマイクロペイメントを活用したビジネスモデルが今後量産されて来るのかなと思うとワクワクしてきますね。

 

さて、最後に実際にライトニングウォレットでマイクロペイメントを試してみたいという方はこちらをご覧ください。

ライトニングネットワークを使ったマイクロペイメントができるようになる記事

ライトニングネットワークを活用したアプリケーションの紹介と実際に筆者が体験した際の体験談をまとめます。ライトニングネットワークの体験は非常にエキサイティングです。ライトニングウォレットに残高がある方は、この記事をきっかけにマイクロペイメントの初体験となれば幸いです。

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

マイニングの規模縮小と撤退によって送金遅延と事業者の集権化は起きるのか

マイニング事業者の規模縮小と撤退によって送金遅延とマイニング事業者の集権化という懸念がありました。しかし、ハッシュレートやハッシュレート分布やMempoolを分析することでビットコインの送金遅延やマイニング事業者の集権化に関して問題がないことがわかりました。懸念に対する結論の証明については記事をご覧下さい。


ビットコインの送金遅延とマイニング事業の集権化を紐解く

Q最近、大手のマイニング事業者の撤退報道がとても増えていますが、ビットコインは継続できるのでしょうか?

CoinPicksの質問箱にて上記のような質問をいただきました。

そして下記のように回答させて頂きました。

Aお世話になっております。結論から申し上げますと問題ありません。マイニング事業者が撤退するということは、PoWの性質上ブロックが承認されにくくなる可能性。つまり、送金が思うようにできなくなるのではないかと考える方も多いのではないでしょうか。しかし、ハッシュレートとその分布、そしてMempool(待機ブロック)を見て頂くと、送金遅延に関しては「問題がない」ということを理解頂けます。ビットコインのハッシュレートはこちらをご覧下さい。ハッシュレートの分布はこちらをご覧下さい。Mempoolはこちらをご覧下さい

ということで詳細を記事に致します。

 

ビットコイン価格とマイニングの損益分岐点

現状仮想通貨市場は低迷期でビットコイン価格は2018年のピーク時から約73%近く下落しています。

ビットコインの価格が下がればビットコインのマイニングをしている事業者の損益分岐点も変化します。これはビットコインのブロックリワード(ブロック報酬)からイニシャルコスト(初期費用)とランニングコスト(電気代・人件費)を差し引くことで算出することができます。

実際のマイニンングの損益分岐点はどれくらいなのでしょうか?

BITMAIN社のAntminerS15という最新のマイニング機器を使えば、今日現在の採掘難易度で約3070ドルになるそうだ。日本円に換算すると343,840円。だが、従来からの主流機器はBITMAINAntminerS9であり、この機器を利用している層の損益分岐点は約5080ドル。日本円換算では約568,960円。@マナさんの記事引用

BITMAINといえばBTC.comとAntPoolというマイニングプールを運営しており、下記ハッシュ分布を見て頂くと全体の27.1%を占めています。そのBITMAINの損益分岐点を上記の通りと考えれば、ビットコインの価格下落の影響によってマイニング事業の縮小ということに納得がいきます。これだけの大手マイニング事業者が規模を縮小するということは個人によるセルフマイナーやその他のマイニングプールも規模を縮小せざるを得ないでしょう。

2019年1月 ハッシュ分布

ということは、

多くのマイニンング事業者が事業規模の縮小や撤退をすることで、ビットコインブロックの承認遅延やマイニング事業者の集権化問題が発生するのではないか?

というのが今回の質問になります。
結論から言います。

大手マイニング事業者が事業規模を縮小や撤退をしても現段階では送金遅延や集権化に関する問題はありません。

その根拠はなにか?

  • ハッシュレートから読み解く
  • ハッシュレート分布から読み解く
  • Mempoolから読み解く

以上3要素から説明していきたいと思います。

 

ハッシュレートから読み解く

ハッシュレートを確認することでどれだけの計算リソースが集まっているかを確認することができます。

ハッシュレートが高いということは、ASICやGPUというマイニング機器の計算能力が多く集まっていることを意味します。ハッシュレートが低いということはその逆を意味しています。

多くのマイニング事業者の規模縮小と撤退が相次いでいる今、ハッシュレートの状況はどうでしょうか。

2018年11月から12月にかけて下落していますが、ハッシュレートは再度増加傾向にあり問題はなさそうです。

下記画像はビットコインのブロックがどれくらいの時間で承認されているかを表しています(平均:約10分)。

2018年11月21日と29日を見てみると1ブロック承認するのに約16分程かかっています。この日付は上記2018年11月から12月のハッシュレートが急落している時期と重なります。

このように一時的なブロック承認遅延は生じたものの、その後は平均10分間隔のブロック承認時間を保っており、マイニング事業者が撤退したことで生じる送金遅延はないと捉えることができます。

そしてこれからもマイニング事業者の撤退が原因で継続的な送金遅延が発生する可能性は低いと考えています。

なぜかというと、合理的なマイニング事業者にとってブロックリワードやマイニング手数料というインセンティブがあるからです。

他のマイニング事業者が撤退することでハッシュレートが下がります。すると今度はDifficulty(マイニングの難易度)が下がります。Difficultyは約10分間隔でブロックが承認されるように動くマイニング調節プログラムです。これによってマイニング事業者がどれだけ撤退していこうと資金力のある一定数のマイニング事業者は多少の赤字でもマイニング事業を継続するインセンティブがあります。

しかし、一定数のマイニング事業者が残ることで懸念されるのがマイニング事業者の集権化です。実際に多くのマイニング事業者の規模縮小と撤退が相次いでいる今、どれだけのマイニング事業者がどれだけのリソースを投入しているのでしょうか。

 

ハッシュレート分布から読み解く

ハッシュレートはマイニング事業者による計算リソースの量を表しており、事業者の規模縮小と撤退が相次いでいる今でも、ハッシュレートは問題のない値を推移しておりブロック承認時間に遅延がないことがわかりました。しかし、ビットコイン価格が損益分岐点を下回ることで、マイニングを事業として継続することができる事業者に偏りが生まれ集権化に繋がるのでないかという懸念がありました。

まずは4枚の画像をご覧ください。

↓2017年9月 ハッシュ分布

↓2018年5月 ハッシュ分布

↓2018年9月 ハッシュ分布

↓2019年1月 ハッシュ分布

データの時間軸が2017年9月、2018年5月、2018年9月、2019年1月というのに意味はなく、私の持っているデータでの検証となることをご了承ください。

上図4枚の分布は、全体を100%とした時にどこのマイニング事業者がどれだけの計算リソースを投入しているかを表しています。この4枚の分布から読み取っていただきたいのは、事業者の規模縮小と撤退が相次いでも事業者に偏りが生まれ集権化しているということです。

【訂正】 2019年1月17日:分布の中に存在しているUnknownは、その他を意味しており複数の団体の集まりです。つまり事業者の規模縮小と撤退が相次いでも事業者に偏りは生まれず集権化されていないということです。

ハッシュレートが右肩上がりであった2017年9月と、事業者撤退が相次いだ2019年1月のみを比較してみましょう。

2017年9月

上位4社の合計ハッシュレートだけですでに51.6%と集権化していたことが分かります。

2019年1月

その他を意味するUnknownが全体の20.7%を占めており、大きく分散化していることが分かります。注意点としてUnknownの内訳がわからないので、実際にどれだけ分散化しているかは分かりません。

 

Mempoolから読み解く

最後にMempoolを見てみましょう。

Mempoolとは、承認されるのを待っているトランザクションの数を表しています。

直感的に待機しているトランザクションが少ないことがわかります。

ビットコインは取引が行われると最初にMempoolに送られる仕組みです。その後マイニング事業者によってブロックに含まれて行きます。上図をもとにブロック承認遅延がないことを証明したいのですが、このグラフの生成タイミングは任意の時間帯での待機ブロック数を元に形成しているため、あくまで待機トランザクションが多いか少ないかを全体から俯瞰するしかありません。

では、別の視点から待機トランザクションによる送金遅延がほとんどないことを証明します。

Difficultyは10分間隔でブロック生成されるように調節されるため、証明は約10分間隔でブロックが生成されていると仮定します。

  • トランザクション数 / 1ブロックあたり:1,500〜2,500個(平均2000個とします)。
  • ブロック数 / 1日(10分に1度生成):144個

1ブロックあたりのトランザクション数(2,000個)と1日に生成されるブロック数(144個)を乗算すると、1日に処理できるトランザクションの数は288,000個となります。

下図は1日あたりのトランザクション数を表しており、2019年1月17日のトランザクション数は296,695個、その他の日でもだいたい300,000個以下ということが分かります。

つまり、約10分間隔でブロックが生成されており送金遅延がないことの証明になります。

 

まとめ

様々な図を用いて説明させていただいたのですがいかがでしたでしょうか?

マイニング事業者の規模縮小と撤退によって送金遅延とマイニング事業者の集権化という懸念がありました。まずハッシュレートやMempoolを分析することでビットコインの送金遅延がないことがわかりました。そしてハッシュレート分布を過去と比較することでマイニング事業者の集権化も起きていないことが分かりました。

これらからビットコインの送金遅延や事業者の集権化に関しては問題ないという結論となります。

今回のようにCoinPicksの質問箱にてご質問をいただけると、このように記事で詳細を説明しながら回答したいと思いますので、質問どしどしお待ちしています。

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

ビットコインにおけるウォレット構造

ウォレットは秘密鍵の容器であり、ビットコイン自体がウォレット内に入っているわけではありません。つまり、ユーザーはビットコインではなく秘密鍵が入ったウォレットを持っているというのが正しい認識です。

UTXOとしてバラバラに存在しているトランザクションに秘密鍵を使用して署名をすることで、自身の所有物としての証明をします。この証明をしているのがUTXO内に含まれるトランザクションスクリプトであることは下記記事で説明しました。

ビットコインにおけるトランザクションの仕組み

今回の記事ではウォレットの構造について説明したいと思います。

 

非決定性ウォレット

初期のウォレットというのは、ランダムに生成された秘密鍵の単なる集まりでした。これをType-0非決定性ウォレットと呼んでいます。

このタイプのウォレットは、初回起動と同時に100個のランダムな秘密鍵とそれに付随する公開鍵が同数生成されます。ユーザーは生成された秘密鍵の厳重な管理とすべての秘密鍵をバックアップする必要があります。

なぜならば、ウォレットにアクセスする際に秘密鍵をバックアップしていないと、鍵に紐ずく資金にアクセスできなくなってしまうからです。よってType-0非決定性ウォレットはビットコインコア(*1)開発者たちからは推奨されておりません。

*1 ビットコインコア:Satoshi Nakamotoの論文を元に集開発開発者。

構造はシンプルですが、大量に生成された分の秘密鍵の管理はハードルが高く実用的ではないと言えるでしょう。

 

決定性ウォレット

Seeded(シード)ウォレットとも呼ばれており、一方向性ハッシュ関数を用いて導出された秘密鍵の入ったウォレットを指します。

またシードウォレットでは、インデックス番号とChaincodeと呼ばれる他のデータと組み合わせることで複数の秘密鍵を生成することができます。

このシード(*2)さえバックアップしておけば、生成された全ての秘密鍵を復元することが可能であり、非決定性ウォレットとは対照的にウォレットの管理と鍵の移行を容易にしています。

*2 シード:初期設定時にユーザーに対して12から24個の英単語の列を表示します。この英単語の列がウォレットのバックアップになります。余談にはなりますが、ハッシュ関数SHA256を用いると24文字の列となり、SHA128を用いると12文字の列となります。

ハッシュ関数に関する記事はこちらをご覧下さい。

ビットコイン におけるハッシュ関数について

 

階層決定性ウォレット

HDウォレットとも呼ばれており、上述した決定性ウォレット(シードウォレット)をBIP32(*3)で定義した最も推奨されるウォレットとなります。

*3 BIP:BIPとは (Bitcoin Improvement Proposal) の略称で「ビットコイン改善案」という意味を持ち、ビットコインの性能や機能について定義しています。

HDウォレットでは、鍵がツリー構造をなしていて親鍵が子鍵群を生成して、それぞれの子鍵が孫鍵群を生成するといった形で、生成が無限に続いていきます。

具体的なHDウォレットの生成方法としては、シードを起点としてマスター秘密鍵とマスターChaincodeが生成され、マスター秘密鍵からマスター公開鍵が生成されます。一方でマスターChaincodeは、親鍵から小鍵、小鍵から孫鍵と階層上に秘密鍵を生成するために使用されます。

もう少し細かく説明すると、親鍵から小鍵を生成するためには親秘密鍵または親公開鍵とChaincodeとインデックス番号が必要で、Chaincodeによって小秘密鍵にランダム性が生まれインデックスによって小鍵の階層が決まります。つまりインデックス番号を変えることで、小鍵0、小鍵1、小鍵2と作り出していくことができます。

このように最初はランダムに生成されたマスター秘密鍵とChaincodeですが、小鍵や孫鍵の生成がされていくことで親の情報が引き継がれていきます。

HDウォレットには2つのメリットとデメリットが考えられます。

メリット

  • ツリー構造の利点を生かしてそれぞれの階層に役割を与えることができる。例えばおつり用、支払い用、受け取り用などと用途を分類化することができます。
  • シードさえあれば全ての鍵の復元が可能なため管理が楽になります。

デメリット

  • シードを紛失した場合、関連したビットコインは全て凍結してしまいます。
  • シードを誰かに知られた場合、関連したビットコインは全て盗まれてしまいます。

 

HDウォレットの識別子

HDウォレットにある鍵は「Pach」命名規則を使用して一意に指定されています。この命名規則はスラッシュ(/)を使って区切ります。

実際の規則例を見たほうが理解が早まりますので、まずは下記をご覧下さい。

m / 0:マスター秘密鍵から生成された最初の子秘密鍵

m / 0 / 0:最初の子供(m/0)の最初の孫秘密鍵

m / 0’ / 0:最初の強化された(*4)子供(m / 0’)の最初の通常の孫秘密鍵

m / 1 / 0:2番目の子供(m / 1)の最初の孫秘密鍵

M / 23 / 17 / 0 / 0:24番目の子供の18番目の孫の、最初の曽孫の最初の玄孫の公開鍵

*4 強化された鍵:強化導出関数と呼ばれており、詳細は割愛しますが、簡単に説明すると生成された鍵のセキュリティーが向上している状態を言います。

マスター秘密鍵から得られた秘密鍵は「m」から始まります。マスター公開鍵から得られた秘密鍵は「M」から始まります。また注意点として数字は0から数えはじめるため、m / 1 はマスター秘密鍵から生成された2番目の子秘密鍵ということになります。

右から左に進むほどに先祖の鍵であることを意味しており、1番左はマスター鍵になります。1つの親鍵はま40億個の子鍵を持つことができます。つまり、ツリー状にどんどん鍵を生成することが可能ですがその分複雑になります。

その改善案としてBIP44が提案されました。

BIP44ではウォレットの目的が明確化されており、下記のような5つの階層構造になっています。

m / purpose’ / coin_type’ / account’ / change / address_index

構造例を下記に示します。

M / 44’ / 0’ / 0’ / 0 / 2:最初のビットコイン口座に対する3番目の受信用公開鍵

M / 44’ / 0’ / 3’ / 1 / 14:4番目のビットコイン口座に対する15番目のおつり用公開鍵

m / 44’ / 2’ / 0’ / 0 / 1:トランザクションに署名するための、ライトコインメイン口座の2番目の秘密鍵

先程と同様にマスター秘密鍵から得られた秘密鍵は「m」から始まります。マスター公開鍵から得られた秘密鍵は「M」から始まります。

最初の構造である「purpose」は常に44となります。

第2階層「coin_type」では、トークンの種類を表しており、ビットコインはm/44’/0’、ビットコインテストネットはm/44’/1’、ライトコインはm/44’/2’によって表されます。

第3階層「account」では、同じ階層内でユーザーが何番目の口座を使用しているのかを示しています。

第4階層「change」では、受け取り用アドレスまたはおつり用アドレスを区別しています。m/44’/0’/0/0が受け取り用アドレス、m/44’/0’/0/1が受け取り用アドレスを示しています。

第5階層「address_index」では、第3階層で指定した口座内の何番目のアドレスなのかを示しています。

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

ブロック内のデータとナンス

ブロックチェーンに含まれるデータとブロック承認までの流れについて簡単にまとめたいと思います。

ブロックチェーンという言葉だけが先行して有名になり、その中身やどのようにしてブロックが生成されているかまでは知らない方が多いのではないでしょうか。

 

ブロックチェーンに含まれるデータ

まずはじめにマイナーが承認するブロックにはどのような情報が含まれているのでしょうか。

下図をご覧ください。

ブロックの中身は大きくヘッダーとボディーにわけることができます。ヘッダー部分には「前ブロックデータのハッシュ値」と「ナンス」が含まれ、ボディー部分には「取引情報」が含まれています。

ヘッダー部分に含まれる「前ブロックデータのハッシュ値」がチェーンの役割をしており、このハッシュ値が次のブロックのハッシュ値を求めるために使用されます。その際のハッシュ値が1文字でも異なれば全く違うハッシュ値が生成されるため、改竄は困難であり改竄する場合は過去のハッシュ値から全て書き換える必要があります。

ビットコイン におけるハッシュ関数について

 

ナンスとは

ヘッダー部分に含まれる「ナンス」とは、number used onceの略でブロックのデータをハッシュ関数に通したときに、先頭に0がたくさん並ぶような非常に小さい32ビットのハッシュ値が生成されるように調整するための値のことを言います。

このナンスを見つけるために、マイナーがハードウェアと電力を用いて計算をする作業をマイニングと言います。ビットコインは10分に1度ブロックが生成されますが、この時間はナンスによって調整され、この調整を難易度調整(Difficulty)と言います。Difficultyは2016ブロック(20160分)毎におこなわれマイナーが増えハッシュレートと呼ばれる計算資源が多く集まるとDifficultyが上昇します。逆にハッシュレートが下がるとDifficultyは下降します。

Difficultyはこちらから確認できます。
https://fork.lol/pow/difficulty

実は、ナンスというのはブロックのヘッダーのみに存在するのではなく、ブロックの最初のトランザクションである「coinbaseトランザクション」という特別なトランザクションにエクストラナンス(extra nonce)として存在しています。

extra nonceの役割は非常に重要で急激なDifficultyの上昇の際にマイニングを可能にします。ヘッダーに含まれるナンスは4byteなので4,294,967,296回(約4億回)の計算が可能です。Difficultyが上昇すると約4億回では計算回数が足りません。

するとマイニングが完了しないという自体に陥るため、extra nonceをcoinbaseトランザクションに含めているのです。

こうして新たなブロックが承認・生成されます。

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

ビットコイン におけるハッシュ関数について

ブロックチェーンやビットコインの勉強をしていると馴染みのないワードが数多く出てきます。ハッシュやハッシュ関数もその1つで難しい印象をお持ちの方も多いのではないでしょうか。

しかし、ブロックチェーンの技術を学んでいく上で非常に重要な技術になっていることから、ここで要点をまとめたいと思います。

 

一方向性ハッシュ関数の特徴

  • メッセージが1ビットでも異なればハッシュ値は変わる
  • ハッシュ値からメッセージの逆算はできない
  • メッセージの長さに限らず、ハッシュ値は常に固定サイズ
  • ハッシュ値のサイズは小さい

1つずつ説明したいと思います。

メッセージが1ビットでも異なればハッシュ値は変わる

ハッシュ関数は、入力するメッセージが1文字でも違えば全く異なるハッシュ値が出力されます。

ハッシュ関数を用いたハッシュ値は、異なる入力に対して同様の出力が出るという衝突を避けることが最重要であり、その可能性は限りなく0に近いと言えます。

ハッシュ値からメッセージの逆算はできない

入力データをハッシュ値として出力することは容易にできるのですが、出力されたハッシュ値から入力値(メッセージ)の逆算はできないように設計されています。

これは一方向性ハッシュ関数という特性によるものです。

メッセージの長さに限らず、ハッシュ値は常に固定サイズ

入力データの文字数がどれだけ多くても、一定のサイズでハッシュ値が出力されることも入力値(メッセージ)の逆算を困難にしている要素になります。

ハッシュ値のサイズは小さい

入力データのメッセージサイズがどれほど大きくなっても、出力されるハッシュ値は扱いやすいように小さくなってなっています。

これはデータ容量が限られているビットコインにとっては非常に重要なことです。

 

安全なハッシュ関数の性質

安全なハッシュ関数であるためには、弱衝突耐性と強衝突耐性という2つの性質を持っている必要があります。

弱衝突耐性

攻撃者にハッシュ値(h)とメッセージ(m)が与えられたとしてそれをh(m)とします。攻撃者は与えられたh(m)から、h(m)=h(n)を満たすnを求めることができない耐性を言います。

よく誤解があるのですが、nを求めることができないのではなく現実的な時間軸では困難であることを示しています。

強衝突耐性

m≠nかつh(m)=h(n)を満たすm,nを求めることができないことを言います。

弱衝突耐性と強衝突耐性という名前からして弱衝突耐性の方が突破されやすいように思えるのですが、与えられたメッセージに対して衝突を与えなくてはいけない分、強い仮定を置いている問題でそのぶん突破が難しい性質です。また、強衝突耐性は過去に突破されてしまった事例があります。

 

ビットコインで使用されているハッシュ関数

ビットコインはSHA-256(*1)とRIPEMD-160(*2)という2種類のハッシュ関数が使用されています。

2つのハッシュ関数を重ねることを「ダブルハッシュ」と言います。そして、ビットコインではSHA-256をRIPEMD-160の入力値として2回通して使用することで安全を高めています。

*1 SHA-256:256ビットのハッシュ値を出力。ビット長が長ければ長いほどハッシュ衝突を避けることができますが、ビットコインのブロックチェーンでは計算速度や実装のしやすさ、安全性などのバランスを考慮しSHA-256を採用。

*2RIPEMD-160:160ビットのハッシュ値を出力。オリジナルのRIPEMDの強衝突耐性は破られているが、改良版であるRIPEMD-160に関しては現時点では破られていない。

 

Reference

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

秘密鍵と公開鍵とアドレス

暗号化方式

暗号技術には2種類の方式が存在しており、「公開鍵暗号方式」と「共通鍵暗号方式」と呼ばれています。

cryptoeconomicsが重要視している暗号技術は、「公開鍵暗号方式」で暗号用の為に用いる公開鍵と復号用の為に用いる秘密鍵をそれぞれ別の鍵として扱います。

公開鍵暗号方式は、処理が遅いというデメリットがありますが、データの復号化が可能なのは秘密鍵の所有者のみのためセキュリティーの観点から安心感があります。

一方で共通鍵暗号方式というのは、同じ鍵で暗号化と復号化を行う方式を言い、鍵が1つであることから暗号化する際に使用した鍵を復号化する際にも必要になるため、ユーザーによる鍵の使い回しによって漏洩する可能性も考えられる為、安全管理の徹底が必要となります。

下記図にて分かりやすく比較しております。

暗号化方式 共通鍵暗号 公開鍵暗号
暗号化アルゴリズム RC4、DES、3DES、AES RSA、ElGamal
使用する暗号鍵 共通鍵 公開鍵、秘密鍵
鍵の管理 通信接続先ごとに作成 通信接続先の数に関係なく1つだけ作成
鍵の交換 第三者に知られないよう安全に交換 作成した公開鍵を一般に公開
データの処理時間 速い 遅い

秘密鍵(Private key)と公開鍵(Public key)

鍵の生成時に使用されているアルゴリズムを「 楕円曲線暗号(ECC)の楕円曲線DSA(ECDSA)」と言います。

ECDSAは楕円曲線という数学を使ってDSAと同じ原理の公開鍵暗号を構成したものです。一般的に普及している暗号アルゴリズムはRSAですが、ECCアルゴリズムはRSAと比較してビット数を少なくすることができ、処理性能を高速化することが可能です。

ECDSAによって公開鍵と秘密鍵のペアがランダムに生成されます。正式には秘密鍵から公開鍵が生成され、公開鍵からビットコインアドレスが作成されます。一方向性ハッシュ関数という暗号方式を用いている為、ビットコインアドレスから公開鍵の推測や公開鍵から秘密鍵の推測は困難となっています。(推測が不可能という訳ではなく、極めて非現実的ということです。)

一方向性ハッシュ関数についてはこちらをご覧ください。

ビットコイン におけるハッシュ関数について

秘密鍵はビットコインの所有権を表しており、秘密鍵の紛失はビットコインの紛失を意味します。上述したように、公開鍵やビットコインアドレスから秘密鍵が漏洩する可能性は極めて低い為、第三者に知られても問題がありません。

上図にあるように秘密鍵はブロックチェーン内でトランザクションの署名に使用され、公開鍵はトランザクションの照合に使用されます。

つまり送信者が秘密鍵を使用して署名したトランザクションと、秘密鍵から生成された公開鍵でトランザクションの署名の照合が可能であれば正当な取引として認められます。

 

アドレスの生成方法

ビットコインアドレスは公開鍵から一方向性ハッシュ関数を用いて生成されていることがわかりました。

ビットコインアドレスが生成されるまで

ビットコインアドレスは1・3またはbc1 から始まる27~34 文字の文字列です。

1から始まるのは一般的なビットコイン(P2PKH)アドレスで、3から始まるのはP2SHアドレスです。また、bc1から始まるビットコインは、Segwitアドレスと決まっています。

1BitQEtcoxAnViwUYX9k6KupmmsEfWrGnr

  1. 秘密鍵からECDSAで公開鍵を生成
  2. 公開鍵をハッシュ関数SHA-256に通しハッシュ値を得る
  3. そのハッシュ値をさらにハッシュ関数RIPEMD-160に通しハッシュ値を得る
  4. ハッシュ値の先頭にプレフィックスとして00を加える
  5. ハッシュ関数SHA-256に通す
  6. もう一度ハッシュ関数SHA-256に通す
  7. 4byteのチェックサムを一番後ろに加える
  8. Base58(*1)のフォーマットでエンコーディングする

*1 BASE58 :二進数で表されたバイナリデータを文字として扱うためのエンコード方式のこと。仮想通貨では、公開鍵や秘密鍵、アドレスの形式を変換するときに広く使われている。特徴としてユーザーの誤認識を防ぐために、英数字以外の文字や数字の「 0 」と英大文字の「 O 」、数字の「 1 」と英小文字の「 l 」などが場外されている。また、 BASE58 にはチェックサムという機能がついており、無効なアドレスを検出してユーザーの誤送信時に知らせる。

ハッシュについては、こちらを読んでおくと理解が早まります。

イーサリアムアドレスが生成されるまで

イーサリアムアドレスは、0xから始まる合計42文字の文字列です。

0x6079dd09E8bfDFb3032eE0
aD6f35Eb3e9aa506B6

1.秘密鍵からECDSAで公開鍵(64byte)を生成

e145ccef1033dea239875dd00dfb4fee6e3348b
84985c92f103444683bae07b83b5c38e5e2b0c
8529d7fa3f64d46daa1ece2d9ac14cab9477d04
2c84c32ccd0

2.公開鍵をハッシュ関数Keccak-256に通し文字列(32byte)を得る

2a5bc342ed616b5ba5732269001d3f1e
f827552ae1114027bd3ecf1f086ba0f9

3.最初の12byte消し20byteのアドレスになる

001d3f1ef827552ae1114027bd3e
cf1f086ba0f9

4.そのアドレスが16進数であることを示すため接頭辞に”0x”を付加

0x001d3f1ef827552ae1114027b
d3ecf1f086ba0f9

イーサリアムアドレスの生成時には、BASE58フォーマットが使用されておらずチェックサム機能がついておらず、誤送信をしても知らせてくれることはありません。なぜこの機能がついていないかというと、ENS(Ethereum Name Service)と呼ばれるアドレスをWEBのドメインのような役割で可読性を高くするという機能を実装しているからです。

しかし、ICAP(Inter exchange Client Address Protocol)形式のアドレスといったチェックサム付きのフォーマットも検討されています。実際にはICAPへの移行はあまり進んでいません。そこで2016年1月にイーサリアム創設者のVitalik Buterin氏が提案した、Capitals-based checksumと呼ばれる誤送信の検出方法が採用されました。

Capitals-based checksumの役割は、アドレスの小文字を大文字に置き換えることで誤送信検出機能を持たせており、99.986%の精度で誤りを検出できるとのことです。

変換前:0x001d3f1ef827552ae1
114027bd3ecf1f086ba0f9

変換後:0x001d3F1ef827552Ae
1114027BD3ECF1f086bA0F9

 

チェックサムはどのように機能しているのか

先ほどから何度か登場している「チェックサム」は、データ送信において送信側に誤送信検出する手法のことを言います。検出機能がない場合、送信側が間違っていても気付くことなく、遅延や損失を招くことになるため、ユーザビリティの観点からも非常に重要な機能と言えます。

そのチェックサムの仕組みについて説明します。

例えば、”12345″というデータを送信するとします。ただしそのデータをそのまま送信するのではなく、検出機能を持たせるために「S」という文字を12345″の合計値「15」として計算して追加します。

そして、送信するデータ”12345″の末尾に「S」付けて送信します。送信データは、”12345+S” = “1234515”となります。このチェックサムの仕組みを受信側が理解していれば、データの合計値と付加した「S」の間に不一致が生じるため受信したデータの一部が誤っていた場合に誤りを検出することができます。

例えばチェックサムをつけた状態の正しいデータは”1234515”ですが、何らかの原因によって”1234615”とデータが受信されたとします。

正しいデータ:”1234515”

誤ったデータ:”1234615”

この時、誤ったデータのチェックサムを取り除き、「S’」という文字を”12346”の合計値「16」として計算します。受信したデータ“1234515”から、チェックサムSは15であることを受信側は知っています。

一方で、誤ったデータを元に再度計算して求めたチェックサムS’は16です。この違いから、データに誤りがあることを検出することができます。

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

ビットコインにおけるUTXOとは

ビットコインにおけるトランザクションとはブロック内に含まれる取引情報のことを指し、ビットコインの送金をネットワーク上に知らせることを意味するとお伝えしました。

ビットコインにおけるトランザクションの仕組み

今回は、ビットコインのすべての取引において新たに生成されているUTXOについてわかりやすくお伝えしたいと思います。

 

UTXOとはなに?

UTXOとは「Unspent Transaction Output」の略で「未使用のトランザクションアウトプット」という意味です。

トランザクションアウトプットがUTXOであり、このUTXOが次のトランザクションインプットになるのです。少しわかりにくいので下図をご覧ください。

このように全てのトランザクション内の取引(インプット&アウトプット)はUTXOを介して処理されており、UTXO内に含まれるトランザクションスクリプトによってUTXOの所有者を証明しているのです。ただしUTXOの所有者になったからといって自身のウォレットでUTXOを管理しているのではなく、ブロックチェーン内に散らばっているUTXOをウォレットが参照することでウォレットに残高を表示しています。

物理的に誰もが所有をしていないという特性上UTXOは、未使用のトランザクションと呼ばれています。

他にもUTXOには様々な特性があります。

 

UTXOの特徴

UTXOの特徴についていくつか紹介したいと思います。

UTXOは分割できない

物理的な硬化である500円や100円が分割することができないと同様に、1BTCのUTXOを0.5BTCと0.5BTCのUTXOといった分割をすることができません。ただしアウトプットによる分割は可能です。

例えばアリスがボブのカフェで0.1BTCの支払いをする際に、アリスの残高である1BTCから0.1BTCの支払い(アウトプット)、つまり分割はできません。しかし、1BTCのうち0.1BTCはボブのアドレスに支払い(アウトプット)、0.9BTCを自身のおつりアドレスに支払い(アウトプット)することは可能ということです。

この特性上おつり用アドレスは非常に重要だということが理解頂けたかと思います。

プライバシーの保護

UTXOによって取引の追跡は容易となっているが、個人の特定や関係性に対しては強い耐性があります。

下図をご覧ください。
先ほどのアリスとボブの名前をアドレスに変換しただけになります。

このように表示されていれば、0.1BTCと0.9BTCを誰に送金しているかはもちろん、自身のおつりアドレスに送っていることすらも第三者には分かりません。この特性上UTXOはプライバシー保護に長けているということが理解頂けたかと思います。

 

アカウントベースとは

ビットコインにおけるトランザクション(残高)の管理はUTXOを用いていることをお伝えしてきました。全てのトークンやチェーンがUTXO方式を採用しているのかというとそうではありません。例えばイーサリアム(ETH)やNEMではアカウント方式という方法を採用しています。

アカウント方式というのはデータ量の減少と簡易性を重要視することで汎用性を高めており、UTXOのような複雑な残高管理方法とは異なり、単純に残高としての記録から送金をすると送金額分が自身の残高から減算されます。 

アカウントベースはイーサリアムのような拡張性を前提においたトークンには最適です。もしイーサリアムにUTXOが採用されていると、スマートコントラクトのような複雑な処理がより複雑になることはもちろん、コントラクトが稼働するたびに新たなUTXOが作られ1ブロックあたりのトランザクション数が肥大してしまいます。

ビットコインの場合、1ブロックあたりのトランザクション数は、ビットコインにおけるトランザクションの仕組みでお伝えしたように1500から2000前後のトランザクションを処理できるとお伝えしました。なぜこのような差があるのかというと1ブロック内に含まれる1トランザクションあたりの容量に左右されるからです。

この1トランザクションあたりの容量はインプットとアウトプットの量で決まります。

つまりコントラクトが稼働するたびにアウトプットが生成され、1ブロックで処理できる限界容量に達してしまうことでトランザクションが減少するということです。そうすると、トランザクション詰まりが発生し肝心な時にアプリケーションが動かない、処理ができないというスケーラビリティ問題に直面します。

なのでイーサリアムでは、UTXO方式ではなくアカウントベース方式を採用しています。

 

Reference

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

ビットコインにおけるトランザクションの仕組み

トランザクションのインプットとアウトプット

トランザクションとはブロック内に含まれる取引情報のことを指し、ビットコインの送金をネットワーク上に知らせることを意味します。また、ビットコインは約10分に1度ブロックが生成され1ブロック毎に1MBの容量までトランザクションの処理をすることができます。

下図グラフは1日のトランザクション総数を表しており、1日に生成できるブロックは144ブロック、2018年12月1日のトランザクション総数は241,847ブロックなので1ブロック1,679トランザクションが処理されていることが分かります。だいたい平均して1ブロックあたり1500から2000前後のトランザクションが処理されていると覚えておいてください。

つまり約10分あたりの取引量が増えると、平均トランザクション数を越えてしまい1ブロック内に収まりきらなくなります。収まりきらなかったトランザクションは次のブロックでの処理となるため時間を要してしまいます。これがスケーラビリティ問題(*1)の入り口です。

*1 スケーラビリティ問題:ビットコインのスケーラビリティ問題とは、ビットコインにおけるブロックチェーンのブロックサイズが1メガバイト(MB)に制限されている結果起きている問題。

トランザクションは1個または複数のインプットとアウトプットを持っており、インプットの方が少しだけ大きくなります。この差分がマイナーへの手数料となります。

トランザクションはインプットからアウトプットに価値の移転がおこなわれ、インプットはトランザクションがどこからビットコインが送られてきたかを示し(通常は前のトランザクションのアウトプット)、アウトプットでは現在の現在の所有者が送り先を指定することで新たな所有者を指定することができます。

これらのインプットとアウトプットが正しく行われているのかを検証するためのプログラムを「トランザクションスクリプト」と言い、UTXO(*2)内に組み込まれています。

*2 UTXO:「Unspent Transaction Output」の略で「未使用のトランザクションアウトプット」という意味を持ちます。ビットコインの取引は全てUTXOを介して実行されており、極めて重要であるためこの章では割愛させていただきます。

ビットコインにおけるUTXOとは

 

トランザクションスクリプトとは何か?

トランザクションにはそれぞれインプットとアウトプットが存在しており、トランザクションスクリプトによって取引の検証が行われていることが分かりました。また、トランザクションスクリプトは「scripStig」と「scriptPubKey」の2種類のScriptがあり、トランザクションのアウトプットにおける条件指定にscriptPubKeyが用いられ、インプットにおける条件解除にscripStigが用いられています。

下図はトランザクションの構図を示しており、scriptSigはインプットデータの中に、scriptPubKeyはアウトプットデータの中に存在していることがわかります。

scriptSigとscriptPubKeyによるトランザクションの証明について、実際にアリスがマイケルから受け取ったビットコインを使用して、ボブのカフェで支払いをする場合を例に詳しくみてみましょう。

アリスは現金と引き換えにマイケルからビットコインを受け取りました。これはマイケルのアウトプットがアリスのインプットになったことを示しています。この取引(トランザクション)は、アリスの秘密鍵でロックされています。アリスがボブのカフェでに支払いをするためには、scripStigでアリス自身の署名と公開鍵を用いることでアンロックする必要があります。

このscripStigによるアンロックによって、マイケルのアウトプットがアリスのインプットになったことを証明しています。なぜならアンロックできるのは秘密鍵を所有しているはずの送信先(アリス)だけだからです。

こうしてアンロックされたインプットは、scriptPubKeyで新たなアウトプットを指定することができます。つまり支払いの為にボブのビットコインアドレスでロックすることを意味します。送信先であるボブがscripStigで署名と公開鍵を用いることで、新たなインプットとして所有権をネットワーク上に証明することになります。

これがscripStigとscriptPubKeyを用いたインプットとアウトプットの証明になります。そして、この例は1つのトランザクションの形式を説明しています。

 

トランザクションの形式

一般的なトランザクション

一方のビットコインアドレスからもう一方のビットコインアドレスに支払いをするための一般的なトランザクション形式です。その支払いにおつりが含まれる場合は、トランザクションのアウトプットにおつりアドレスが含まれ送信者に戻されます。その場合、1つのインプットに対して2つのアウトプットが用意されます。

おつり用のアドレスというとユーザーにはあまり馴染みが無いように思えますが、それは取引所やウォレットのプール内で管理されているが為に気にする必要がないだけであって、UTXOを採用しているビットコインにとっておつり用のアドレスは非常に重要です。これについては後日UTXOにて詳細をお伝えさせて頂きます。

ビットコインにおけるUTXOとは

集約型トランザクション

複数のインプットを1つのアウトプットにまとめて使用されるトランザクション形式です。このタイプのトランザクションは、少額決済やおつりなどの小さなトランザクションをまとめて大きなトランザクションにするなめに使用されます。

分配型トランザクション

1つのインプットを複数のアウトプットに分けて複数の受取人に使用されるトランザクション形式です。このタイプのトランザクションは、企業内での給与の支払いや小さなトランザクションを集めて1つの大きなトランザクションとしてまとめるために使用されます。

 

トランザクションの確認

最後に実際に処理されているトランザクションの生データをblockchainで見てみましょう。

高さ:現在のブロック数(約10分に1度生成)

年齢:ブロック生成から経過した時間

トランザクション:1ブロックあたりのトランザクション数

鉱夫:マイニングに成功したプール

サイズ:ブロックサイズ

各ブロックの中には下図のように複数のトランザクションが入っており、赤色で囲んだ部分の左側がインプットで右側がアウトプットを表示しています。アウトプットデータ側の二段目のアドレスがおつり用のアドレスになります。

青色で囲んだ部分に実際にアウトプット(送金)した金額とおつりとして戻ってくる金額が表示されています。

このように実際のトランザクションデータを追っていくと、アウトプットされたものがインプットに変わり価値の移転を容易に追跡することができます。この連鎖(チェーン)はどこからはじまるのかというと、約10分に1度マイナーによって新たなブロックが生成された際のブロック報酬として、マイナーの指定しているアドレスにアウトプット(送金)されます。

これはcoinbaseトランザクションと呼ばれています。

coinbaseトランザクションにはインプットは存在しておらず、ブロック報酬のアウトプットのみ存在しているのです。

 

Reference

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。

PoWにおけるコンセンサスの解釈

indiv Report
今日はZilliqaを例にコンセンサスについて
考えてみたいと思います。

コンセンサスは文字通り「合意」という意味ですが、
もう少し細かく
「どのチェーンが正当であるかを決めるルールに従って、
予め定められた比率以上の参加者が同じ選択を取ること」
としたいと思います。

 

PoWにおけるコンセンサスの解釈

ビットコインの場合、ブロック生成者になるための条件は、「他の人よりも早く、適切なナンスを見つけ出すこと(たくさんの計算を素早く行うこと)」となります。

マイニングにで何を早く見つけるための計算をしているのかを知らない方が多いです。ナンスを見つけたマイナーがブロック報酬を得る権利を得ることができます(ビットコインの場合 – 12.5BTC / 10分)。このナンスについての説明はLab内で詳しくしています。

比較対象がないと分かりづらいのでEOSを例にしてみます。

EOSは21人のブロック生成者を選び、持ち回りでブロック生成者を務めます。
そして他のブロック生成者の承認をもってブロックが生成される仕組みです。

ブロックが正当なものとして認められるのはどの段階なのか?

コンセンサス設計によって全然異なるので面白い。

例えばビットコインはナンスを見つけたマイナーがブロック生成権利を持ち、正当なブロックの可否を決めるのはその後、一方EOSは2/3以上の承認を得た段階でブロック生成と承認が完了する。

ちなみにこれはPoWとPoSの違いではありません。

例えばEOSとEthereum Casperは両方共PoSですが、仕組みは異なります。
同様にPoWであってもコンセンサスの形成方法が異なるケースがあります。
ちなみにビットコインとEthereumは両方ともNakamoto consensusという仕組みで運営されています(ビットコインはSHA256, EthereumはEthashなのでアルゴリズムは異なります)。

Nakamoto consensusとは、P2Pネットワーク上でビザンチン将軍問題を解決ではなく、「迂回」するためのコンセンサス(合意)設計と一言で言えます。

筆者は解決ではなく迂回という言葉がしっくりきており、なぜかというとマイニングには多大な電力という負のインセティブがあるからこそ、マイナーはネットワークを攻撃するよりもマイニングに参加する方が合理的なわけで、攻撃するメリットの方が大きければ攻撃するわけです。

つまり根本的な問題の解決をしているわけではなく「迂回」なのです。

Zilliqaは部分的にPoWを使っていますが、Nakamoto consensusではありません。

また、EOSと同じく中心メンバーとなるブロック生成者のグループを作り、順にブロックを生成していく仕組みになっていますが、Zilliqaの場合PoWによって誰がブロック生成者になるかが決定されます。
ブロック生成者になることを希望する人間は一定期間ごとに開催される「計算競争」に参
加し、それに打ち勝てばブロック生成者グループに入ることができる、というのがZilliqaの仕組みです。

簡単にまとめるとEOSとZilliqaは、

  1. 代表を選ぶ
  2. 代表者たちの中で、順にブロック生成者の役割を回す
  3. ブロック生成者を入れ替える

という順番になっていると言えます。

EOSの場合、代表は投票によって、Zilliqaの場合はPoWの計算競争によって決まります。

一方でビットコインやEthereumの場合、我々は直接計算競争に参加することができます。
ただし、先述したようにNakamoto consensusの場合、代表ノードは必要なく、最初にナン
スを見つけた人が独占的にブロックを生成することができます。

関連記事
https://coinpicks1.wordpress.com/ethereum/

 

CoinPicks LINE@

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

https://platform.twitter.com/widgets.js

CoinPicks Lab

学習項目
 
  • 分析レポート
  • Bitcoinについて
  • Ethereum経済圏について
  • ST(セキュリティートークン)について
  • PoS型プラットフォームトークンについて
  • ステーブルコインについて
  • コンセンサスアルゴリズムについて
  • トークン設計について
  • 流通設計について
  • CBDCについて
  • 各インフルエンサーによる特化した情報
  • Q&A項目の共有
  • 基礎学習
  • 掲示板

https://lounge.dmm.com/detail/761/

などなど…
今後も学習項目は増えていきます。