Sözlük / Protokol ve güncellemeler
Speedy Trial
- Speedy Trial nedir?
- Speedy Trial, Taproot için kullanılan etkinleştirme kurulumudur: kısa bir madenci sinyali penceresi, yüzde 90'a düşürülmüş bir eşik ve yürürlüğün ilerideki sabit bir blok yüksekliğine ertelenmesi.
Tanımlandığı belge: BIP-341.
Speedy Trial, ayrı bir BIP'e değil, doğrudan BIP-341 metnine yazılmış, değiştirilmiş bir BIP-9 sürüm bitleri dağıtımıdır. Madencilerin 24 Nisan ile 11 Ağustos 2021 arasındaki 109 gün içinde, 2.016 bloktan 1.815 blokta 2 numaralı biti ayarlaması gerekiyordu; yürürlük ise 709.632 numaralı bloğa sabitlenmişti. Bu yürürlük yüksekliği sinyalizasyon açılmadan önce belirlendiği için sahipler, kuralların değişeceği bloğu tam olarak biliyordu.
Nasıl çalışır
Speedy Trial, BIP-9'un sayım yöntemini korur, sayılarından ikisini değiştirir ve BIP-9'da hiç bulunmayan bir parametre ekler.
BIP-9, sinyal veren blokları her 2.016 blokluk yeniden hedefleme döneminde sayar ve bir dönem yeterli sayıda blok içerdiğinde dağıtımı STARTED durumundan LOCKED_IN durumuna geçirir. Eşiği 1.916 bloktur, yani bir dönemin yüzde 95'i, ve pencere için kendi kılavuzu başlangıç zamanından 31.536.000 saniye sonrasına denk gelen bir yıldır. Hem başlangıç hem de zaman aşımı, bir bloğun ve on önceki bloğun zaman damgalarının medyanı olan geçmiş medyan zamandan okunur; yani saat zincire aittir, kimsenin kol saatine değil.
Taproot dağıtımı eşiği 1.815 bloğa, yani yüzde 90'a düşürdü ve pencereye 1619222400 epoch zaman damgasından 1628640000 epoch zaman damgasına kadar 9.417.600 saniye verdi. Eklenen şey min_activation_height oldu. Düz BIP-9 kapsamında kilitlenmiş bir dağıtım bir sonraki yeniden hedefleme sınırında ACTIVE olur, bu yüzden kilitlenme yürürlük yüksekliğini yalnızca onu izleyen 2.016 bloğa bağlar. Speedy Trial kapsamında ise LOCKED_IN durumu, zincir belirtilen yüksekliğe ulaşana kadar döngüde kalır ve ancak o zaman ACTIVE durumuna geçer. Mainnet'in yüksekliği 709.632 idi, bu tam olarak 352 yeniden hedefleme dönemine ve dolayısıyla bir dönem sınırına denk gelir. Dağıtım orada etkinleşti.
Bütün fikir bu ayrımdadır. Sinyalizasyon bir soruyu hızlıca yanıtlar, ardından gelen uzun boşluk ise tartışmak için harcanan zaman değil, geri kalan herkesin yükseltme yapması için zamandır.
Nerede görürsünüz
Speedy Trial'ın parametreleri, 2021 sinyalizasyon penceresi sırasında çıkarılan her bloğun sürüm alanında okunabilir.
Sinyal veren bir blok, üst bitler 001 ile dağıtımın kendi bitini taşır; yani 2 numaralı bitteki bir Taproot sinyali 0x20000004 sürümü olarak okunur. İş talep eden madenciler aynı dağıtımla getblocktemplate üzerinden karşılaşır; bu arayüzün "rules" anahtarı halihazırda etkin olan yumuşak çatalları adlandırır, "vbavailable" anahtarı ise bekleyen her birini kendi bitine eşler. BIP-341'in bu dağıtıma verdiği ad, dolayısıyla bir madencinin okuduğu dizi, yalnızca "taproot"tur.
Aynı dağıtımın testnet3 üzerindeki çalışması, gecikmenin neye yaradığını gösterir. Aynı başlangıç ve zaman aşımı zaman damgalarını, yüzde 75'te 1.512 blokluk bir eşiği ve 0 değerinde min_activation_height kullandı; böylece BIP-9'un kendi bir dönemlik boşluğunun ötesinde hiçbir şey ertelenmedi ve 2.011.968 yüksekliğinde etkinleşti. Mainnet ek bekleyişi aldı; test ağının korunacak bir ekonomisi yoktu. Signet üzerinde kurallar her zaman etkindi, bu yüzden orada hiçbir deneme yapılmadı.
Speedy Trial vs UASF
Kullanıcı tarafından etkinleştirilen bir yumuşak çatal, sonucu düğüm tarafından zorlar ve Speedy Trial bu gücü bilinçli olarak reddetti.
Zorlama mekanizması BIP-8'de lockinontimeout olarak yazılmıştır. True olarak ayarlanırsa dağıtım, zaman aşımından önce bir MUST_SIGNAL dönemi alır; bu dönemde, dönemin sinyal vermeyen bloklara tanıdığı pay tükendiğinde sinyal vermeyen bloklar geçersiz hale gelir ve madenciler işbirliği yapsın ya da yapmasın kilitlenme garanti edilir. BIP-8, madencilerin küçümsenemeyecek bir payından siyasi muhalefet beklenen her yumuşak çatal için bu bayrağı önerir ve aynı belgede, bu bayrağı çalıştıran düğümlerin uzun bir süre daha düşük işe sahip bir zinciri izleyebileceğini ve öncelikli olarak birbirleriyle bağlantı kurmaları gerekebileceğini uyarır.
Speedy Trial böyle bir bayrak taşımıyordu. Zaman aşımından önce eşiğin kaçırılması dağıtımı FAILED durumuna sokardı ve başka hiçbir şey yapmazdı; yaptığı takas buydu: etkinleşme garantisi yok, zincir bölünmesi riski yok ve her iki durumda da ucuz bir yanıt.