転勤族でもできる仮想通貨

仮想通貨でセミリタイアを狙う転勤族エンジニアが色々な通貨や関連する技術について、誰が見ても分かりやすいように解説しています

取引情報をブロックチェーンに取り込まれる前に承認してしまうゼロ承認(0-confirmation)とは?

f:id:parato:20181106174546j:plain

どうも、ぱらと(@ParatoCrypto)です('ω')ノ

今回はトランザクションがブロックに取り込まれる前に取引を承認する考え方である0承認(ゼロ・コンファメーション/0-Confirmation)について書きたいと思います。

見切り発進的に取引承認手続きを進めてしまう0承認の考え方についてこの記事を通して理解を深めていただければと思います。

ゼロ承認(0-Confirmation)とは?

ゼロ承認とはトランザクションブロックチェーンに記録されていない状態で承認を進めてしまうことを指します。

本来ブロックチェーン上の取引は生成されるブロックにトランザクションが取り込まれて承認されるまで成立しません。

しかし、ゼロ承認をの考えを採用すると見切り発進的に取引を承認することができるようになります。

 

なぜゼロ承認を利用するのか

トランザクションブロックチェーンに取り込まれてしまえば取引内容を改ざんすることはほぼ不可能で安全に取引が成立したことを証明できます。

しかし、ゼロ承認を利用することでトランザクションが取り消されるリスクを持ちながら取引を承認してしまいます。

そんな性質を持つゼロ承認ですが、このような考え方が生まれた背景にはブロックチェーンの生成速度の影響があります。

ブロックチェーンのブロック生成速度は速くても10分程度の時間がかかるため、街中にある実店舗での利用を考えたとき、ちょっとした買い物の決済に10分以上の時間がかかると知っていて利用する人はいないと思います。

ゼロ承認を利用することで取引がブロックに取り込まれる時間を待たず、即時取引を完了させることができます。

これがゼロ承認が利用される理由です。

 

ゼロ承認のリスク

見切り発信的に取引を承認するゼロ承認を利用することによる取引上のリスクは、ダブルスペント(二重送金)の発生です。

冒頭で説明したとおり、トランザクションブロックチェーン上に記録されるまでは確実に取引が承認されたとはいえない状況です。

 

これによって次のような不正行為を行うことができてしまいます。

トランザクションブロックチェーンに取り込まれる前のタイミングでトランザクションを再送信することでウォレット内のBitcoinの枚数を減らさずに支払いを行うことが出来てしまうので、二重送金が発生してしまいます。

この不正行為は通常の取引承認でも起きていますが、通常の取引承認であればブロックの生成が進むことで正しい取引だけが承認されて後から送信された不正な取引情報は承認されずブロックチェーンに取り込まれません。

 

ゼロ承認を利用して取引承認を進める以上この二重送金の問題は常にリスクとして背負わなければなりません。

 

リスクの対処方法

二重送金のリスクが常にあるゼロ承認ですが、リスクに対処する方法はないのでしょうか?

ブロックチェーンの性質上、正しい取引にしろ不正な取引にしろいずれかの取引情報がブロックチェーンに取り込まれます。

そのため、後から正しい取引が承認されたのか不正な取引が承認されたのかの確認は可能です。

つまり不正取引が行われた証拠としても効力を発揮するため、その取引情報を元に被害額を保険でまかなうといった対策が可能です。

 

ゼロ承認を利用する実店舗などでは、利用者の全体数から二重送金の確立がどれほどあるかを計算し、被害額を予想した結果ほとんど不正取引による影響がないと判断できれば、ゼロ承認の利用を続け迅速な取引承認が可能な状況を継続できると考えられます。

一定のリスクヘッジを保険などでまかないます。

 

まとめ

 今回は取引をブロックチェーンに取り込まれる前に承認してしまうゼロ承認について解説しました。

内容をまとめると、、、

 

・ゼロ承認はブロックチェーンに取引情報が取り込まれる前に取引を承認すること

・ブロックに取り込まれる前に承認するため二重送金のリスクが常にある

・リスクの排除は不可能なので被害予想をしたうえで採用するか決定することが重要

・迅速な取引承認が可能なので実店舗での決済などに応用することができる

 

元々はBitcoinで考えられていた内容ですがBitcoin Cashにおいても同様に考えられていた内容でBitcoinについて理解を深めるためには欠かせない考え方かと思います。

 

ではでは

  ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin