Segregated Witness (SegWit) Nedir?

Bitcoin SegWit'e Başlangıç Rehberi 💭
Ayrılmış Tanık (SegWit), 1 Ağustos 2017'de Bitcoin'in kaynak kodunda yapılan bir yükseltmeydi.
Birçok kişinin Bitcoin blok zincirinde iyileştirmeler olarak gördüğü şeyleri yapmasına rağmen, SegWit topluluğu bölen güçlü bir muhalefetle karşılaşt.
Meselenin özünde, madencilerin karlılığı ile Bitcoin'i daha ucuz ve daha hızlı hale getirmeyi amaçlayan ağ geliştiricileri arasında rekabet eden bir çıkar çatışması vardı.
Gerilim, topluluk içinde bir ayrılığa neden oldu ve ağın ilk kullanıcı tarafından etkinleştirilen soft fork'u ve düşmanca bir bölünmeyle sonuçlandı. Bu bölünme, Bitcoin Cash de dahil olmak üzere bir dizi yeni Bitcoin çatallı projenin doğmasına yol açtı.
Bugüne kadar SegWit, Bitcoin'in tarihindeki en tartışmalı olaylardan biri olmaya devam etmektedir. Ancak, protokolün uzun vadeli yaşayabilirliği için en önemli güncellemelerden biri olduğunu da kanıtlamıştır.
Her yıl, Bitcoin topluluğundaki birçok kişi 1 Ağustos'u “Bitcoin bağımsızlık günü” olarak kutlar. Bu olay, halkın iradesinin yerleşik bitcoin madencilik şirketlerinin merkezi çıkarlarına karşı zafer kazandığı günü işaret eder.
Bu olayların her birini nasıl gerçekleştiğini inceleyelim ve SegWit'in arkasındaki tarihi açığa çıkaralım.
SegWit Öncesi Bitcoin ⏮️
SegWit aktivasyonundan önce, Bitcoin'in blok kapasitesi uzun yıllar boyunca değişmeden kalmıştı. Blok kapasitesi, belirli bir blok içinde kaydedilebilecek maksimum işlem sayısını ifade eder.
Bitcoin 2009'da piyasaya sürüldüğünde, yaratıcısı(ları) Satoshi Nakamoto, bitcoin bloklarının ne kadar büyük olabileceğine dair herhangi bir parametre belirlememişti.
Ancak, 2010 yılında Nakamoto, diğer Bitcoin katkıda bulunanların onayı olmadan gizlice 1 megabayt (MB) blok boyutu sınırı ekledi.
Birçok kişi Nakamoto'nun bu sınırı, ağı etkileyebilecek gelecekteki dağıtılmış hizmet reddi (DDoS) saldırılarını önlemek için eklediğine inanıyordu.
Blok kapasitesindeki bu sabit üst sınır, Bitcoin'in ölçeklenme potansiyelini çeşitli şekillerde kısıtlama gibi istenmeyen bir etkiye sahipti.
Düşük işlem hacmi ve yavaş işlem süreleri
Bitcoin'in şimdi benimsediği nispeten küçük 1MB'lık bloğa yalnızca sınırlı sayıda işlem sığabilir. Bu küçük kapasite, Bitcoin ağının saniyede yalnızca yaklaşık 2-3 bitcoin (BTC) işlemi işleyebileceği anlamına geliyordu — saniyede on binlerce işlem işleyebilen geleneksel dijital ödeme ağlarından çok uzaktı.
Ek olarak, bir işlem bloğunun bitcoin madenciliği sürecinin bir parçası olarak geçerli sayılması için altı onay alması gerekir. Başka bir deyişle, söz konusu blok kesinleşmeden önce blok zincirine altı yeni blok eklenmelidir. Ortalama on dakikalık blok süresiyle, bu, bitcoin blok onaylarının yaklaşık bir saat sürdüğü anlamına gelir.
O zamanlar, sadece bir avuç “Cypherpunk” kriptografın bitcoin'den haberdar olduğu zamanlarda, bu mutlaka büyük bir sorun değildi. Ancak, Bitcoin ağı Satoshi'nin Bitcoin teknik incelemesinde öngördüğü gibi küresel bir “eşler arası elektronik nakit sistemi” haline gelecekse, bir şeylerin değişmesi gerekiyordu.
Yüksek ücretler
Bitcoin'in küçük blok kapasitesiyle kısıtlanan düşük işlem hacmi, ücretlerin de bugünkünden çok daha yüksek olduğu anlamına geliyordu.
Bu sorunu anlamanın kolay bir yolu var. Bir tiyatro gösterisini izledikten sonra dışarıda bir kalabalığın içinde durduğunuzu hayal edin. Tiyatrodaki herkes aynı anda taksiyle eve gitmek istiyor. Etrafta bol miktarda taksi varsa, herkesin eve gitmesi kolay olmalıdır. Ancak, sadece bir avuç taksi varsa, insanlar taksi şoförlerini kendilerini önce eve götürmeleri için teşvik etmek amacıyla daha yüksek bir fiyat ödemeye çalışabilirler. Talebe bağlı olarak, taksi fiyatları normal orandan önemli ölçüde daha yüksek seviyelere çıkabilir.
Bitcoin ücretleri de arz ve talep prensipleriyle aynı şekilde çalışır. Birçok kişi işlemlerinin aynı anda işlenmesini isterse, bazıları işlemlerinin madenciler tarafından daha erken işlenmesi için daha fazla ücret ödemeyi tercih edebilir. Bitcoin ağında yoğun kullanım dönemlerinde, tıkanıklık kullanıcılar arasında rekabete yol açabilir ve bu da işlem ücretlerinin keskin bir şekilde artmasına neden olabilir.
İşlem esnekliği
Bitcoin bloklarının çalışma şeklindeki bir başka doğal nüans, işlem esnekliği olarak biliniyordu. SegWit'ten önce, insanlar bir işlemin kimliğini, blok zincirinde yeterli onay almadan önce değiştirebiliyordu.
Belirli bir işlemle ilgili bilgileri alıp bir hash fonksiyonundan geçirmek, bir işlem kimliği oluşturur. Hash fonksiyonları hakkında daha fazla bilgiyi Kripto para birimleri kriptografiyi nasıl kullanır? makalemizde bulabilirsiniz.
Ancak basitlik adına, bu işlem kimliklerini, blok zincirindeki işlemleri tanımlamak ve referans almak için kullanılan dijital parmak izleri olarak düşünebilirsiniz.
İşlem kimliğini değiştirmek, bazen blok zinciri istemci yazılımını karıştırabilecek tamamen yeni bir hash oluşturur. Tüm düğümler, blok zinciriyle etkileşim kurmak ve veri doğrulama gibi önemli roller üstlenmek için istemci yazılımı çalıştırır.
Bitcoin kodundaki bu esneklik hatası, kötü niyetli saldırılara kapı araladı. İşlem esnekliği saldırısının en kötü şöhretli örneklerinden biri, tarihteki en büyük bitcoin hack'i olarak bilinen 2014 Mt. Gox borsa hack'iydi.
Uzmanlar, bir hacker veya hacker grubunun Mt. Gox borsasının bitcoin cüzdanını boşalttığını bildirdi. Bunu kısmen, çekimlerinin işlem kimliğini değiştirerek yaptılar.
İşlem esnekliği saldırısı, çekimlerin blok zincirinde onaylanmıyormuş gibi görünmesine neden oldu, oysa gerçekte onaylanıyorlardı.
Bu güvenlik açığı, diğer saldırı vektörleriyle birleşerek hacker(lar)ın borsadan 840.000 BTC'den fazla para sızdırmasına olanak sağladı.
SegWit hangi iyileştirmeleri sağladı? ⚙️
Bitcoin katkıda bulunan Pieter Wuille, SegWit yükseltmesini ilk olarak 2015 yılında bir Bitcoin Hong Kong etkinliğinde sundu.
Çözümü üç açıdan yenilikçiydi. SegWit, Bitcoin'in ölçeklenebilirliğini iyileştirdi, esnekliği ortadan kaldırdı ve düğümlerin yeni işlem yapısını benimsemesine olanak tanıdı. En iyisi de, bu, ağı hard fork yapmadan uygulanabilirdi.
Ayrı dijital imza ve işlem bilgileri
Wuille'nin önerisi, "tanık" verilerini bir bloktan "ayırarak" ve coinbase işlemine taşıyarak Bitcoin blok kapasitesini artırdı. Coinbase işlemleri, her yeni Bitcoin bloğundaki ilk işlemlerdir. Coinbase işlemi, bitcoin madenciliği süreci için bir ödül olarak yeni basılan kripto para birimini dolaşıma sokmaktan sorumludur.
Bitcoin'in kriptografi tabanlı iş kanıtı yarışmasını kazanmayı başaran madenciler, bu yeni basılan tokenleri "blok ödülleri" olarak kazanırlar.
ScriptSig veya Kilit Açma Komutu olarak da bilinen tanık verileri, aktarılan bitcoin'i kilitlemek için gereken dijital imza ve genel anahtar bilgilerini içerir. SegWit yükseltmesi, bir işlemin ScriptSig kısmı için ayrı bir "tanık alanı" tanıttı.
Dijital imza bilgilerini işlem giriş alanından ayrı olarak işleyerek, her bloğa sığacak işlemler için daha fazla alan oluştu.
Blok başına daha fazla işlem, daha yüksek işlem hacmi yetenekleri anlamına gelir. Böylece, saniyede 2-3 işlem yerine, Bitcoin saniyede 7-10 SegWit işlemi işleyebilir. Artan kapasite, Bitcoin blok zincirinin daha yüksek işlem hacmini kaldırabilmesi nedeniyle daha düşük ücretler anlamına da gelir.
Ayırmaya rağmen, düğümlerin hem işlem verilerini hem de tanık verilerini zincir üzerinde işlediğini belirtmek önemlidir. Hiçbir yan zincir veya Katman 2 protokolü kullanılmaz.
Blok ağırlığı
SegWit'ten önce, madenciler bitcoin bloklarını boyuta (bayt cinsinden) göre ölçüyordu. Bu sistem, bloklar hem tanık hem de işlem verilerini içerdiğinde iyi çalışıyordu, ancak ayrıldıklarında sorunlarla karşılaştı.
Bunu aşmak için, yükseltme blokların boyutunu yönetmek için blok ağırlığı adı verilen bir metrik tanıttı.
Bu konseptle, her 1 megabaytlık blok 4.000.000 ağırlık biriminden (WU) oluşur. Her işleme aşağıdaki formüle göre bir ağırlık verilir:
Temel işlem boyutu bayt cinsinden (tanık verisi olmadan) * 3 + Toplam işlem boyutu bayt cinsinden.
Tanık alanı verilerini hesaplamadan çıkararak, SegWit işlemlerinin ağırlığı çok daha düşüktür. Öte yandan, SegWit olmayan bir işlem hala tanık verilerini içerir. Bu, SegWit olmayan işlemlerin her zaman SegWit işlemlerinden 4 kat daha fazla ağırlığa sahip olduğu anlamına gelir.
Bu konsept, bir blok neredeyse tamamen tanık verilerinden oluşuyorsa, bir bitcoin bloğunun boyutunu teorik olarak 1MB'den 4MB'ye çıkarır. Ancak, bu pratikte mümkün değildir.
Ağırlıklı sistemin ana faydası, madencileri çoğunlukla SegWit işlemleri içeren blokları işlemeye teşvik etmesidir. SegWit işlemlerinin eski bloklarla aynı ücretleri taşıdığı varsayılırsa, bir madenci blok başına çok daha fazla SegWit işlemi işleyebilir. Blok başına ne kadar çok işlem işlerlerse, o kadar çok ücret kazanırlar.
Her iki taraf için de bir kazan-kazan durumu. Ya da öyle düşünürdünüz.
Artık işlem esnekliği sorunları yok
SegWit yapısı altında, hashlenmiş işlem kimliği yalnızca işlem bilgilerini içerir, tanık alanı bilgilerini içermez.
Bu değişiklik, daha önce esneklik saldırılarına olanak tanıyan bir bitcoin işleminin değiştirilebilir bileşenini ortadan kaldırır.
Sonuç olarak, Bitcoin Lightning Network gibi ikincil ölçeklendirme çözümleri mümkün hale geldi.
SegWit neden tartışmalıydı? 🤔
Geliştirme topluluğundaki birçok kişi, SegWit'in Bitcoin'in ölçeklendirme sorunlarını ele almak için yeterince ileri gitmediğini düşünüyordu.
SegWit'in aktivasyonuna karşı başlıca argümanlar şunları içerir:
- Bitcoin'in saniyede 7-10 işleme çıkan işlem hacmi, merkezi olmayan, küresel bir ödeme sistemi için hala yeterince yüksek değil.
- Ücretler nispeten yüksek kalacak ve mikro işlemler gibi şeyleri finansal olarak imkansız hale getirecekti.
- Madenciler hala eski işlem bloklarını işleyebilir, bu da esnekliğin hala bir tehdit olduğu anlamına gelir.
- Daha sonra SegWit'in Bitmain'in ASICBOOST mekanizmasını, madencilik donanımı verimliliğini önemli ölçüde artıran bir istismarı geçersiz kılacağı keşfedildi.
Wuille'nin önerisinden yaklaşık bir yıl sonra, o ve Eric Lombrozo da dahil olmak üzere diğer Bitcoin Core geliştiricileri, kodu yaklaşan Bitcoin Core 0.13.1 güncellemesinde yayınlamaya hazırlamışlardı. SegWit'i etkinleştirmek için kalan tek adım, madencilerin yeni SegWit bloklarını işlemeye başlamasıydı.
Uygulamasını sağlamlaştırmak için, tüm bitcoin madencilerinin %95'inden fazlasının, başlangıcından sonraki ilk iki hafta içinde SegWit'e destek göstermesi gerekecekti — o zamanki koşullar göz önüne alındığında büyük bir engel.
Kullanıcı tarafından etkinleştirilen soft fork
Söylemeye gerek yok, Bitmain gibi büyük madencilik firmaları önerilen değişikliklerden hala memnun değildi ve SegWit'in etkinleştirilmesini desteklemeyi reddetti.
2017 yılının başlarında, "Shaolinfry" adlı takma adlı bir geliştirici, Bitcoin düğümlerinin çevrimiçi bir bitcoin-dev gönderisinde bir soft fork uygulayabileceği olasılığını gündeme getirdi.
Kullanıcı tarafından etkinleştirilen bir soft fork daha önce Bitcoin ağında hiç denenmemişti, ancak geliştiricilerin madencilerden yaklaşık %51 destekle SegWit'i geçirmesine izin verecekti. Yeni blokları desteklemeyi reddedenler, bloklarının düğümler tarafından reddedilmesi riskini taşıyordu. Çözüm risksiz değildi. SegWit, madencilerden yeterli destek alamazsa, sonuç kaçınılmaz olarak bir zincir bölünmesine yol açacaktı.
SegWit'e karşı olanlar, bunun yerine farklı bir SegWit 2X hard fork yükseltmesi önerdi. Bu, SegWit'i uygulayacak ve Bitcoin'in blok boyutunu 2MB'ye çıkaracaktı.
Önceki yükseltmenin aksine, SegWit 2X, Bitcoin istemcisinin önceki sürümleriyle geriye dönük uyumlu olmayacaktı. Bu değişiklikler, düğümlerin ağda çalışmaya devam etmek için yazılımlarını güncellemesi gerektiği anlamına geliyordu.
SegWit ve New York Anlaşması 🗽
Sektörün önde gelen şirketleri Consensus 2017'de bir araya geldi ve toplu olarak "New York Anlaşması" olarak adlandırılan bir mutabakat zaptı imzaladı. Bu belge, SegWit'in yaz aylarında devreye girmesi ve Bitcoin'in blok boyutunun Kasım ayına kadar 2MB'ye çıkarılması planlarını ortaya koydu.
Kasım ayından önce Shaolinfry, iki Bitcoin İyileştirme Teklifi (BIP) hazırladı; BIP148 ve BIP149. İlki, hızlı ve kesin bir çözümü temsil ediyordu; SegWit blokları için destek sinyali verin, aksi takdirde düğümler bloklarınızı reddedecektir. İkincisi, madencilerin sisteme dahil olması için daha uzun bir zaman ufku sağladı ve ertesi yıl Temmuz ayına kadar bir etkinleştirme son tarihi belirledi.
Tarih yaklaştıkça, Bitmain Garanti mühendisi James Hillard yeni bir BIP önerdi; BIP91. Çözümü, hem SegWit 2X hem de BIP148'i birbiriyle uyumlu hale getirmeyi amaçlıyordu. İki rakip SegWit güncellemesi yüzünden neden bir zincir bölünmesi riski alasınız ki, ikisini de uyumlu hale getirebilirken?
1 Ağustos'ta, yeterli madencilik desteği SegWit'in etkinleştirilmesini sağladı. Ancak New York Anlaşması'nın ikinci aşaması aynı desteği alamadı.
Bitcoin'in blok boyutunu 2MB'ye çıkaramama, Bitcoin Cash (BCH) — Bitcoin blok zincirinden yeni bir çatallanmış projenin oluşumuyla sonuçlandı.
Bitcoin bağımsızlık gününün önemi
SegWit'in tanıtılması ve topluluğun blok boyutu artışını reddetme kararı, daha geniş Bitcoin topluluğu için dönüm noktası niteliğinde bir anı temsil ediyordu.
SegWit, Bitcoin blok zincirindeki değişiklikler söz konusu olduğunda konsensüsün önemini ve Bitcoin'in sunduğu gücün merkeziyetsizleşme derecesini gösterdi.
Hiçbir birey ağı ele geçiremedi ve teklifini gerçekleştiremedi.
Bunun yerine, topluluk tartıştı, yineledi ve tek bir bireyin yönlendirmesiyle değil, kolektif bir grup olarak konsensüse ulaşma uzun sürecini sürdürdü.
Bitcoin satın almaya başlayın
SegWit hakkında her şeyi öğrendiğinize göre, kripto yolculuğunuza devam etmeye ve Bitcoin satın almaya hazır mısınız?
Bitcoin (BTC) nasıl alınır hakkında daha fazla bilgi için Kraken Öğrenim Merkezi rehberimize göz atın ve bugün Kraken'de bir hesap açın.