ブロックチェーン
ブロックチェーン表のユーザー・チェーン
以前のバージョンのブロックチェーン表では、システム・チェーンのみがサポートされていました。ブロックチェーン表に挿入される新しい行ごとに、システム・チェーン(インスタンス当たり32チェーンのいずれか)がOracleによってランダムに選択されます。
ユーザー・チェーンは、NUMBER
、CHAR
、VARCHAR2
およびRAW
型の最大3つのユーザー定義列のセットに基づく行のチェーンです。たとえば、様々な口座に関連付けられた銀行取引(引出し、預入れ、振替え)を追跡するために作成されたブロックチェーン表について考えてみます。口座番号のブロックチェーン表にACCOUNTNO
という列があるとします。各取引は、いくつかの口座番号について、このブロックチェーン表に新しいエントリを挿入します。ユーザー・チェーンは、ACCOUNTNO
内のすべての一意の値に関連付けることができます。合計で100個の異なる口座番号がある場合、最大で100個のユーザー・チェーンが存在する可能性があります。その後、特定のACCOUNTNO
のチェーンでのみ検証プロシージャを実行して、より優れたデータ分離を実現できます。 この機能を使用すると、バージョン列に基づいてブロックチェーン表の行のユーザー・チェーンを、システム・チェーン間で分割されている場合でも作成できます。
複数のユーザー・チェーンにより、ブロックチェーン表とその検証手順を適用する柔軟性が向上し、アプリケーションで改ざんされにくい表を簡単に利用できるようになります。
ドキュメントの表示に関する項
ブロックチェーン表の行バージョン
ブロックチェーン表の行バージョン機能を使用すると、ユーザー定義列のセットに対応するブロックチェーン表内に保持されている行の複数の履歴バージョンを保持できます。ブロックチェーン表の上部にあるビュー<bctable>_last$
を使用すると、最新バージョンの行のみを表示できます。
この機能により、アプリケーションで改ざんされにくいブロックチェーン表を使用するときに行バージョニングを保証できます。
ドキュメントの表示に関する項
ブロックチェーン表ログ履歴
フラッシュバック・データ・アーカイブの履歴表がブロックチェーン表になりました。この機能を使用すると、1つ以上の通常のユーザー表に対する変更を、フラッシュバック・データ・アーカイブの一部としてOracleデータベースによって保守されるブロックチェーン表で追跡できます。通常の表内の各変更は、ブロックチェーン表によって管理される暗号化ハッシュ・チェーン内の個別の行として、ブロックチェーン・ログ履歴表に追加されます。フラッシュバック・データ・アーカイブのブロックチェーン・ログ履歴表のデータとチェーンの整合性を検証するには、組込みの検証プロシージャ(DBMS_BLOCKCHAIN_TABLE.verify_rows
)を使用するか、外部の検証を使用します。これには、https://github.com/oracle/blockchain-table-samples
に用意されているサンプルが示す継続的な検証プロセスが含まれています。
この機能を使用すると、暗号的にセキュアで検証可能な方法で、通常のユーザー表に対する変更を記録できます。
ドキュメントの表示に関する項
ブロックチェーン表および不変表でのユーザー列の追加および削除
この機能により、ブロックチェーン表および不変表の発展が可能になります。つまり、暗号ハッシュ・チェーンの継続のために削除された列のデータを含め、現在のデータを維持しながら列を追加および削除できます。
アプリケーションの発展に伴い、列を追加または削除して既存の表を変更する必要がある場合があります。このリリースでは、以前に作成したブロックチェーン表または不変表の列を簡単に追加または削除できます。列の削除前の行は、暗号ハッシュ・チェーンの整合性を維持し、検証手順が表全体で機能できるように、これらの列のデータを保持します。
ドキュメントの表示に関する項
ブロックチェーン表の副署
行の署名時にデータベース副署をリクエストできます。副署とそのメタデータを行に記録するだけでなく、副署とsigned_bytes
がコール元に返されます。その後、コール元は、非拒否のために、Oracle Blockchain Platformなどの別のデータ・ストアに副署およびsigned_bytes
を保存できます。
副署によって、データがブロックチェーン表に安全に格納されたという追加の保証をユーザーに提供できます。
ドキュメントの表示に関する項
ブロックチェーン表の代理署名者
代理人は、プライマリ・ユーザーが挿入した行に署名することを許可する代替ユーザーです。 この機能を使用すると、代理人は、別のユーザーにかわって不変表またはブロックチェーン表の行に署名できます。代理人の署名は、代理人の証明書の公開キーを使用して署名を検証できる場合にのみ受け入れられ、その署名はディクショナリ表に追加されています。
代理署名者は、ユーザーが作成した行に署名できず、代理人を信頼する場合に使用できます。
ドキュメントの表示に関する項
ブロックチェーン表および不変表に対して長いアイドル保持時間を設定するために必要な新しい特別な権限
アイドル保持が十分に大きい値に設定されているブロックチェーン表または不変表は、表の最新の行が非常に古くなるまで削除できません。これにより、ディスク領域の枯渇攻撃を防ぐために必要に応じてブロックチェーン/不変表を削除する機能が制限されます。したがって、表のアイドル保持を大きな値に設定する操作は、新しいTABLE RETENTION
システム権限の付与によって特権ユーザーに制限されます。アイドル保持のしきい値は構成可能で、新しい権限BLOCKCHAIN_TABLE_RETENTION_THRESHOLD
を要求する時期を指定します。
長い保持期間を指定し、削除できない大量のデータを挿入してブロックチェーン表または不変表を作成する機能は、ディスク領域の枯渇によるサービス拒否攻撃のベクトルとなる可能性があります。このリスクを軽減するために、特別な権限が導入されました。この権限を付与されたユーザーのみが、構成可能なしきい値レベルを超えるアイドル保持を設定できます。
ドキュメントの表示に関する項