Verifikasi data di Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Verifikasi data di Amazon QLDB

Dengan Amazon QLDB, Anda dapat mempercayai bahwa riwayat perubahan pada data aplikasi Anda akurat. QLDB menggunakan log transaksional yang tidak dapat diubah, yang dikenal sebagai jurnal, untuk penyimpanan data. Jurnal melacak setiap perubahan pada data komitmen Anda dan mempertahankan riwayat perubahan yang lengkap dan dapat diverifikasi dari waktu ke waktu.

QLDB menggunakan fungsi hash SHA-256 dengan model berbasis pohon Merkle untuk menghasilkan representasi kriptografi jurnal Anda, yang dikenal sebagai intisari. Intisari bertindak sebagai tanda tangan unik dari seluruh riwayat perubahan data Anda pada suatu titik waktu. Anda menggunakan intisari untuk memverifikasi integritas revisi dokumen Anda relatif terhadap tanda tangan tersebut.

Jenis data apa yang dapat Anda verifikasi di QLDB?

Dalam QLDB, setiap buku besar memiliki tepat satu jurnal. Jurnal dapat memiliki banyak untaian, yang merupakan partisi jurnal.

catatan

QLDB saat ini mendukung jurnal dengan untai tunggal saja.

Blok adalah objek yang berkomitmen pada untaian jurnal selama transaksi. Blok ini berisi objek entri, yang mewakili revisi dokumen yang dihasilkan dari transaksi. Anda dapat memverifikasi revisi individu atau seluruh blok jurnal di QLDB.

Diagram berikut menggambarkan struktur jurnal ini.

Diagram struktur jurnal Amazon QLDB menunjukkan satu set blok rantai hash yang membentuk untai, dan nomor urut dan hash dari setiap blok.

Diagram menunjukkan bahwa transaksi dilakukan pada jurnal sebagai blok yang berisi entri revisi dokumen. Ini juga menunjukkan bahwa setiap blok dirantai hash ke blok berikutnya dan memiliki nomor urut untuk menentukan alamatnya di dalam untai.

Untuk informasi tentang konten data dalam blok, lihatIsi jurnal di Amazon QLDB.

Apa arti integritas data?

Integritas data dalam QLDB berarti bahwa jurnal buku besar Anda sebenarnya tidak dapat diubah. Dengan kata lain, data Anda (khususnya, setiap revisi dokumen) berada dalam keadaan di mana berikut ini benar:

  1. Itu ada di lokasi yang sama di jurnal Anda tempat pertama kali ditulis.

  2. Itu belum diubah dengan cara apa pun sejak ditulis.

Bagaimana cara kerja verifikasi?

Untuk memahami cara kerja verifikasi di Amazon QLDB, Anda dapat memecah konsep menjadi empat komponen dasar.

Hashing

QLDB menggunakan fungsi hash kriptografi SHA-256 untuk membuat nilai hash 256-bit. Hash bertindak sebagai tanda tangan unik dan panjang tetap dari jumlah data input yang sewenang-wenang. Jika Anda mengubah bagian mana pun dari input—bahkan satu karakter atau bit—maka hash keluaran berubah sepenuhnya.

Diagram berikut menunjukkan bahwa fungsi hash SHA-256 menciptakan nilai hash yang benar-benar unik untuk dua dokumen QLDB yang berbeda hanya dengan satu digit.

Diagram yang menunjukkan bahwa fungsi hash kriptografi SHA-256 menciptakan nilai hash yang benar-benar unik untuk dua dokumen QLDB yang berbeda hanya dengan satu digit.

Fungsi hash SHA-256 adalah salah satu cara, yang berarti bahwa secara matematis tidak layak untuk menghitung input ketika diberi output. Diagram berikut menunjukkan bahwa tidak layak untuk menghitung dokumen QLDB masukan ketika diberi nilai hash output.

Diagram yang menunjukkan bahwa tidak layak untuk menghitung dokumen QLDB masukan ketika diberi nilai hash keluaran.

Input data berikut di-hash di QLDB untuk tujuan verifikasi:

  • Revisi dokumen

  • Pernyataan PartiQL

  • Entri revisi

  • Blok jurnal

