Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Databaseの新機能 Blockchain Tableのご紹介

gakumura
January 28, 2021

Oracle Databaseの新機能 Blockchain Tableのご紹介

2021/1/28 Oracle Database Technology Nightで喋った内容
エンタープライズ領域でのブロックチェーン技術活用の文脈の中で、耐改ざん性、監査性を備えたデータベースが登場してきた背景と、そのようなデータベースを実現するOracle DatabaseのBlockchain Table機能について解説

gakumura

January 28, 2021
Tweet

More Decks by gakumura

Other Decks in Technology

Transcript

  1. Oracle Database新機能
    Blockchain Tableのご紹介
    中村 岳
    日本オラクル株式会社
    2021/1/28

    View full-size slide

  2. Safe harbor statement
    The following is intended to outline our general product direction. It is
    intended for information purposes only, and may not be incorporated into
    any contract. It is not a commitment to deliver any material, code, or
    functionality, and should not be relied upon in making purchasing decisions.
    The development, release, timing, and pricing of any features or functionality
    described for Oracle’s products may change and remains at the sole
    discretion of Oracle Corporation.
    Copyright © 2021 Oracle and/or its affiliates
    2

    View full-size slide

  3. 中村 岳
    Twitter @gakumura
    はてなブログ @gakumura
    …主にHyperledger Fabric関連
    • 現職:ソリューションエンジニア@日本オラクル
    • 担当:Oracle Blockchain Platform、Blockchain Table
    • 前職:金融決済系SIerでパッケージ開発
    • 好きなOS:AIX
    • 最近おすすめのマンガ:チェンソーマン(単行本派)
    Copyright © 2021 Oracle and/or its affiliates
    3

    View full-size slide

  4. • Blockchain Table登場の背景
    • Blockchain Tableのご紹介
    本日の内容
    Copyright © 2021 Oracle and/or its affiliates
    4

    View full-size slide

  5. Copyright © 2021 Oracle and/or its affiliates
    5
    Blockchain Table登場の背景
    ~エンタープライズ領域での「ブロックチェーン」の活用

    View full-size slide




  6. Copyright © 2021 Oracle and/or its affiliates
    6 Copyright © 2021 Oracle and/or its affiliates
    6

    View full-size slide

  7. 仮想通貨(暗号資産)の基盤として始まり、適用領域を拡大
    ブロックチェーン/DLTの活用
    Copyright © 2021 Oracle and/or its affiliates
    • 2008年にサトシ・ナカモトを名乗る人物が特定の管理者がいないネット
    ワーク上に分散した台帳上で管理されるビットコインという新たな通貨
    (を実現するシステム)に係る論文をネット上に発表
    • 仮想通貨を実現する基盤の特長に徐々に注目が集まり、
    より一般的な用途への応用が進み、
    「ブロックチェーン/DLT」の適用領域が拡大
    • エンタープライズ領域では「データ活用のための信頼できる企業間デー
    タ共有基盤」、「ビジネスプロセス効率化のための企業間ワークフロー
    基盤」としてユースケースが続々
    7

    View full-size slide

  8. ブロックチェーンの利用形態(ネットワーク)の分類
    Copyright © 2021 Oracle and/or its affiliates
    パブリック
    公開制のネットワークを
    不特定多数で運用
    コンソーシアム
    許可制のネットワークを
    複数組織で運用
    プライベート
    許可制のネットワークを
    単一組織で運用
    パーミッションレス← →パーミッションド
    エンタープライズ領域ではこちらが主
    8

    View full-size slide

  9. 「耐改ざん性、証跡性を持ったデータ」という特性のみを活用している
    Copyright © 2021 Oracle and/or its affiliates



    Copyright © 2021 Oracle and/or its affiliates
    9
    単一の組織内に閉じている
    分散/分権が前提
    9

    View full-size slide

  10. ブロックチェーンの利用形態(ネットワーク)の分類
    Copyright © 2021 Oracle and/or its affiliates
    パブリック
    公開制のネットワークを
    不特定多数で運用
    コンソーシアム
    許可制のネットワークを
    複数組織で運用
    プライベート
    許可制のネットワークを
    単一組織で運用
    パーミッションレス← →パーミッションド
    フォーカスは
    • データの持ち主でも改ざんできないこと
    • 改ざんされていないことを証明できること
    これらが実現できれば、使うのは「ブロックチェーン」/
    分散台帳技術でなくてもよい
    ⇨ブロックチェーンにインスパイアされた技術を
    備えた中央集権型データベースの活用にシフト
    10

    View full-size slide

  11. 11 Copyright © 2021 Oracle and/or its affiliates
    「分権」「分散」を実現するためのダウンサイドが伴う
    ブロックチェーン/DLTがDBと比較して一般に不得意としていること
    複雑な構造
    高度な検索
    • ブロックチェーンは、複雑な構造を持ったデータをリレーショナルデータ
    ベース(RDB)のようにうまく扱えるわけではない
    • 高度な検索や集計、分析などの処理も苦手としており、これらのために台
    帳データを外部のRDBに複製する必要が生じる場合が多い
    パフォーマンス
    • 「データベース」と比較した場合には「ブロックチェーン」の処理性能は
    数桁ほど違うレベルで遅い
    • 大量のトランザクション処理、高速なレスポンスが求められるユースケー
    スでは性能限界への留意と、設計の工夫が必要
    サイズの大きな
    データ
    • 同一データを複数ノードで持つためストレージ効率が悪い
    • ネットワークでやり取りしてコンセンサスを取ってから書き込む仕組み上、
    サイズの大きなデータを扱うと、大きな処理性能劣化が起こる

    View full-size slide

  12. Oracleのソリューション
    Copyright © 2021 Oracle and/or its affiliates
    パブリック
    公開制のネットワークを
    不特定多数で運用
    コンソーシアム
    許可制のネットワークを
    複数組織で運用
    プライベート
    許可制のネットワークを
    単一組織で運用
    パーミッションレス← →パーミッションド
    Oracle Database
    Blockchain Table
    BLOCKCHAIN
    Oracle
    Blockchain Platform
    12

    View full-size slide

  13. Hyperledger Fabricをベースにエンタープライズ利用向けPaaSとオンプレミスで提供
    • GUI


    • Oracle
    • State DB Berkeley DB
    Hyperledger Fabric Phantom Read
    • REST API
    • RDB
    Oracle Blockchain Platform
    Copyright © 2021 Oracle and/or its affiliates
    DC
    13

    View full-size slide

  14. 耐改ざん性を追加、監査性を強化した特別なデータベース・テーブル
    データベース上のレコードに耐改ざん性と監査性を付与
    • 追記オンリーの不変なデータ…テーブル所有者も特権ユーザも改ざん不能
    • ハッシュチェーンで行をリンク…整合性の検証、改ざんされていないことの証明が可能
    Oracle Databaseの一部として高度で多彩な機能とともに容易に利用可能
    • 他のテーブルと組み合わせたトランザクション
    • 容易にデータ統合、多様なBIツールを用いての分析
    • データベーストリガー、PL/SQLプログラムを利用したロジック表現
    • レプリケーション、バックアップなどの耐障害性/高可用性機能、
    アクセスコントロールなどのセキュリティ保護機能も併用可能
    ※19cではRU19.10アップデートおよび個別パッチ32431413を適用することで利用可能に。
    データベースの基本機能として含まれており追加ライセンスは不要(SE2でも利用可能)。
    Blockchain Table:Oracle Database 21c&19cで利用可能(※)
    Copyright © 2021 Oracle and/or its affiliates
    14
    BLOCKCHAIN

    View full-size slide

  15. Blockchain PlatformとBlockchain Table:それぞれの用途
    Copyright © 2021 Oracle and/or its affiliates
    対応する
    主要な
    ニーズ
    例となる
    ユースケース
    ▪ 複数の企業間で水平に確実かつリアルタ
    イムにデータを持ち寄り共有したい
    ▪ 企業をまたいだワークフローを信頼でき
    るかたちで実行したい
    ▪ 原材料~製造~輸送~小売までの一貫し
    たデータ持ち寄りによるサプライチェー
    ンの全体最適化
    ▪ スマートコントラクトによる取引約定~
    決済までの企業間ワークフローの
    自動化、効率化、迅速化
    ▪ 台帳上での価値交換
    分権/分散
    Oracle Blockchain Platform
    ▪ 法律上確実な保存が要求される契約情報
    や会計、財務データの保持
    ▪ 重要なアクセス情報や操作履歴などの
    システムログを監査証跡として保存
    ▪ データを外部犯行、内部犯行両面から保
    護し、セキュリティ確保
    ▪ 保存して以降、誰にも変更・削除できな
    いようデータを保持したい
    ▪ 監督機関、監査法人などに対し、改ざん
    されていないことを証明したい
    中央集権
    Oracle Database Blockchain Table
    15

    View full-size slide

  16. Copyright © 2021 Oracle and/or its affiliates
    16
    Oracle DatabaseのBlockchain Table機能

    View full-size slide

  17. 耐改ざん性を追加、監査性を強化した特別なデータベース・テーブル
    データベース上のレコードに耐改ざん性と監査性を付与
    • 追記オンリーの不変なデータ…テーブル所有者も特権ユーザも改ざん不能
    • ハッシュチェーンで行をリンク…整合性の検証、改ざんされていないことの証明が可能
    Oracle Databaseの一部として高度で多彩な機能とともに容易に利用可能
    • 他のテーブルと組み合わせたトランザクション
    • 容易にデータ統合、多様なBIツールを用いての分析
    • データベーストリガー、PL/SQLプログラムを利用したロジック表現
    • レプリケーション、バックアップなどの耐障害性/高可用性機能、
    アクセスコントロールなどのセキュリティ保護機能も併用可能
    ※19cではRU19.10アップデートおよび個別パッチ32431413を適用することで利用可能に。
    データベースの基本機能として含まれており追加ライセンスは不要(SE2でも利用可能)。
    Blockchain Table:Oracle Database 21c&19cで利用可能(※)
    Copyright © 2021 Oracle and/or its affiliates
    17
    BLOCKCHAIN

    View full-size slide

  18. データの完全性の担保、証明が求められるところ
    • セキュリティ上重要な記録の保存:
    • アプリケーションのアクセスログや監査ログ
    • 高セキュリティエリアへの入退室記録
    • 法律上確実な保存が要求される情報:
    • 従業員の出退勤記録
    • 企業の会計、財務のデータ
    • 見積、契約、請求や支払のやり取りに係るドキュメント
    • 内外からの攻撃に対してデータを保護:
    • 勘定系システム、決済系システムなどのトランザクションログ
    • 証券や各種アセットの所有権を管理する原簿
    • 種々の認定、証明のエビデンス保存:
    • 原産地証明、検査証、品質認証、etc.
    Blockchain Tableのユースケースの一例
    Copyright © 2021 Oracle and/or its affiliates
    18

    View full-size slide

  19. 開発と分析に最高の生産性を
    統合された マイクロサービス、イベント、REST, SaaS, 機械学習, CI/CD,
    ローコード
    あらゆるワークロードをサポート
    トランザクション, 分析, 機械学習, IoT, ストリーミング, ブロックチェーン
    あらゆるデータをサポート
    Relational, JSON, グラフ, 地理空間, テキスト, OLAP, XML, マルチメディア
    世界で唯一のコンバージドデータベース - インクラウドとオンプレミスの両方に対応
    オラクルデータベースのビジョン
    Copyright © 2021 Oracle and/or its affiliates
    19
    19

    View full-size slide

  20. ブロックチェーン/DLT基盤や専用データベースと比較して……
    利用のハードルが低い
    • 一般的なOracle Databaseのスキルで十分使いこなせるため、学習コストが低い
    • 通常のテーブルとの使い勝手の差異が小さく、アプリケーション透過的な利用が可能
    • 通常テーブルからの乗り換えに必要な改修はゼロ~最小限
    アプリケーション側の負担が小さい
    • ふつうアプリケーションはイミュータブル(変更/削除しない)データのみを扱うわけではない
    • イミュータブルデータ専用のデータベースを使う場合、
    アプリケーションは少なくともふたつのデータベースを扱わなくてはならない
    • 同一DB上で通常のテーブルとBlockchain Tableを扱えるためトランザクション、整合性担保が容易
    データ分析、データ統合が容易
    • Blockchain Table上でそのまま集計、分析が可能
    • 他テーブル上のデータとのJOINやVIEW、多様なデータ統合ツールやBIツールも利用可能
    処理性能
    • Oracle Databaseの様々な処理性能向上手段を適用可能(例:Exadataを利用)
    Oracle Databaseの1テーブルとして使えることのメリット
    Copyright © 2021 Oracle and/or its affiliates
    20

    View full-size slide

  21. アプリケーションの負担を減らし、分析のための余分な手間も削減
    単一用途データベース vs Oracle Database
    Copyright © 2021 Oracle and/or its affiliates
    21
    App
    BI
    DIツール
    イミュータブル
    データ専用DB
    (又はブロックチェーン/DLT)
    通常データ用
    DB
    トランザクション
    トランザクション
    複製
    複製
    分析
    分析用
    DB
    整合性担保は
    アプリの責任
    単一用途データベースの場合 Oracle Databaseの場合
    App
    BI
    分析のための
    データ統合に
    余分な手間
    トランザクション
    Oracle
    Database
    分析
    DB機能で
    整合性担保
    同一DB上で
    容易に分析

    View full-size slide

  22. CREATE BLOCKCHAIN TABLE + 3つの必須句
    Blockchain Tableの作成
    Copyright © 2021 Oracle and/or its affiliates
    22
    CREATE BLOCKCHAIN TABLE table_name(columns,constraints)
    NO DROP [ UNTIL number DAYS IDLE ]
    NO DELETE [ LOCKED ] | NO DELETE UNTIL number DAYS AFTER INSERT [LOCKED]
    HASHING USING sha2_512 VERSION v1
    テーブルのDROPに対しての制約を記述する句。
    • UNTIL n DAYS IDLEを付けておいた場合、テーブル上の最新の行がINSERT後n日経っていないと
    DROPできない(→付けない場合は常にDROP不可)。nの最小は0(16以上の指定を推奨)。
    • 後からALTER TABLEでUNTIL~~は付けられない&nを減らせない(制約を緩められない)。
    行のDELETEに対しての制約を記述する句。
    • UNTIL n DAYS AFTER INSERTを付けておいた場合、INSERT後n日経っていないとDELETEできない
    (→付けない場合は常にDELETE不可)。nの最小は16。
    • 後からALTER TABLEでUNTIL~~は付けられない&nを減らせない(制約を緩められない)。
    • LOCKEDを付けておくとnを増やすことも不能。
    利用するハッシュアルゴリズムとデータフォーマットを記述する句。現状、値は固定。

    View full-size slide

  23. シンプルなCREATE BLOCKCHAIN TABLEの例
    Copyright © 2021 Oracle and/or its affiliates
    23
    CREATE BLOCKCHAIN TABLE bank_ledger (bank VARCHAR2(128), deposit_date DATE,
    deposit_amount NUMBER)
    NO DROP UNTIL 31 DAYS IDLE
    NO DELETE LOCKED
    HASHING USING "SHA2_512" VERSION "v1";
    • NO DROP UNTIL 31 DAYS IDLE
    …テーブル上の最新の行がINSERT後31日経っていないとDROPできない
    • NO DELETE LOCKED
    …行はDELETEできない

    View full-size slide

  24. 追記オンリーのテーブルで、イミュータブル/不変なデータを保持
    • テーブルのDROPの制約(前述の通りn日~無制限の保護期間を設定可能)
    • テーブルDROPは行のINSERT前なら常に可能(誤ってテーブル作成した場合すぐなら消せる)
    • 行のDELETEの制約(前述の通りn日~無制限の保持期間を設定可能)
    • データ量を削減したい場合、適切な保持期間を設定しておいたうえで、
    保持期間を過ぎた行を整合性を検証した上で(必要に応じて外部にアーカイブしつつ)削除する
    • 保持期間を過ぎた行の一括削除用PL/SQLパッケージファンクション
    DBMS_BLOCKCHAIN_TABLE.delete_expired_rows()
    • 行のUPDATEとMERGEが不可
    • テーブルのTRUNCATEが不可
    • パーティションのDROPが不可
    • カラムの追加、削除および名前変更が不可
    • データ型の変更や一部の長さ、精度の変更、NULL制約変更も不可
    • Blockchain Tableの通常のテーブルへの変換、およびその逆の変換は不可
    Blockchain Tableの特性①:データの削除、変更を制約
    Copyright © 2021 Oracle and/or its affiliates
    24
    BLOCKCHAIN

    View full-size slide

  25. ハッシュ値によるデータの検証可能性により、テーブルの中で完結した証跡性を提供
    Blockchain Tableの特性②:ハッシュチェーン
    Copyright © 2021 Oracle and/or its affiliates
    25
    • 行のINSERT時、自動的に
    {行データ+前の行のハッシュ値}
    に対して計算したハッシュ値を隠しカラムに保持
    • ある行のハッシュ値はその前の行のハッシュ値に依存
    し、その前の行のハッシュ値はその前の前の行のハッ
    シュ値に依存し…
    →ハッシュチェーンのつながりで改ざんが検知可能に
    • ハッシュチェーンと行データを突合しながら辿ってい
    くことで、整合性(INSERT以降、行データが変更、削
    除されていないこと)の検証が可能
    • 検証用PL/SQLパッケージファンクション
    DBMS_BLOCKCHAIN_TABLE.verify_rows()
    ID User Value
    1 Tom 500
    2 Carol 176
    3 Steve 500
    4 John 176
    5 Mike 332
    6 Sarah 632
    7 Eve 25
    8 Prisha 850
    Hash
    ADSJS
    %SHS
    SH@1
    DHD3
    *EGG
    AH11
    LIO$
    SHS4

    View full-size slide

  26. データのライフサイクル全体をカバーするための大がかりな仕掛けが必要
    テーブル所有者も特権ユーザーも変更不能な追記オンリーのテーブル
    • Database Vaultで特権ユーザーを含めた全ユーザーのデータ更新、削除を禁止することは可能
    • Database Vaultの設定変更の権限管理も重要
    • データベース運用全体への影響がある
    INSERT以降、データが変更も削除もされていないことを証明
    • 上述の追記オンリーの方法を確実に運用していることを記録する方法がひとつ
    • Unified Auditにより確実に記録される監査ログを用いる方法もアリ
    • 「やってない」ことを証明するためにはログ全量の保管が必要
    • 監査ログはAudit Vaultを利用し、改ざん、削除されないよう確実に保全
    • 監査ログをアーカイブする際には誰にも改ざんできないところに保管する
    • いずれの方法でも証明するには記録方法が適切か、記録の保管方法が適切かまでを含めた全体の監査
    が必要になる
    →Blockchain Tableはこれらを実現するにはシンプルで容易な選択肢
    既存の機能でBlockchain Tableと同等の特性を実現しようとすると…
    Copyright © 2021 Oracle and/or its affiliates
    26

    View full-size slide

  27. • Blockchain Tableはシンプルで強力だが、セキュリティの中でカバーする領域はごく限定的
    • データセキュリティのCIAのうち、完全性(Integrity)のみにフォーカス
    • 機密性(Confidentiality)、可用性(Availability)は他の機能でカバー
    • 組み合わせることでより効果を発揮
    • 例:Blockchain Tableで不正な変更、削除を防ぎつつ
    • Database Vaultで、参照アクセスも最低限のユーザーに限定する
    • Audit Vaultで、参照アクセスの監査ログを確実に取得し、不正がないかチェックする
    • Integrityについても、要求によっては他の機能のほうが向いている場合も
    • コマンドごと、ユーザーごとの制約をより細かい粒度で管理したい→Database Vault
    • テーブル単位ではなく行や列ごとに制約をかけたい→Virtual Private Database(VPD)
    他のセキュリティ機能との組み合わせ、使い分け
    Copyright © 2021 Oracle and/or its affiliates
    27

    View full-size slide

  28. • セキュリティ担保や監査上、証跡として利用
    するログ(例:入退室ログ、アクセスログ)
    に耐改ざん性を付与
    • 保存先を変えるだけで活用可能
    • ログファイル→Blockchain Table
    • 通常のテーブル→Blockchain Table
    • アプリケーション側の変更はゼロ~最小限
    • 元々データベースに保存している場合は保
    存先のテーブルをBlockchain Tableとして
    作り直すだけでOK
    • 参照、検索、分析も通常のテーブルにある
    レコードの場合と同様の使い勝手
    • コンプライアンスに関わる様々な業務データ
    の保存にも活用可能(例:会計や財務、契約
    などの情報)
    • ブロックチェーン台帳と違い、大きなデー
    タサイズ、複雑なデータモデルにも対応可
    • JSON形式で業務データを保存
    • あとからのカラムの追加削除が不能なた
    め、JSON形式を上手に使うのが実践的
    • (21cバージョン以降では)21cで追加され
    たJSON形式カラムを利用可能
    • CLOB、BLOB形式でドキュメントファイルや
    画像ファイルを保存
    • 紙原本保存の慣行を不要に
    Blockchain Tableを活用する際の実装イメージ
    Copyright © 2021 Oracle and/or its affiliates
    28
    重要なログの保存先をBC Tableに変更 様々な業務データ、ドキュメントを保存

    View full-size slide

  29. 利用できないデータ型
    • ROWID、UROWID、LONG、object type、REF、varray、nested table、
    TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE
    利用できない機能
    • UPDATEイベントで発動するBEFORE ROWトリガーの定義
    • ダイレクトパスロード
    • パラレルDMLでのデータインサート
    • Oracle Virtual Private Database(VPD)ポリシーの作成
    • XAトランザクションの使用
    Blockchain Tableのその他の制約
    Copyright © 2021 Oracle and/or its affiliates
    29

    View full-size slide

  30. • 【公式ブログ】Blockchain TableによるOracle Databaseのコンバージドデータベースの拡張
    …Blockchain Tableの技術的な特長およびユースケースの紹介記事
    https://blogs.oracle.com/oracle4engineer/blockchain-table
    • 【公式ドキュメント】 Oracle Database 21cドキュメントのBlockchain Tableについての箇所
    https://docs.oracle.com/en/database/oracle/oracle-database/21/admin/managing-tables.html#GUID-
    43470B0C-DE4A-4640-9278-B066901C3926
    • 【ブログ】Oracle CloudでOracle Database 20c(プレビュー)のBlockchain Tableを使ってみた話
    …Blockchain Tableを作成し、基本的な操作をテスト
    https://miyacle.com/2020/07/oracle-cloud%E3%81%A7oracle-database-
    20c%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AEblockchain-
    table%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E8%A9%B1/
    • 【ブログ】Oracle CloudのAlways FreeのATPのAPEXを使って作った我が家の体重管理アプリを、Blockchain
    Tablesで改ざんできないようにした…Blockchain Tableを作成し、APEXで操作
    https://qiita.com/maato/items/4a43841132074aa35d81
    • 【ブログ】21cのブロックチェーン 表を使ってみる
    …Blockchain TableにネイティブJSON型(21cで追加)でデータを保存し、APEXから表示
    https://apexugj.blogspot.com/2020/12/blockchain-table-with-json.html
    Blockchain Tableについての参考Webサイト
    Copyright © 2021 Oracle and/or its affiliates
    30

    View full-size slide