What is ablockchain and how do they work?
SQL Server 2022 Ledger
参
考
4.
What is ablockchain and how do they work?
データ
ハッシュ
一つ前のブロックのハッシュ
SQL Server 2022 Ledger
参
考
5.
What is ablockchain and how do they work?
データ
From
To
Amount
SQL Server 2022 Ledger
参
考
6.
What is ablockchain and how do they work?
ハッシュ
・・・9bc34549d565d9505b287de0cd20ac77be1d3f2c・・・
SQL Server 2022 Ledger
参
考
7.
What is ablockchain and how do they work?
一つ前のブロックのハッシュ
前後関係性を安全に保つ
SQL Server 2022 Ledger
参
考
8.
What is ablockchain and how do they work?
① ② ③
ハッシュ:
1Z8F
一つ前ハッシュ:0000
ハッシュ:
6BQ1
一つ前ハッシュ: 1Z8F
ハッシュ:
3H4Q
一つ前ハッシュ: 6BQ1
SQL Server 2022 Ledger
参
考
9.
What is ablockchain and how do they work?
① ② ③
ハッシュ:
1Z8F
一つ前ハッシュ:0000
ハッシュ:
6BQ1
一つ前ハッシュ: 1Z8F
ハッシュ:
3H4Q
一つ前ハッシュ: 6BQ1
H62Y
SQL Server 2022 Ledger
参
考
10.
SQL Server 2022Ledger works
トランザクション1 (n) トランザクション2 (n) トランザクション3 (n)
Tran1の暗号化されたハッシュ
値がTran2と関連付け
+
Tran1の暗号化されたハッシュ
Tran2の暗号化されたハッシュ
値がTran3と関連付け
+
Tran2の暗号化されたハッシュ
データベースダイジェスト
不変ストレージ (Azure
Blob Storage) Or
Azure Confidential
Ledger
1ブロックに1Tranではなくて、
(n) Tranが含まれる。
データベースの検証
自動または手動
ダイジェスト比較
SQL Server 2022 Ledger
参
考
11.
Ledger テーブル -更新可能 と 追記専用
o 更新可能なLedgerテーブルは、更新と削除を可能にする標準の SQL テーブル
です
o 更新または削除された行の履歴は、履歴テーブルおよび照会しやすいLedger
ビューに保持されます
o 更新可能テーブルと履歴テーブルの整合性は、データベースLedgerからの暗号リ
ンクを通じて維持されます
o システムは定期的にデジタルレシートを、お客様が構成した信頼できるストレージ
サービスにアップロードします
o お客様はデジタルレシートを使用してデータの整合性を検証できます
o 追記専用Ledgerテーブルは、API での UPDATE/DELETE をブロックし、履歴
テーブルが必要なくなります
追加専用Ledger
テーブル
信頼できる
ストレージ
データベース Ledger
ブロック N ブロック N-1 ブロックN-2
更新可能な
Ledgerテーブル
履歴テーブル
Ledgerビュー
勘定残高の更新可能な Ledger テーブルの作成
CREATETABLE [Account].[Balance]
(
[CustomerID] INT NOT NULL PRIMARY KEY CLUSTERED,
[LastName] VARCHAR (50) NOT NULL,
[FirstName] VARCHAR (50) NOT NULL,
[Balance] DECIMAL (10,2) NOT NULL
)
WITH
(
SYSTEM_VERSIONING = ON,
LEDGER = ON
);
GO
15.
2 つの個別トランザクションに 4つのアカウントを追加
Tx1: 初期残高 $50 で Nick を追加
Tx2: John、 Joe 、Mary を追加
1. 各トランザクションは固有のトランザクショ
ン ID を持つ
2. Tx2 は 3 行を修正し、それぞれが
Ledger シーケンス番号で追跡
更新可能な Ledger テーブル
16.
Nick の残高を $50から $100 に更新
更新可能な Ledger テーブル ー Nick の残高は現在 $100
履歴テーブル ー Nick の期首残高を含む行の履歴値を表示
Ledger ビュー ー Nick の削除は更新として扱われ、その後に挿入として表示される
SQL Server Ledger(台帳)
自動ダイジェストの作成方法と自動ダイジェストを使ったデータ信頼性の確認
Azure Blob ストレージか、ADLS Gen2を作成する
sqldbledgerdigests という container を作成する
SQL Server 2022に、Azure Blob ストレージにアクセス
する資格情報を作成する
自動ダイジェストのエンドポイントを指定する
データを変更する
ダイジェストで信頼性を確認する
ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = 'your
endpoint'
GO
DECLARE @digest_locations NVARCHAR (MAX) =
(SELECT * FROM sys.database_ledger_digest_locations
FOR JSON AUTO, INCLUDE_NULL_VALUES)
SELECT @digest_locations as digest_locations
BEGIN TRY
EXEC
sys.sp_verify_database_ledger_from_digest_storage
@digest_locations;
SELECT 'Ledger verification succeeded.' AS Result
END TRY
BEGIN CATCH
THROW
END CATCH