Digest

Intisari adalah representasi kriptografi dari seluruh jurnal buku besar Anda pada suatu titik waktu. Sebuah jurnal hanya ditambahkan, dan blok jurnal diurutkan dan dirantai hash mirip dengan blockchain.

Anda dapat meminta intisari untuk buku besar kapan saja. QLDB menghasilkan intisari dan mengembalikannya kepada Anda sebagai file keluaran aman. Kemudian Anda menggunakan intisari itu untuk memverifikasi integritas revisi dokumen yang dilakukan pada titik waktu sebelumnya. Jika Anda menghitung ulang hash dengan memulai dengan revisi dan diakhiri dengan intisari, Anda membuktikan bahwa data Anda belum diubah di antaranya.

Pohon Merkle

Seiring bertambahnya ukuran buku besar Anda, semakin tidak efisien untuk menghitung ulang rantai hash penuh jurnal untuk verifikasi. QLDB menggunakan model pohon Merkle untuk mengatasi inefisiensi ini.

Pohon Merkle adalah struktur data pohon di mana setiap simpul daun mewakili hash dari blok data. Setiap node non-daun adalah hash dari node anaknya. Umumnya digunakan dalam blockchain, pohon Merkle membantu Anda memverifikasi kumpulan data besar secara efisien dengan mekanisme bukti audit. Untuk informasi lebih lanjut tentang pohon Merkle, lihat halaman Wikipedia pohon Merkle. Untuk mempelajari lebih lanjut tentang bukti audit Merkle dan untuk contoh kasus penggunaan, lihat Cara Kerja Bukti Log di situs Transparansi Sertifikat.

Implementasi QLDB dari pohon Merkle dibangun dari rantai hash penuh jurnal. Dalam model ini, node daun adalah kumpulan semua hash revisi dokumen individual. Simpul akar mewakili intisari seluruh jurnal pada titik waktu.

Menggunakan bukti audit Merkle, Anda dapat memverifikasi revisi dengan memeriksa hanya sebagian kecil dari riwayat revisi buku besar Anda. Anda melakukan ini dengan melintasi pohon dari simpul daun tertentu (revisi) ke akarnya (intisari). Sepanjang jalur traversal ini, Anda secara rekursif melakukan hash pasangan node saudara kandung untuk menghitung hash induknya sampai Anda berakhir dengan intisari. Traversal ini memiliki kompleksitas waktu log(n) node di pohon.

Bukti

Bukti adalah daftar urutan hash node yang dikembalikan QLDB untuk intisari dan revisi dokumen tertentu. Ini terdiri dari hash yang diperlukan oleh model pohon Merkle untuk merantai hash simpul daun yang diberikan (revisi) ke hash root (intisari).

Mengubah data yang berkomitmen antara revisi dan intisari merusak rantai hash jurnal Anda dan membuatnya tidak mungkin untuk menghasilkan bukti.

Contoh verifikasi

Diagram berikut mengilustrasikan model pohon hash Amazon QLDB. Ini menunjukkan satu set hash blok yang menggulung ke simpul akar atas, yang mewakili intisari untai jurnal. Dalam buku besar dengan jurnal untai tunggal, simpul akar ini juga merupakan intisari dari seluruh buku besar.

Diagram pohon hash Amazon QLDB untuk satu set hash blok dalam untai jurnal.

Misalkan node A adalah blok yang berisi revisi dokumen yang hash ingin Anda verifikasi. Node berikut mewakili daftar hash yang diurutkan yang disediakan QLDB dalam bukti Anda: B, E, G. Hash ini diperlukan untuk menghitung ulang intisari dari hash A.

Untuk menghitung ulang intisari, lakukan hal berikut:

  1. Mulailah dengan hash A dan sambungkan dengan hash B. Kemudian, hash hasilnya untuk menghitung D.

  2. Gunakan D dan E untuk menghitung F.

  3. Gunakan F dan G untuk menghitung intisari.

