企業向けスマートコントラクト「Quorum」って、Ethereumとどう違うの?:Ethereumではじめる“スマートコントラクト開発”(4)(1/2 ページ)
Ethereumをベースとしたスマートコントラクトプラットフォーム「Quorum」は企業向けに改良されている。サンプルで動かしつつ、どのように改良されているのかを探る。
超入門スマートコントラクト
「スマートコントラクト」は、契約の条件確認や履行などを自動で行えることから、ブロックチェーン技術を活用したアプリケーションプラットフォームの中でも研究開発が進み、注目されている技術です。
本連載では、スマートコントラクトの概念や仕組みを整理しつつ、DApps(Decentralized Applications:分散ノード上で実行されるアプリケーション)でのスマートコントラクトのコーディング方法、企業向けアプリケーション開発の実践方法について解説していきます。
今回は、Ethereumをベースとした企業向けスマートコントラクトプラットフォーム「Quorum」の紹介とサンプル動作環境の構築手順を説明します。
Quorumの概要
Quorumとは、JPモルガンが開発したオープンソースソフトウェア(OSS)であり、Ethereumをベースとした企業向けスマートコントラクトプラットフォームです。金融分野におけるエンタープライズ用途として開発され、Ethereumと互換性を持っています。Quorumは、Ethereumから主に下記の内容が改良されています。
許可型のネットワークモデル
Quorumでは、参加するノードを許可リストとして事前に定義することで、許可されたノードのみでネットワークを構成できます。仮に、許可リストにないノードがネットワークに参加しても、許可されたノードをピアとして認識できず、また許可されたノードからピアとして認識されず、実質的にネットワークに参加できない状況になります。
プライベートトランザクション
Ethereumでのトランザクションは、ネットワーク内の全ノードで実行され、実行結果も全ノードで更新されます。これを便宜上「パブリックトランザクション」と呼びます。
Quorumでは、パブリックトランザクションに加えて、「プライベートトランザクション」を実装しています。プライベートトランザクションとは、“実行するノードを指定した”トランザクションであり、トランザクションの実行結果は、指定されたノードにのみ保持されます。このプライベートトランザクションを活用することで、データの秘匿化が可能となります。
プライベートトランザクションにより、取引の当事者に該当するノードでのみトランザクションを実行することで、データは当事者間でしか共有されません。例えば、監査機関のノードを参加させて、「取引の当事者同士+監査機関」のノードでトランザクションを実行するルールにすることで、取引の当事者のノードには関係する取引データのみが記録され、監査機関のノードには全取引のデータが記録されることになります。
コンセンサスアルゴリズム
執筆時点での最新版では「Raft-based」と「Istanbul-BFT」というアルゴリズムが実装されています。
Raft-basedは、「Raftコンセンサスアルゴリズム」を実装したもので、信頼性のあるノードで構成された「BFT」(Byzantine Fault Tolerance)が不要なコンソーシアム型向けになっています。ノードは「leader」と「follower」という役割に分かれます。
Istanbul-BFTは、「Istanbul Byzantine Fault Tolerance」(GitHub)を実装したものです。ノードは「Proposer」と「Validator」という役割に分かれます。ブロックの作成はProposerの役割を持ったノードが行い、ネットワークにブロードキャストします。その後、Validatorの役割を持ったノードが検証し、承認が得られるとブロックが確定します。
なお、以前のQuorumは「Voting」(投票)というコンセンサスアルゴリズムが実装されていました。ブロックの作成は「block maker」の役割を持ったノードが行い、作成されたブロックはblock makerで署名され、その後ネットワークの他ノードに配布されます。そして「voter」の役割を持ったノードが検証していました。
いずれのアルゴリズムも、ネットワーク内の限られたノードでブロックを生成し、他ノードが検証する仕組みです。現在、アルゴリズムの処理性能の向上が図られています。
処理性能
Istanbul Byzantine Fault Tolerance(GitHub)によると、秒間400〜1200のトランザクションが処理可能とされています。ネットワークやコントラクトへの依存はあるものの、秒間数百のトランザクションは処理できると見込めるでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「Enterprise Ethereum」はなぜできた? 「Ethereum」のビジネス活用の問題点とは
「Ethereum」がブロックチェーン技術、スマートコントラクト技術の1つとして企業に注目されている。しかし、Ethereumをビジネスで活用するにはさまざまな課題がある。そこで今回は、「企業向けスマートコントラクト」の要件を考えてみたい。 - スマートコントラクトって何? 「競合との協業」という新たなビジネスの地平を開ける仕組みである理由とは
本連載では、「Ethereum」を使った契約の条件確認や履行などを自動で行う「スマートコントラクト」の開発方法を紹介していきます。第1回目は、スマートコントラクトとは、どのような仕組みで、どのような場面で使えるのかを紹介します。 - ブロックチェーン技術「Ethereum」とは何か、アプリのアーキテクチャはどう変わるのか
リクルートテクノロジーズの社内ラボで行っている、主に非金融領域に対するブロックチェーンの活用に向けたR&Dを紹介する連載。今回は、スクリプティング機能をより広汎に使える形にしたブロックチェーンの構築を目指したオープンソースソフトウェア「Ethereum」を利用し、「履歴書データベース」として実装した課程と、その結果を紹介。