Sözlük / Madencilik ve konsensüs
Konsensüs kuralları
- Konsensüs kuralları nedir?
- Konsensüs kuralları, her tam düğümün bir bloğa uyguladığı geçerlilik kontrolleridir ve bunlardan yalnızca birinin bozulması, blok ne kadar iş taşırsa taşısın o bloğu geçersiz kılar.
Kural kitabı ayrıntılar konusunda uzundur: çifte harcama yok, girdilerinden daha değerli çıktı yok, geçerli scriptler ve sübvansiyon ile ücretlerin toplamından fazlasını talep etmeyen bir coinbase. Bitcoin Core sayıları sabit kodlar: blok başına 4.000.000 ağırlık birimi, 80.000 imza işlemi ve çıkarılan coinlerin harcanabilmesi için 100 blok bekleme. Bu kurallar, hiçbir borsanın size ağın hiç oluşturmadığı bir coini hesabınıza geçirememesinin nedenidir.
Nasıl çalışır
Konsensüs kuralları dört gruba ayrılır ve neredeyse hepsi kasıtlı olarak sıkıcıdır.
Birinci grup parayı düzenler. Bir bloğun ödülü her 210.000 blokta ikiye düşer ve coinbase çıktısı, o sübvansiyon ile fiilen dahil edilen işlemlerin ücretlerinin toplamından bir satoshi fazla dahi talep edemez. Bir blok tarafından oluşturulan coinler, 100 blok boyunca harcanamaz. Diğer her işlem, var olan, daha önce harcanmamış ve kendilerini kilitleyen scripti karşılayan çıktıları harcamalıdır; çıkan toplam hiçbir zaman giren toplamı aşamaz.
İkinci grup kaynakları düzenler, çünkü doğrulama sıradan bir makine için yeterince ucuz kalmalıdır. Bir blok 4.000.000 ağırlık birimini veya 80.000 imza işlemi birimini aşamaz. Üçüncü grup yapıyı düzenler: coinbase işlemi ilk sırada ve yalnızca bir kez gelir, başlıktaki merkle kökü mevcut işlemlerle eşleşmelidir ve başlık hash'i, zorluk kurallarının istediği hedefte veya altında olmalıdır. Dördüncü grup zamanı düzenler. Bir bloğun zaman damgası, önceki on bir bloğun medyanından sonra olmalı ve bir düğümün kendi saatinden en fazla iki saat ileride olmalıdır; BIP113'ten beri kilit süreleri de aynı medyan zamana göre ölçülür.
Bu kuralların nerede yazılı olduğu işin zor kısmıdır. Bağımsız bir şartname yoktur: kurallar, devreye alınmış kodun kabul ettiği şeydir; ağın ezici çoğunluğu için bu, tuhaflıklar ve kazalar dahil Bitcoin Core doğrulama mantığı anlamına gelir. Bu yüzden başka bir dilde yeniden yazım, bir iyileştirme değil bir tehlike olarak görülür ve en bilinen varyant olan Bitcoin Knots, Core'un konsensüs davranışını bayt bayt korur, yalnızca iletim ve madencilik politikasında farklılaşır.
Listeyi değiştirmek iki yönden birinde yapılır. Bir soft fork olasılıkları kaldırır, böylece yeni kurallara göre yapılan bloklar eski yazılıma hâlâ geçerli görünür: katı DER imza kodlaması 363.725 numaralı blokta, OP_CHECKLOCKTIMEVERIFY ise 388.381 numaralı blokta zorunlu hale geldi ve ikisi de ağı bölmedi. Bir hard fork olasılıklar ekler, bu da yeni blokları yükseltme yapmamış herkese geçersiz gösterir ve benimseme evrensel olmadıkça iki zincir üretir.
Bitcoin satın alırken bu neden önemli
Konsensüs kuralları, Bitcoin sahibi olmanın kimsenin sonradan sizinle yeniden müzakere edemeyeceği tek parçasıdır.
Az sayıda riskin altına sert bir taban koyarlar. Kimse takvimin dışında coin basamaz, bir çıktıyı anahtarı olmadan harcayamaz veya gerçek işin altına gömülmüş bir ödemeyi silemez. Bu taban dardır ve dışında neyin kaldığı konusunda kesin olmakta yarar vardır, çünkü insanların gerçekte para kaybettiği yer burasıdır: iflas eden bir borsa, kurtarma ifadesini toplayan bir oltalama (phishing) sitesi, bir hesabı donduran destek temsilcisi, bütçelenmeden gelen bir vergi borcu. Bunların hiçbiri bir kuralın çiğnenmesini içermez. Hepsi, kuralların hiç kapsamadığı bir şeye güvenmeyi içerir.
Bu ayrım size pazarlama iddialarını sınamak için bir ölçüt verir. Bir hizmet onaylanmış bir ödemeyi geri alabiliyorsa, bir Bitcoin işlemini geri almamıştır; kendi defterini düzeltmiştir ve siz hiç zincir üstünde olmadınız. Bir ürün blokların izin verdiğinden daha hızlı mutabakat reklamı yapıyorsa, size kredi açıyor ve riski kendi üstleniyordur; bu, satın aldığınızın bu olduğunu bildiğiniz sürece pekâlâ iyi bir hizmet olabilir. Bir coin, saniyede binlerce işlemle Bitcoin'in güvenliğini iddia ediyorsa, yukarıdaki kaynak sınırları Bitcoin'in bunu yapmamasının nedenidir.
Konsensüs kurallarının kesinlikle olmadığı şey ise hukuktur. Ağ, dünyadaki her kullanıcıya aynı kontrolleri uygular; hukuki kural kitabı ise her sınırda değişir, bu yüzden bu sitedeki ülke rehberleri bu sayfadaki her şeyden ayrı olarak vardır. Geçerliliğe düğümler karar verir. Yasallığa, bildirim yükümlülüklerine ve bir borsanın sizi hiç kabul edip etmeyeceğine ise yargı çevreniz karar verir ve bu ikisi bir kez bile birbirine danışmayı kabul etmemiştir.
Beş saat süren 184 milyar Bitcoin
15 Ağustos 2010 tarihinde, 74.638 numaralı bloktaki bir işlem, her biri 92 milyar Bitcoin'den fazla olan iki çıktı oluşturdu.
Hata aritmetikti. Kod, her çıktının makul bir miktar olduğunu kontrol ediyor ama bunları taşan bir değerde topluyordu; böylece tüm arz takviminden büyük bir toplam, küçük bir pozitif sayı olarak okunuyor ve kontrolü geçiyordu. Satoshi Nakamoto, düzeltmeyi içeren 0.3.10 sürümünü saatler içinde yayımladı, düğümler ona geçti ve düzeltilmiş zincir, hatalı zinciri 53 blok sonra geçti. Olay CVE-2010-5139 olarak kaydedilmiştir ve Bitcoin arzının takvimini aştığı tek olay olarak kalmaktadır.
İki ders kalıcıdır. 21 milyonluk üst sınır fizik yasası değil, bir kod satırıdır ve kod yanlış olabilir. Onarım ise tam da kimsenin ondan sorumlu olmaması sayesinde işledi: binlerce bağımsız operatör, düzeltilmiş yazılımı çalıştırmayı kendi başına seçti; bir konsensüs kuralının sahip olduğu tek mekanizma da budur.
Konsensüs kuralları vs mempool politikası
Konsensüs kuralları neyin geçerli olduğuna karar verir; mempool politikası ise bir düğümün neyi ileteceğine karar verir. Politika daha gevşektir, yereldir ve her düğümde ayarlanabilir: varsayılan 1 sat/vB minimum iletim ücreti, eski (legacy) bir çıktıda 546 satoshi toz eşiği, veri taşıyan çıktılara sınırlar ve standart sayılan script türlerinin bir listesi. Politikayı çiğnerseniz işleminiz hiç yayılmayabilir. Bir konsensüs kuralını çiğnerseniz onu içeren hiçbir blok asla var olamaz. Madenciler, bazı düğümlerin iletmeyeceği işlemleri düzenli olarak dahil eder ve ortaya çıkan bloklar tamamen geçerlidir; bu yüzden “cüzdanım standart dışı diyor” ifadesi, çözüm yolları olan bir yönlendirme sorunudur, “geçersiz” ise nihaidir.