ブロックチェーンエンジニアが解説|トランザクション処理の仕組み

トランザクション処理

仮想通貨のニュースや記事を読んでいると「トランザクション処理」という言葉が出てきます。

2019年6月に発表されたFacebookの仮想通貨(暗号資産)「Libra」(リブラ)などの影響もあり、その基盤となるブロックチェーン技術が大手メディアで取り上げられる機会が多くなってきました。

トランザクション処理とはいったいどのような意味で、どのような処理なのでしょうか。

そこで改めて、仮想通貨やブロックチェーンの仕組みを学んでみたいと思った方も多いのではないでしょうか?本記事では、仕組みの部分について知りたい方向けに、仮想通貨のトランザクション処理を分かりやすく解説していきます。

この記事でわかること(トランザクション処理)

\アプリダウンロード数国内No1! 初心者でも使いやすい/
コインチェック

1. トランザクション処理とは?

仮想通貨を送る際に必ず発生するのがトランザクションです。まずは一般的にトランザクションやその処理がどのような意味を持ち、実行されるのかを解説していきましょう。

1-1.トランザクション処理とは?

トランザクションとは、データベースをある状態から別の状態へと変更するために必要な複数の情報(具体的にはデータベースの変更指示)をひとつにまとめたもののことです。そして、トランザクション処理とは、文字通りトランザクションが実行され、データベースの状態が変更されることを指しています。

データベースとは?
蓄積や検索、更新などがしやすいように、整理された情報の集まりのことです。電話帳や住所録などもデータベースの一種ですが、本記事ではコンピューター上で管理する情報の集まりのことをデータベースと表現しています。

トランザクション処理を、人間の食事に置き換えて考えてみましょう。あなたはいま、「空腹である」という状態です。空腹状態から満腹状態になるためには食事をしなければなりません。

当然ながら、満腹になるためには以下の2つを実行する必要があります。

  1. 料理する
  2. 食べる

あなたは料理を完食してはじめて、「満腹である」という状態に移行できます。ここでの「料理する」「食べる」はトランザクションを置き換えたものであり、これらを最後まで実行することがトランザクション処理だと考えられるのです。

トランザクション処理を人間で例えると

ひとまず人間に置き換えて説明しましたが、データベースも基本的な考え方は同じだと考えられます。状態Aを状態Bへと変化させるためにしなければならない事柄をまとめたものがトランザクションであり、それを実行することがトランザクション処理なのです。

1-2. トランザクション処理は「すべて成功」か「すべて失敗」の二択

実はトランザクション処理には、ひとまとまりの処理が「すべて成功する」「すべて失敗する」かのどちらかしかありません。人間の食事であれば、食べるのを途中で止めて腹八分目にしておいても問題ありませんが、データベースの場合は途中で更新作業が停止または失敗すると、データの整合性が取れなくなるからです。

例えば、銀行のデータベースの更新を考えてみましょう。いま、あなたは家族の銀行口座宛に10万円を送金しようとしています。

このときデータベースでは、送金者であるあなたの口座残高を10万円減らして、送金先である家族の口座残高を10万円増やすという2つの処理が行われているのです。2つの処理が「すべて成功」すれば問題ありませんが、仮にデータベースの更新作業が「あなたの口座残高を10万円減らす」処理で止まってしまうと、銀行のデータベースが整合しなくなってしまいます

したがって、このような不整合を生じさせないために、トランザクションの処理フローにおいては「すべて成功する」か「すべて失敗する」かのどちらかになることが保証されているのです。もし、途中で失敗した場合には、そのトランザクション処理を無かったことにして、ひとつ前の状態にデータベースを巻き戻す「ロールバック」という処理が行われます。

\アプリダウンロード数国内No1! 初心者でも使いやすい/
コインチェック

2. 仮想通貨(暗号資産)におけるトランザクション処理とは?

それでは、仮想通貨におけるトランザクション処理の意味を整理しておきましょう。

2-1. 仮想通貨(暗号資産)におけるトランザクションとは?

仮想通貨の文脈においては多くの場合、トランザクションは単に「取引」または「取引データ」と説明されています。もう少し詳細な説明としては1章の説明と同じく、データベースをある状態から別の状態へと変更するために必要な情報の集まりですが、基本的には取引データという理解で問題ありません。

