• Daiki Akasaka

BitCoinが抱える問題、課題


Block Chain/BitCoin に関して勉強したので、その内容を簡単にわかりやすくまとめようと思います。 Block Chain に関するMITの授業の動画をみて勉強したので、その内容に基づいて解説していきます。動画はこちら



以下の4点でまとめて解説していきます。


Block Chainとは何か
Block Chainで使われている技術
Block Chainで使えるアプリケーション
BitCoinが抱える問題、課題

BitCoinが抱える問題、課題

Vitalik Buterinのトリレンマ

Ethereumの創設者のVitalik Buterinが唱えたトリレンマが有名である。トリレンマとは、ジレンマが2つの事柄を同時に満たすことができないのに対して、トリレンマは3つの事柄を同時に満たすことができないということ。


Vitalik Buterinは今のBitCoinやEthereumでは、

  1. Decentralization(非中央集権)

  2. Scalability(拡張性)

  3. Security(安全性) 

を同時には満たすことができないと。どれか一つを大きくすると、他の二つもしくは一つが小さくなってしまうというトリレンマがある。


特にScalabilityに関しては今は大きな課題がある。VisaなどのCredit 決済では、1秒間に数万件の取引が可能であるが、BitCoinでは、1秒間に4.3件程度の取引しかできない。


理由は、BitCoinがBlockの検証に使用しているProof-of-Workが1blockを検証するために必要な時間が10分になっているためである。1Blockのサイズが1MBであり、1取引のサイズが平均すると400 byte 程度なので、1Blockあたり2621件の取引が記録でき、これが10分に一回なので、一秒あたりでは4.36 件になる。

ここで、1取引あたりのサイズが確認することができる。

https://tradeblock.com/bitcoin/historical/1h-f-tsize_per_avg-01101


Layer2

これらの問題を解決するために、Layer2と呼ばれるメインのBlockChainとは切り離された所に新しくLayerを作って、そこで取引を行い、最終的な取引の結果のみをメインのBlockChainに書き込むことで、取引速度の向上と取引手数料を削減することができる。


BitCoinでは、Layer2としてLighting Networkが採用されている。個人間でOpen Payment Channelというものを開設して、取引を行う。それが終わると、チャンネルがCloseされ、最終的な取引後の状態だけがメインのBlock Chainに書き込まれることになる。


Proof of Steak

Scalabilityの問題を解決するために、時間のかかるProof-of-Work の代わりのProof-of-Steakという方法がある。EthereumもProof-of-Steakへの移行を検討している。


Proof-of-Steakはノードの中から選ばれたノードによってBlockの検証が行われるため、Proof-of-Workのようにマイニングに多くの時間と電気代をかけずに済み効率的である。


Blockの検証を行うノードは通貨の保有量や保有期間の長さに応じて選出されることになる。一方で、保有量や保有期間に依存してしまうため、通貨が消費されずに、特定の口座に溜め込まれていってしまうという懸念もある。


KYCとAML

BitCoinでは秘密鍵と公開鍵のペアさえ作ってしまえば、口座が簡単に作れてしまうため違法な薬物の売買やテロ活動の資金源、マネーロンダリングなどの犯罪目的で口座が使われてしまう可能性が高い。身分を明かすことなく、いくらでも口座が作れ、仮想通貨を経由しながらお金をし、お金の流れを見えにくくすることができてしまう。


一般的な銀行では、口座を作る際に身分証明書を提出したりとか、不自然な取引や不正な口座を排除するなどして、KYC(Known Your Customer)とAML(Anti Money Laundering)が徹底されている。


Hardfork/Softfork

forkというのは、ソフトウェアの世界では分岐することを意味していて、これまで開発してきたソフトウェアを分岐させて、異なる修正を分岐したものに追加していくことである。


Forkには2種類あり、HardforkとSoftforkがある。


Hardforkというのは、後方互換性を持たずに分岐することで、分裂したあとは、永久的に分裂したままで、古いほうは別のコインとなって存続するか、捨てられる。

全てのMinerがソフトウェアを最新の更新しなければならず、手間とコストがかかり、非中央集権型のBlock Chainのコンセプトと合わない。


Ethereumは過去に何度もHardforkを繰り返している。Ethereumは開発コミュニティの中でコンセンサスを取りながらHardForkが繰り返されている。

過去のDAO Forkでは、少数のMining GroupがこのForkに追従せずに、Ethereum Classicとして分岐した。

出典 : https://medium.com/mycrypto/the-history-of-ethereum-hard-forks-6a6dae76d56f


一方で、softforkというのは後方互換性を保ちながらの変更であるため、一時的に分岐をしても、その後は多数派のMinerが占めるチェーンの方に一本化される。後方互換性を保ちながらのため大きな修正をすることができない。


BitCoinでは過去にソフトのバグ修正などで、16回のsoftforkが行われたようである。どのようにforkさせるかは2通りの方法があるようで、

1. 期日を決めてしまうやり方

2. どれくらいのMinerがupdateを完了させたかによって決めるやり方。

どういった方法でsoftforkさせるのが良いかはいろんな議論があるようだ。

こちらの記事が分かりやすかった。

https://blog.bitmex.com/bitcoin-softfork-activation-methodology/


まとめ

今のBitCoinやEthereumには、Scalabilityの問題などがあるが、それらを解決するために新しい技術が開発されていって、Forkを繰り返しながら進化して行くのだと思う。

一方で、今後、市場の要求を満たすように改善を繰り返すと、元々のBlockChainの思想である非中央集権を完全な形で保つということも同時に難しくなっていくのだろう。ある程度は、中央で管理する人がいながらもそれの役割が最低限になるように、進化していって欲しいと思う。

閲覧数:7回0件のコメント