メモ帳

ゲームをプレイした時、美味しい物を食べた時、面白い作品に触れた時に忘れないようメモしています。

ブロックチェーンを支える技術③

f:id:ne_w:20170822145312j:plain

new-glg.hatenablog.com

 

 

 

 

 

不正にコインを送金されない仕組み、マルチシグ取引


コインの送金や管理をより安全に行えるように、現在様々な取り組みが進んでいます。
代表的なのが『マルチシグ取引』と呼ばれるものです。
マルチシグ取引とは、マルチシグネチャ取引の略で、複数の署名が可能な取引の事です。

通常単独で行えるコインの送金ですが、これに複数人からの承認を要求する事ができ、安全性や利便性がより向上する技術です。

例えば、会社などがビットコインを保管する場合、1人だけで管理して言えると横領などのリスクによってビットコインが流出する危険性があります。
このような危険性を避けるために、複数人の署名が無いとコインの移動ができないようにするのです。
この手法は『M-ofーN マルチシグアドレス』という手法が一般的です。

例えば『2-of-3』の場合は3個の秘密鍵を持っている人の内2人の秘密鍵に対応する署名があればコインの移動が可能です。

またエスクロー取引も注目されています。
これはビットコインの移動に信頼のおける第三者を仲介させる方法です。
例えば、オークションサイトで安全に引き渡しを行うまでに三者間の共有アドレスに保管しておき『2-of-3』形式でコインの移動を行う取り決めにします。
問題が無ければ『購入者と出品者』の2者で送金が完了し、出品者が商品を渡してくれないなどの不測の事態であっても購入者と仲介者間のみで返金手続きが可能です。

まだまだ実例が少ないこれらの管理方法ですが、今後ブロックチェーンの普及意図もない、浸透していくかもしれません。

 

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin

 

プライベートブロックチェーン


ブロックチェーンの起源はビットコインです。
そしてビットコインにおけるブロックチェーンは公開された状態の物です。
これをパブリックブロックチェーンと呼びます。

一方ブロックチェーンの技術をクローズドな環境で活用しようという動きが出てきました。
これをプライベートブロックチェーンと呼びます。

従来のパブリックブロックチェーンは、情報公開されると言う特性から、顧客の取引データなどを公開できない情報がある場合は採用できませんでしたが、プライベートブロックチェーンは
公開範囲を限定できるため顧客情報などの秘匿性の高いデータのやり取りにも応用する事が可能です。

特にプライベートブロックチェーンは、特定の業界内で複数の会社や関係者でコンソーシアムという形式で構成する事に多くのメリットがあります。
具体的には、金融機関同士や不動産会社同士などが挙げられます。

実際にプライベートブロックチェーンの動きは進んでいます。
例えとしては、ビットコインのブロックチェーンを使った『MultiChain』イーサリアムから派生した『HydraChain』そして独自のブロックちゃーんである『mijin』などがあります。

ただ、もともとブロックチェーンは管理者がおらず公開されているという点が革新的な点であり、プライベートブロックチェーンはその部分を無視してコスト削減や実質ゼロ・ダウンタイム実現などのメリットだけに目をムk手織り、これらの研究開発に懐疑的な声もブロックチェーン原理的支持者の間からは聞こえます。

 

 

 

ブロックチェーンと切り離されたオフチェーン


ビットコインを使った決済では、ブロックチェーンに取引を記録する度に手数料が発生します。
手数料は十数円ほどなので、従来の決済システムと比較すると安価ですが、少額決済を繰り返す場合は手数料がかさんでしまいます。
そこで、この問題を解決する『マイクロペイメントチャネル』という仕組みがあります。

これは、取引の一部をブロックチェーンの外側(オフチェーン)で処理する仕組みです。
最初と最後の取引だけブロックチェーンに記録し、途中のトランザクションは記録しない事で、ブロックチェーン上の手数料を掛からないようにする仕組みです。

具体的には、まずユーザーとさサービスを行う会社のマルチシグアドレスにコインをロックする取引を行います(オープニングトランザクション)。
その後、何度取引をしてもブロックチェーンの外側で行っているので手数料がかからず、さらにより高速に処理を行うことが可能です。
最後に取引を全て終えれば、コミットメントトランザクションというロックされたコインを解除する取引をブロックチェーン上にしてクローズします。

ビットコインのブロックチェーンは、ブロックに入る取引の量の上限が低く、現在問題となっています。
しかし、マイクロペイメントチャネルにより、ブロックチェーンの外で高速に大量のトランザクションを処理する事が可能になるため、この問題を解消する手段の1つとして注目を集めています。

 

ブロックチェーン自体の使用を変更するハードフォーク


さまざまな注目を集めるビットコインですが、ビットコインにも問題があります。
ビットコインの仕様では1ブロック(約10分間)の容量上限が1メガバイト(数千件程度)と決められているため、今後ビットコインの取引拡大によって処理能力の限界を超えると言われています。

そこでブロックチェーン自体の抜本的仕様変更を行おうとする動きがありますが、そもそも管理者がいないブロックチェーンの抜本的仕様変更など可能なのでしょうか。

これまでにブロックチェーンの仕様を変更した事例としてイーサリアムでの例があります。
この通貨を利用した『The DAO』というプロジェクトが多額の資金を集めましたが、コードの脆弱性を攻撃され、集めた資金の約3分の1が流出する前代未聞の大事件が起きました。
これに対して開発チームは『ハードフォーク』により問題の解決を図りました。

ハードフォークはもとのブロックから新しい別のブロックを強制的に枝分かれさせ、ブロックチェーンの仕様を変更する事です。
これによって従来のブロックチェーンとの互換性が無くなり、新しいブロックを選択した参加者は強制的に仕様変更が必要になります。

参加者の多くは仕様変更された新しいブロックを選択しましたが、中にはもとのブロック(イーサリアムクラシック)を選択するユーザーもいる為、現在も混乱が続いています。
ブロックチェーン自体の仕様変更は可能ですが、この事例からも決して一筋縄ではいかないということがわかります。

 

SegWitとは


ビットコインには、ブロックチェーンのサイズ(1M)が小さい事により起こる不都合があります。
この問題に対する1つの解決方法としてSegWit(Segregated Witnessセグウィット)があります。

SegWitとはビットコインのブロック内にもともと含まれていた署名や公開鍵などを分離して、別の領域に格納する事です。
具体的には、もともと『scriptSig』という取引の署名や公開鍵などから構成されるプログラムに含まれるデータを、分離してまったく別の領域に格納する事です。
この新しいデータ領域を『witness』と言います。

そしてSegWitとはこのプログラムの内容を『scriptSigの中に署名が含まれていなければならない』という意味のスクリプトから『witnessの中に署名が含まれていなければならない』という意味に変更する事を言います。
これはブロックサイズの実質的な上昇を意味します。

その他、スケーラビリティ問題への解決方法として、ライト人具ネットワークを作る方法も提唱されています。
これは正規のビットコインブロックチェーン上ではなく、オフチェーンと呼ばれる別の場所でビットコイン取引を行うことで問題を解決しようとする取り組みです。
これらの問題は、ビットコインの開発者たちが日々活発な議論をして開発を行っています。