Proovik
Verifikator publik · PVK-PROOF/1

Cara memeriksa bukti Proovik tanpa memercayai Proovik

Anda memerlukan berkas buktinya (atau PDF sertifikatnya) dan salinan dokumen asli Anda. Tidak ada yang diunggah: sidik jarinya dihitung di peramban Anda. Di bawah ini, spesifikasi lengkapnya, langkah demi langkah dan dengan nilai-nilai nyata.

Versi 1 Jaringan: Kaspa mainnet Verifikator rujukan: 248 baris Python, tanpa dependensi
Perkakas

Verifikasi sebuah bukti secara daring

Periksa sebuah sertifikat di sini dengan mesin yang sama seperti yang diuraikan di bawah. Dokumennya tidak keluar dari perangkat Anda: SHA-256-nya dihitung di peramban Anda dan hanya sidik jarinya yang dikirim. Hash-nya Anda sendiri yang menyediakan, tidak pernah diambil dari berkas bukti. Jika Anda menyeret PDF sertifikatnya, paket bukti yang terlampir diekstrak di peramban Anda dan PDF-nya pun tidak dikirim.

1 · Berkas bukti

2 · Dokumen asli

Verifikator tidak pernah mengambil hash dari berkas bukti: Andalah yang menyediakannya.

Paket dan hash-nya dikirim ke POST /api/verify/proof. Tanpa akun. Batas: 120 verifikasi per jam untuk tiap IP.

Tercetak pada sertifikat PDF dan tampil di penjelajah Kaspa.

Anda dapat menghitungnya dengan menyeret dokumennya di tab satunya: nilainya dipakai bersama.

Mode ini menyusun ulang paketnya dengan menghubungi api.kaspa.org. Kaspa hanya menyajikan header lengkap selama sekitar 40 jam setelah penambatan: lewat tenggat itu, mata rantai 3 dan 4 tidak dapat dihitung ulang dan putusannya akan Tidak konklusif, tidak pernah “Terbukti”. Untuk verifikasi lengkap, gunakan berkas bukti yang direkam pada saat itu.

GET /api/verify/proof/{txid}?hash=…. Batas: 30 per jam untuk tiap IP (karena mengakses jaringan).

Putusan ·

Terbukti Tidak konklusif Tidak terbukti

Keempat mata rantainya sesuai: dokumen dengan SHA-256 ini sudah ada ketika blok yang disebutkan ditambang. Ingat apa yang tidak dibuktikan oleh bukti ini: kepengarangan maupun kebenaran isinya.

Yang dapat dihitung ulang memang sesuai, tetapi ada data yang kurang (biasanya header blok lengkap, di luar jendela pemangkasan) untuk menutup rantainya. Ini bukan kegagalan buktinya: ini verifikasi parsial. Dengan berkas bukti yang direkam pada saat itu, atau dengan paket bukti yang lengkap, verifikasinya dapat dituntaskan.

Setidaknya satu mata rantai tidak sesuai dengan hash yang diberikan. Yang paling umum: dokumennya bukan persis dokumen yang disegel (satu byte berbeda sudah mengubah SHA-256) atau berkas buktinya bukan milik dokumen ini. Periksa detail tiap mata rantai.

Lihat transaksinya di jaringan
dokumen
txid
block_hash
jaringan
mode
header
terverifikasi

Mata rantainya, satu per satu

Peringatan

Arti tiap mata rantai

Cakupan buktinya

Apa persisnya yang diklaim

Ketepatan di sini lebih penting daripada kefasihan, karena dari situlah bergantung apakah bukti ini bertahan dalam pemeriksaan silang.

Yang dibuktikan oleh bukti ini

Bahwa sederet byte yang SHA-256-nya bernilai tertentu telah dimasukkan ke dalam sebuah transaksi jaringan Kaspa, bahwa transaksi itu terikat di dalam header sebuah blok, dan bahwa atas header tersebut —yang memuat sebuah stempel waktu— telah dijalankan bukti kerja yang sah. Karena stempel waktu itu berada di dalam data yang menjadi objek kerja tersebut, mengubahnya membatalkan kerja itu. Tanggalnya bukan pernyataan siapa pun: ia adalah besaran fisik yang sudah terpakai.