トランザクションには、ブロックチェーンという分散型のデータベースを整合性ある形で更新するための情報が詰まっています。ビットコインはもちろん、他の仮想通貨に関しても同様です。

トランザクション内の情報としては「送信先となるアドレス」や「仮想通貨の」、「送信者のデジタル署名」、「関連するトランザクションのハッシュ値」などが挙げられます。

ハッシュ値とは?
ハッシュ関数によって得られる値のこと。同じ入力値をハッシュ関数で計算すると、必ず同じハッシュ値を出力として得られる。また、入力値がほんのわずかでも変わると、出力であるハッシュ値が大きく変わる。
ブロックチェーンとは? イラストでしくみと基礎知識を解説

2-2. トランザクション処理の課題

さて、ここからは少し視点を、仮想通貨やブロックチェーン技術全体に広げていきましょう。実は、2020年1月現在、多くの仮想通貨はトランザクション処理に大きな課題を抱えています。というのも、従来型のデータベースのトランザクション処理に比べて、処理速度が遅いのです。

したがって、より多くの人たちが仮想通貨を使うようになり、トランザクションが増え過ぎると、なかなか処理されないといった事態に陥ってしまいます。実際に、2017年終盤〜2018年初頭には、増え過ぎたビットコインのトランザクションに対して処理が追い付かず、送ったビットコインが24時間経っても相手に届かないことがありました。

利用者やトランザクション量の増加にネットワークの処理能力が追い付かず発生する問題は「スケーラビリティ問題」と呼ばれており、世界中のブロックチェーン技術者たちが、解決に向けて様々な研究開発を行っています。

\アプリダウンロード数国内No1! 初心者でも使いやすい/
コインチェック

3. トランザクション処理を高速化する技術

本記事の最後に、トランザクション処理を高速化する技術や、ビットコインと比べて飛躍的に高速化しているプロジェクトを2つ紹介していきましょう。

3-1. ライトニングネットワーク

条件によって多少の変動はありますが、現状のビットコインの処理能力は1秒あたり7件程度であると言われています。この処理能力を大きく引き上げ、クレジットカードの決済処理速度をも超えるポテンシャルを秘めているのが「ライトニングネットワーク」という技術です。

ライトニングネットワークは、トランザクションの処理速度を高速化するだけではなく、トランザクション手数料の削減も期待されています。ビットコインがより一般ユーザーに使われるようになるとしたら、ライトニングネットワークが技術的に充分成熟した後になるかもしれません。

ライトニングネットワークについては、別の記事で詳しく解説していますので、ぜひご覧ください。

3-2. リップル(XRP)

金融庁に登録済みの仮想通貨交換業者(取引所)が扱う仮想通貨のうち、リップル(XRP)は決済速度が約4秒と高速です。これはビットコインなどとは異なる仕組みでトランザクションを処理しているからであり、その仕組みは「Proof of Consensus」(PoC)と呼ばれています。

PoCではビットコインのような膨大な計算を行われていません。代わりに、金融機関や著名な大学などが信用できる承認者として機能し、そのうち80%が有効なトランザクションだと認めれば良い仕様になっています。だからこそ、リップルのトランザクション処理は速いのです。PoCの仕組みは、こちらの記事で解説しています。

また、トランザクション処理が比較的速い仮想通貨についても別の記事で紹介しています。興味のある方は、こちらもぜひご覧ください。

\アプリダウンロード数国内No1! 初心者でも使いやすい/
コインチェック

まとめ

本記事で解説したように、トランザクションとは、データベースをある状態から別の状態へと変更するために必要な複数の情報(具体的にはデータベースの変更指示)をひとつにまとめたもののことです。

トランザクション処理は、「すべて成功する」か「すべて失敗する」かのどちらかであり、処理が途中で停止すると、ひとつ前の状態にロールバックされます。仮想通貨におけるトランザクション処理も同様です。

仮想通貨はトランザクション処理が遅いという課題を抱えていますが、本記事でも紹介したライトニングネットワークやリップルのような技術・プロジェクトも出てきており、将来的にはスケーラビリティ問題が大きく改善されるかもしれません。

本サイトは情報提供を目的としたものであり、特定の商品、サービスについての売買の勧誘や売買の推奨を目的としたものではありません。
また、掲載内容は信頼できると思われる各種データをもとに作成されていますが、その正確性、完全性を保証するものではありません。
投資を行う際は、お客様ご自身の判断でなさるようお願いいたします。