Waktu blok Bitcoin

Anda tahu: Waktu yang diharapkan antara dua blok Bitcoin rata-rata \(10\) menit. Sekarang Anda melakukan transaksi Bitcoin yang penting dan menunggu dengan penuh semangat untuk melihat apakah dan kapan transaksi itu muncul di blok berikutnya:

e50bfacc95975a4e7545d83d8954645f


Karena Anda belum memeriksa kapan blok sebelumnya selesai, Anda sebenarnya mengharapkan rata-rata \( \frac{t}{2} = \frac{10}{2} = 5 \) menit waktu tunggu. Setelah \(5\) menit yang lama berlalu, periksa kapan blok terakhir benar-benar selesai:

e50bfacc95975a4e7545d83d8954645f

Blok terakhir telah selesai \(7\) menit yang lalu. Kini setelah Anda mengetahui informasi ini, perkiraan waktu berubah dari total \(5\) menit menjadi \(10\) menit. Artinya: Mungkin akan siap dalam waktu sekitar \(3\) menit. Anda mengeluarkan perintah lagi dan lagi. Dan tunggu. Setelah \(10\) menit berikutnya Anda mulai merasa ada yang tidak beres.

Tapi kemudian kamu ingat itu Menunggu paradoks:

Jika bus berjalan rata-rata setiap \(t\) menit, waktu tunggu untuk waktu kedatangan acak di halte bus tidak sesuai dengan \(\frac{t}{2}\) menit, tetapi dalam kasus terdistribusi secara eksponensial jarak \(t\) .

Terjadinya blok Bitcoin adalah proses Poisson dan karena itu terdistribusi secara eksponensial. Karena proses Poisson tidak memiliki memori, blok berikutnya juga diselesaikan dalam rata-rata \(10\) menit. Itu selalu berlaku - tidak peduli berapa lama kita menunggu. Kualitas tanpa ingatan berlaku baik mundur maupun maju dalam waktu.

Bagaimana itu bisa terjadi?

Untuk melakukan ini, kami mempertimbangkan dua pernyataan berikut::

  • A) Waktu tunggu rata-rata sebenarnya antara dua blok adalah \(10\) menit, bukan \(20\) menit.
  • B) Jika titik waktu acak dipilih, kami mengharapkan blok sebelumnya \(10\) menit di masa lalu dan blok berikutnya \(10\) menit di masa depan. Jadi kita dapat mengharapkan waktu tunggu \(20\) menit antara blok.

Kami memeriksa kedua pernyataan.

Untuk melakukan hal ini, pertama-tama kami mengekstrak data yang relevan, khususnya waktu ketika blok selesai, ke dalam file TXT (untuk dieksekusi dengan node penuh yang berjalan secara lokal berdasarkan bitcoind ).:

e50bfacc95975a4e7545d83d8954645f

Ini memberi kita file teks berikut, yang sekarang kita proses lebih lanjut dan simpan di /time.txt . Program Rust berikut dengan file /Cargo.toml digunakan untuk tujuan ini:

e50bfacc95975a4e7545d83d8954645f

File /src/main.rs berisi logika pengujian yang sebenarnya:

e50bfacc95975a4e7545d83d8954645f

Kami menginstal dependensi, membangun program dan memulainya:

e50bfacc95975a4e7545d83d8954645f

Memang, kedua pernyataan itu benar ketika kita menganalisis output:

e50bfacc95975a4e7545d83d8954645f

Ini juga dapat dijelaskan secara intuitif sebagai berikut: Jika waktu blok bervariasi secara signifikan, waktu tunggu spesifik bervariasi - jika kita melakukan transaksi pada titik waktu yang acak, kemungkinannya lebih tinggi bahwa kita akan berakhir dalam interval di mana waktu tunggu lebih lama dari 10 menit karena interval ini juga memakan lebih banyak ruang pada timeline karena waktu yang lebih lama.

Kembali