Yang TIDAK dibuktikan oleh bukti ini

Siapa yang membuat dokumen itu, benar tidaknya isinya, berhak tidaknya penulisnya membuatnya, maupun bahwa dokumen itu tidak ada sebelumnya. Yang dibuktikan adalah keberadaan lebih dahulu pada suatu momen, bukan kepengarangan atau kebenaran. Proovik tidak pernah melihat dokumennya: ia hanya menerima hash-nya.

Tentang hash

SHA-256 adalah fungsi ringkas 256 bit. Menemukan dua dokumen berbeda dengan ringkasan yang sama belum pernah tercapai dan upaya yang diperkirakan melampaui kemampuan komputasi umat manusia. Karena itu, jika ringkasan dokumen yang diajukan cocok dengan yang ada di rantai, dokumennya sama, tanpa ruang keraguan yang berarti dalam praktik.

Contoh nyata · 20-09-2026

Empat mata rantai

Verifikasi adalah sebuah rantai. Tiap mata rantai terhubung ke mata rantai berikutnya, dan satu saja yang putus sudah membuat buktinya tak berarti. Nilai-nilai yang tampil di bawah ini nyata: semuanya berasal dari sertifikat yang diterbitkan pada 20 September 2026.

1 2 3 4
Tanggalnya

Mengapa tanggal adalah besaran fisik, bukan sebuah pernyataan

Inilah bagian yang biasanya dituntut dalam pemeriksaan silang, jadi lebih baik ditunjukkan daripada diperdebatkan. Stempel waktunya berada di dalam header, dan header itulah masukan bagi bukti kerja. Mengubah waktunya berarti mengubah masukannya, dan kerja itu tidak lagi sah. Hal ini diuji secara eksperimental dengan mengubah header yang telah diverifikasi pada langkah 4 lalu mengulang perhitungannya:

Efek pengubahan header terhadap hasil bukti kerja
Header Hasil kerja Putusan
Asli, tidak disentuh0x15222b53caabb3b049ec…Sah
nonce + 10x6775abc19ba960657f66…Tidak sah
timestamp dimajukan satu detik0xaee1e8274b1d268866ed…Tidak sah
Konsekuensinya

Untuk menyajikan dokumen itu dengan tanggal berbeda, orang harus mengulang bukti kerja header tersebut melawan tingkat kesulitan nyata jaringan. Ini bukan penghalang biaya: ini penghalang komputasi yang setara dengan daya agregat seluruh jaringan selama rentang waktu yang hendak dipalsukan. Tak seorang pun menyatakan tanggalnya. Tanggal itu dibayar.

Ketahanan

Apakah ini tetap berfungsi setelah hardfork di masa depan?

Jawaban jujurnya adalah ya, dan ada baiknya memahami sebabnya. Bukti yang sudah direkam bukanlah kueri langsung ke jaringan: ia adalah fakta historis, yang diverifikasi menurut aturan yang berlaku pada saat ia ditambatkan. Kaspa berubah seiring waktu —transisi Crescendo/Toccata, misalnya, mengubah irama DAA dan penghitungan tingkat kesulitan—, tetapi itu tidak menghapus masa lalu: artinya hanya bahwa blok Januari 2026 diverifikasi dengan aturan Januari 2026, dan blok tiga tahun dari sekarang dengan aturan tiga tahun dari sekarang.

Verifikator rujukan dibangun justru untuk itu: ia membedakan era. Ia mengetahui titik aktivasi setiap perubahan konsensus (misalnya konstanta CRESCENDO_DAA_MAINNET) dan menerapkan pada tiap blok aturan zamannya sendiri, bukan aturan hari ini. Hardfork berikutnya menambahkan era baru; ia tidak membatalkan era-era sebelumnya.

Ketahanan buktinya kemudian bersandar pada tiga syarat, semuanya di bawah kendali pemiliknya:

1

Merekam di dalam jendela waktunya

Simpan header secara utuh pada saat penambatan, sebelum jaringan membuang data lengkapnya (sekitar 30-40 jam).

2

Simpan buktinya

Berkas buktinya (atau PDF yang menyematkannya) bersifat mandiri: ia tidak merujuk ke server mana pun dan tidak melakukan pencarian daring.

3

Pelihara verifikator rujukannya

248 baris kode terbuka, tanpa dependensi, dapat diturunkan ulang dari kode sumber publik Kaspa. Sekalipun hilang, ia bisa ditulis ulang.

Verifikasilah sendiri

Lakukan tanpa Proovik

Verifikator rujukan itu 248 baris Python tanpa dependensi eksternal: ia mengimplementasikan blake2b berkunci, permutasi Keccak-f[1600], generator xoshiro256++, dan aritmetika matriksnya. Bisa dibaca dalam satu sore dan diaudit dalam dua sore.

Terminal
$ python3 verificador_kaspa.py prueba.json 0f7383b381366cc3a75dadd7e4a1e8998c492f7c5c5610f4384d7320f484aad8

  OK    1. El payload on-chain es el hash del documento
  OK    2. La transaccion esta en el arbol Merkle del bloque
  OK    3. La cabecera produce el hash de bloque declarado
  OK    4. La prueba de trabajo de esa cabecera es valida

RESULTADO: PRUEBA VALIDA

Unduh verifikator rujukan

Dua berkas. Letakkan keduanya di folder yang sama lalu jalankan yang pertama. Keduanya tidak memasang apa pun dan tidak menghubungi jaringan.

Siapa pun yang enggan menjalankan kode orang lain dapat menulis ulang sendiri implementasinya: keempat algoritmanya diuraikan di atas tanpa ambiguitas, dan semua parameternya berasal dari kode sumber publik rusty-kaspa. Sama sahnya untuk mencari transaksinya di penjelajah publik Kaspa mana pun sebagai pembanding, tetapi perbedaannya perlu dipahami: penjelajah adalah kesaksian; perhitungan adalah pembuktian. Spesifikasi ini ada justru agar tidak bergantung pada yang pertama.

Kerangka hukum

Cakupan hukum

Proovik menyediakan layanan stempel waktu elektronik tidak berkualifikasi dalam pengertian Pasal 3.16(i) Peraturan (UE) 910/2014. Ada baiknya bersikap gamblang tentang apa artinya itu.

  • Sesuai Pasal 41.1 Peraturan tersebut, sebuah stempel waktu elektronik tidak boleh ditolak akibat hukumnya maupun penerimaannya sebagai alat bukti di persidangan semata-mata karena berbentuk elektronik atau karena tidak memenuhi syarat stempel berkualifikasi.
  • Stempel tidak berkualifikasi tidak menikmati praduga ketepatan tanggal dan jam dari Pasal 41.2, yang hanya berlaku bagi stempel berkualifikasi. Jika disanggah, beban untuk membuktikannya ada pada pihak yang mengajukannya.
  • Justru karena itulah spesifikasi ini ada: agar beban tersebut dipenuhi dengan pemeriksaan aritmetis yang dapat direproduksi siapa pun, alih-alih dengan pernyataan penyedia layanannya.

Proovik tidak memeriksa isi, kepengarangan, maupun keabsahan dokumen, dan tidak pernah mengaksesnya: ia hanya menerima ringkasan kriptografisnya. Yang dibuktikan adalah bukti keberadaan dan tanggal terdahulu pada suatu momen tertentu.

Rujukan

Serialisasi header dan transaksi, pembangunan pohon Merkle, dan bukti kerja, sesuai kode sumber implementasi rujukan Kaspa (rusty-kaspa): consensus/core/src/hashing/header.rs, consensus/core/src/hashing/tx.rs, consensus/core/src/merkle.rs, crypto/hashes/src/pow_hashers.rs, consensus/pow/.

Nilai-nilai yang dipakai sebagai contoh berasal dari sertifikat nyata dan dapat diperiksa siapa pun. Spesifikasi ini diberi versi: setiap bukti mencantumkan di dalam dirinya versi yang dipakai saat ia diterbitkan.