Koha e bllokimit të Bitcoin

Ju e dini: Koha e pritshme midis dy blloqeve të Bitcoin është mesatarisht \(10\) minuta. Tani po bëni një transaksion të rëndësishëm të Bitcoin dhe po prisni me padurim për të parë nëse dhe kur do të shfaqet në bllokun tjetër:

e50bfacc95975a4e7545d83d8954645f


Meqenëse nuk e keni kontrolluar se kur është përfunduar blloku i mëparshëm, në fakt ju prisni një mesatare prej \( \frac{t}{2} = \frac{10}{2} = 5 \) minuta kohë pritjeje. Pasi të kenë kaluar \(5\) minuta të gjata, kontrolloni kur blloku i fundit është përfunduar në të vërtetë:

e50bfacc95975a4e7545d83d8954645f

Blloku i fundit është përfunduar tashmë \(7\) minuta më parë. Tani që e dini këtë informacion, koha e pritur ndryshon nga \(5\) minuta në një total prej \(10\) minuta. Kjo do të thotë: Për rreth \(3\) minuta ndoshta do të jetë deri tani. Ju lëshoni komandën pa pushim. Dhe prisni. Pas një tjetër \(10\) minutash ju keni ndjenjën se diçka nuk është në rregull.

Por pastaj ju kujtohet se Paradoksi i pritjes:

Nëse autobusët qarkullojnë mesatarisht çdo \(t\) minuta, koha e pritjes për një kohë të rastësishme mbërritjeje në stacionin e autobusit nuk korrespondon me \(\frac{t}{2}\) minuta, por në rastin kur shpërndahet në mënyrë eksponenciale distancat \(t\) .

Dukuritë e bllokut të Bitcoin janë një proces Poisson dhe për këtë arsye shpërndahen në mënyrë eksponenciale. Meqenëse proceset Poisson janë pa kujtesë, blloku tjetër gjithashtu përfundon mesatarisht në \(10\) minuta. Kjo vlen gjithmonë - pa marrë parasysh sa kohë kemi pritur. Cilësia e mungesës së kujtesës zbatohet si prapa ashtu edhe përpara në kohë.

Si mund të jetë?

Për ta bërë këtë, ne konsiderojmë dy deklaratat e mëposhtme:

  • A) Koha mesatare aktuale e pritjes midis dy blloqeve është \(10\) minuta, jo \(20\) minuta.
  • B) Nëse zgjidhet një pikë e rastësishme në kohë, ne presim që blloku i mëparshëm \(10\) minuta në të kaluarën dhe blloku tjetër \(10\) minuta në të ardhmen. Pra, mund të presim një kohë pritje prej \(20\) minutash midis blloqeve.

Ne i kontrollojmë të dy deklaratat.

Për ta bërë këtë, ne fillimisht nxjerrim të dhënat përkatëse, veçanërisht kohën në të cilën u plotësuan blloqet, në një skedar TXT (që do të kryhet me një nyje të plotë që funksionon lokalisht bazuar në bitcoin ):

e50bfacc95975a4e7545d83d8954645f

Kjo na jep skedarin e tekstit të mëposhtëm, të cilin tani e përpunojmë më tej dhe e ruajmë në /time.txt . Programi i mëposhtëm Rust përdoret për këtë me skedarin /Cargo.toml:

e50bfacc95975a4e7545d83d8954645f

Skedari /src/main.rs përmban logjikën aktuale të testit:

e50bfacc95975a4e7545d83d8954645f

Ne instalojmë varësitë, ndërtojmë programin dhe e nisim atë:

e50bfacc95975a4e7545d83d8954645f

Në të vërtetë, të dy pohimet janë të vërteta kur analizojmë rezultatin:

e50bfacc95975a4e7545d83d8954645f

Kjo mund të shpjegohet gjithashtu në mënyrë intuitive si më poshtë: Nëse kohët e bllokut ndryshojnë ndjeshëm, koha specifike e pritjes ndryshon - nëse e kryejmë transaksionin në një moment të rastësishëm në kohë, probabiliteti është më i lartë që të përfundojmë në një interval në të cilin koha e pritjes është më e gjatë se 10 minuta për shkak se këto intervale gjithashtu zënë më shumë hapësirë ​​në afatin kohor për shkak të kohës më të gjatë.

Mbrapa