Verifikasi berhasil jika intisari yang dihitung ulang sesuai dengan nilai yang diharapkan. Mengingat hash revisi dan intisari, tidak layak untuk merekayasa balik hash sebagai bukti. Oleh karena itu, latihan ini membuktikan bahwa revisi Anda memang ditulis di lokasi jurnal ini relatif terhadap intisari.

Bagaimana redaksi data memengaruhi verifikasi?

Di Amazon QLDB, DELETE sebuah pernyataan hanya secara logis menghapus dokumen dengan membuat revisi baru yang menandainya sebagai dihapus. QLDB juga mendukung operasi redaksi data yang memungkinkan Anda menghapus revisi dokumen yang tidak aktif secara permanen dalam riwayat tabel.

Operasi redaksi hanya menghapus data pengguna dalam revisi yang ditentukan, dan membiarkan urutan jurnal dan metadata dokumen tidak berubah. Setelah revisi disunting, data pengguna dalam revisi (diwakili oleh data struktur) digantikan oleh bidang baru. dataHash Nilai bidang ini adalah hash Amazon Ion dari data struktur yang dihapus. Untuk informasi lebih lanjut dan contoh operasi redaksi, lihatMenyunting revisi dokumen.

Akibatnya, buku besar mempertahankan integritas data secara keseluruhan dan tetap dapat diverifikasi secara kriptografis melalui operasi API verifikasi yang ada. Anda masih dapat menggunakan operasi API ini seperti yang diharapkan untuk meminta digest (GetDigest), meminta bukti (GetBlockatau GetRevision), dan kemudian menjalankan algoritme verifikasi menggunakan objek yang dikembalikan.

Menghitung ulang hash revisi

Jika Anda berencana untuk memverifikasi revisi dokumen individual dengan menghitung ulang hash, Anda harus memeriksa secara kondisional apakah revisi telah dihapus. Jika revisi telah dihapus, Anda dapat menggunakan nilai hash yang disediakan di bidang. dataHash Jika tidak disunting, Anda dapat menghitung ulang hash dengan menggunakan bidang. data

Dengan melakukan pemeriksaan bersyarat ini, Anda dapat mengidentifikasi revisi yang disunting dan mengambil tindakan yang sesuai. Misalnya, Anda dapat mencatat peristiwa manipulasi data untuk tujuan pemantauan.

Memulai dengan verifikasi

Sebelum Anda dapat memverifikasi data, Anda harus meminta intisari dari buku besar Anda dan menyimpannya untuk nanti. Setiap revisi dokumen yang dilakukan sebelum blok terbaru yang dicakup oleh intisari memenuhi syarat untuk verifikasi terhadap intisari tersebut.

Kemudian, Anda meminta bukti dari Amazon QLDB untuk revisi yang memenuhi syarat yang ingin Anda verifikasi. Dengan menggunakan bukti ini, Anda memanggil API sisi klien untuk menghitung ulang intisari, dimulai dengan hash revisi Anda. Selama intisari yang disimpan sebelumnya diketahui dan dipercaya di luar QLDB, integritas dokumen Anda terbukti jika hash intisari yang dihitung ulang cocok dengan hash intisari yang disimpan.

penting
  • Apa yang secara khusus Anda buktikan adalah bahwa revisi dokumen tidak diubah antara waktu Anda menyimpan intisari ini dan saat Anda menjalankan verifikasi. Anda dapat meminta dan menyimpan intisari segera setelah revisi yang ingin Anda verifikasi nanti dilakukan ke jurnal.

  • Sebagai praktik terbaik, kami menyarankan Anda meminta intisari secara teratur dan menyimpannya jauh dari buku besar. Tentukan frekuensi yang Anda minta intisari berdasarkan seberapa sering Anda melakukan revisi di buku besar Anda.

    Untuk posting AWS blog terperinci yang membahas nilai verifikasi kriptografi dalam konteks kasus penggunaan yang realistis, lihat Verifikasi kriptografi dunia nyata dengan Amazon QLDB.

Untuk step-by-step panduan tentang cara meminta intisari dari buku besar Anda dan kemudian memverifikasi data Anda, lihat berikut ini: