Bitcoin miras kilidinizi sessizce kaldırabilecek küçük bir hata

older() zaman kilidi: yazdığınız süre ile Bitcoin'in uyguladığı süre aynı olmayabilir.

English

Kısa özet. Bir miras kurulumunda "mirasçı anahtarı, coin 90 gün hareket etmezse harcayabilsin" demek için Miniscript'te older(12960) yazılır. Ama older(65536) yazarsanız kilit hiç oluşmaz; mirasçı coini hemen harcayabilir. older(2592000) yazarsanız ("30 gün" niyetiyle) gerçek bekleme ~250,7 gündür. Miniscript bu değerleri reddetmez; Bitcoin Core da uyarmaz.

Neden oluyor?

older(n) Bitcoin'de göreli zaman kilididir (BIP-68/112). n için Miniscript yalnızca 1 ≤ n < 2³¹ şartını arar (BIP-379). Ama harcama sırasında konsensüs, değerin yalnızca bit 22'sini (tür: blok/zaman) ve alt 16 bitini kullanır; diğer bitleri yok sayar. Yani 16 bitin üstüne taşan bir değer sessizce "kırpılır".

Ölçtüğüm sonuçlar (Bitcoin Core 31.1, regtest)

Mirasçı yolunu her blokta testmempoolaccept ile sınadım. "İlk kabul" = mirasçının harcayabildiği ilk onay sayısı.

YazılanGerçek etkin kilitÖlçülen ilk kabulAnlam
older(10)10 blok10. onayBeklenen
older(65535)65.535 blok—Üst sınır ≈ 455 gün
older(65536)01. onayKilit yok
older(65541)5 blok5. onayBeklenmedik kısa süre
older(131075)3 blok3. onayBeklenmedik kısa süre
older(8388615)7 blok7. onayBeklenmedik kısa süre
older(2592000)36.096 blok ≈ 250,7 gün36.096. onay (36.095'te reddedildi)"30 gün" sanılır
older(4194306)2 × 512 sn = 1024 sn (zaman tabanlı)Medyan-zaman farkı ≥ 1024 snZaman tabanlı kilit

Ne yapmalı?

Kendi politikanı denetle → (tarayıcıda çalışır, verin cihazından çıkmaz)

Sınırlar

Sonuçlar tek düğümlü bir Bitcoin Core 31.1 regtest ortamında, gerçek para olmadan ölçüldü. Yatırım, hukuk veya vergi tavsiyesi değildir. Kaynaklar: BIP-68, BIP-112, BIP-379.