Blockchain Ölçeklenebilirliği - Yan Zincirler ve Ödeme Kanalları

Paylaş
Copied to clipboard!
Blockchain Ölçeklenebilirliği - Yan Zincirler ve Ödeme Kanalları
Bu makaleyi dinleyin
00:00 / 00:00

İçerik


Giriş

Ölçeklenebilirlik genel anlamda bir sistemin artan talebi karşılayabilmek üzere büyüme becerisini ifade eder. Bilgisayarlarda, belirli işlemleri daha hızlı yapabilmek için donanımınızı yükselterek makinanızın performansını artırabilirsiniz. Blockchain ölçeklenebilirliğinde ise daha fazla işlemi idare edebilmesi için sistemin kapasitesinin artırılmasından bahsederiz.

Bitcoin gibi protokollerin birçok güçlü yanı vardır fakat ölçeklenebilirlik bunlardan biri değildir. Eğer Bitcoin, merkezi bir veritabanı üzerinde çalışsaydı yöneticilerin hızı ve verimi artırması oldukça kolay olurdu. Fakat Bitcoin'in değer önerileri (örn. sansüre dayanıklılık) blockchainin bir kopyasının çok sayıda katılımcı tarafından senkronize edilmesini gerektirir.


Blockchain ölçeklenebilirlik sorunu

Bitcoin nodu olmak görece ucuzdur ve en basit cihazlar bile bunu yapabilir. Fakat binlerce node'un birbirleriyle güncel kalması gerektiği için node kapasitelerine yönelik belirli sınırlamalar vardır. 

Veritabanının aşırı büyümesini engellemek için zincir üstü yapılabilecek işlemlerin sayısına bir üst limit uygulanır. Eğer veritabanı çok hızlı şekilde çok büyürse node'lar buna yetişmekte zorlanır. Dahası, bloklar çok büyük olursa da  üzerinde hızla iletilmeleri mümkün olmaz.

Sonuç olarak kendimizi bir dar boğazın içinde buluruz. Bir blockchain, belirli zaman aralıklarıyla yola çıkan bir tren olarak düşünülebilir. Her bir vagonda belirli bir koltuk sayısı bulunur ve bilet bulabilmek için yolcuların daha yüksek fiyat vermesi gerekir. Eğer herkes trene aynı anda binmeye çalışırsa fiyat yüksek olur. Benzer şekilde, beklemede olan işlemlerle tıkanmış bir ağda da işlemlerinin kısa sürede dahil edilmesini isteyen kullanıcıların daha yüksek bir işlem ücreti ödemesi gerekir.

Çözümlerden biri vagonları daha büyük yapmak olabilir. Bu da daha fazla koltuk, daha yüksek verim ve daha ucuz bilet fiyatı anlamına gelir. Fakat koltukların önceden olduğu gibi hemen dolmayacağının bir garantisi olmaz. Aynen blokların ya da blok gas limitlerinin sonsuz şekilde ölçeklenemeyeceği gibi vagonlar da sonsuz olarak büyütülemez. Diğer çözüm ise node'ların ağda kalmasını daha masraflı hale getirmektir çünkü bu durumda node'lar senkronize halde kalabilmek için daha yüksek ücretli donanımlara ihtiyaç duyar.

Ethereum yaratıcısı Vitalik Buterin, blockchainlerin karşı kaşıya kaldığı zorlukları açıklamak için Ölçeklenebilirlik Üçlemi kavramını ortaya atmıştır. Buterin'in teorisine göre protokollerin, ölçeklenebilirlik, güvenlik ve merkeziyetsizlik arasında bir denge kurması gerekir. Bu üçlü birbiriyle çelişir. Örneğin, özelliklerden ikisine fazla odaklanılması durumunda üçüncü özellik zayıflar.

Bu nedenle birçok kişi, güvenlik ve merkeziyetsizliğin blockchainin kendisinde maksimum hale getirilmesi gerektiğini, ölçeklenebilirliğe ise zincir dışı şekilde ulaşılabileceğini düşünür.


Zincir dışı ölçeklendirme çözümleri nelerdir?

Zincir dışı ölçeklendirme, işlemlerin blockchaini tıkamadan yapılabilmesine imkan tanıyan yaklaşımları ifade eder. Kullanıcılar, zincire eklenen protokoller aracılığıyla işlemleri ana zincir üzerinde gözükmeyecek şekilde fon gönderebilir ve alabilir. Buna yönelik iki en önemli ilerlemeden bahsedeceğiz: yan zincirler ve ödeme kanalları.


Yan zincirlere giriş

Yan zincir nedir?

Yan zincir ayrı bir blockchaindir. Fakat, ana zincirle bir şekilde bağlantılı olduğu için kendi başına bir platform değildir. Ana zincir ve yan zincir karşılıklı çalışabilir, bu da varlıkların bir zincirden diğerine rahatça geçiş yapabileceği anlamına gelir.

Fonların zincirler arası geçişini mümkün kılan birkaç yol bulunur. Bazı durumlarda varlıklar özel bir adrese yatırılarak ana zincirden ayrılabilir. Bu varlıklar tam anlamıyla başka bir zincire gönderilmez, bunun yerine adreste kilitlenir ve varlığın tutarına denk bir tutar yan zincir üzerinde çıkarılır. Daha doğrudan bir yol (aynı zamanda merkezi olan seçenek) ise fonları bir emanetçiye göndermek, bu emanetçinin de yatırılan tutarı yan zincir üzerinde fona çevirmesidir.


Yan zincir nasıl çalışır?

Alice'in beş bitcoini olduğunu varsayalım. Bunları bir Bitcoin yan zincirinde denk değerde beş birime çevirmek istiyor (bunlara da yan coinler diyelim). Bahsi geçen yan zincir iki yönlü geçiş kullanıyor yani kullanıcılar varlıklarını ana zincirden yan zincire ve yan zincirden ana zincire transfer edebiliyor. 

Yan zincirin ayrı bir blockchain olduğunu söylemiştik. Dolayısıyla farklı bloklara, node'lara ve doğrulama mekanizmalarına sahip. Alice yan coinlerini almak için elindeki beş bitcoini başka bir adrese gönderiyor. Bu adresin sahibi, bitcoinlerin kendisine ulaşmasının ardından beş yan coini Alice'in yan zincir adresine gönderecek bir kişi olabilir. Ya da bunun yerine adres, güvene dayalı olmanın en aza indirildiği bir düzene sahip olabilir ve bir yazılım ödeme yapıldığını belirleyerek yan coinleri otomatik olarak yatırabilir.


Yan zincir ölçeklendirme


Alice artık yan coinlerini çevirdi fakat bitcoinlerini geri almak için süreci istediği zaman tersine çevirebilir. Artık yan zincire girdiği için bu ayrı blockchain üzerinde işlem yapmaya başlayabilir. Aynı ana zincir üzerindeki gibi diğer kişilere yan coin gönderebilir ya da bu kişilerden yan coin alabilir.

Örneğin bir Binance kapüşonlusu için Bob'a a bir yan coinle ödeme yapabilir. Bitcoin'e dönmek istediğinde kalan dört yan coinini özel bir adrese gönderir. İşlem onaylandıktan sonra dört bitcoinin kilidi açılır ve bu coinler ana zincir üzerinde Alice'in kontrolünde olan bir adrese gönderilir.


Yan zincirler neden kullanılır?

Bütün bunların amacının ne olduğunu merak ediyor olabilirsiniz. Alice neden Bitcoin blockchainini kullanmayı tercih etmiyor?

Bunun yanıtı yan zincirin Bitcoin'in yapamadığı şeyleri yapabiliyor olması. Blockchainler değiş tokuş yapılması için dikkatle tasarlanmış sistemlerdir. Bitcoin en güvenli ve merkeziyetsiz kripto para olsa da verim bakımından en başarılısı değildir. Bitcoin işlemleri geleneksel yöntemlerden daha hızlı olsa da diğer blockchain sistemleriyle kıyaslandığında hala yavaştır. Bloklar her on dakikada bir kazılır ve işlem ücretleri ağın tıkanık olduğu durumlarda oldukça yüksek hale gelebilir.

Açıkçası günlük küçük ödemeler için böylesi yüksek bir güvenlik seviyesi muhtemelen gerekli değildir. Alice bir kahve için ödeme yapıyorsa, işlem onaylanana kadar kasada bekleyemez. Ödeme sırasını meşgul eder ve işlem onaylandığında kahvesi çoktan soğumuş olur.

Yan zincirler aynı kurallara tabi değildir. Aslında çalışmak için Proof of Work'e bile ihtiyaç duymazlar. Herhangi bir mutabakat mekanizmasını kullanabilir, tek bir doğrulayıcıya güvenebilir ya da istediğiniz kadar parametreyi değiştirebilirsiniz. Ana zincirde yer almayan yükseltmeler ekleyebilir, daha büyük bloklar üretebilir ve ödemelerin daha hızlı gerçekleşmesini sağlayabilirsiniz.

İlginç şekilde yan zincirler, önemli yazılım açıklarına ana zinciri etkilemeden sahip olabilir. Bu da yan zincirleri deneysel çalışmalar için kullanılabilen platformlar haline getirir ve normalde ağ çoğunluğunun mutabakatını gerektiren özelliklerin bu zincirlere eklenmesini mümkün kılar.

Kullanıcıların işlemlerinden memnun kalıyor olması göz önüne alındığında yan zincirler, etkin şekilde ölçeklendirme yönünde önemli bir adım olabilir. Ana zincir node'larının yan zincirdeki tüm işlemleri saklaması yönünde bir zorunluluk yoktur. Alice tek bir Bitcoin işlemiyle yan zincire girebilir, yüzlerce yan zincir işlemi yapabilir ve daha sonra yan zincirden çıkabilir. Bitcoin blockchaini bakımından Alice bir giriş ve bir çıkıştan oluşan yalnızca iki işlem yapmış olur.

Ethereum'un Plasma'sı da buna benzer olmakla birlikte bazı önemli farklara sahiptir. Daha fazla bilgiye Ethereum Plasma Nedir? makalemizden ulaşabilirsiniz.


Ödeme kanallarına giriş

Ödeme kanalı nedir?

Ödeme kanalları ölçeklenebilirlik anlamında yan zincirlerle aynı amaca hizmet eder fakat en temelde çok farklı mekanizmalardır. Ödeme kanalları yan zincirlerin yaptığına benzer şekilde blockchainin tıkanmasını engellemek için işlemleri ana zincirin dışına taşır. Fakat yan zincirlerin aksine bu kanalların çalışması için ayrı bir blockchaine gerek yoktur.

Ödeme kanalları, kullanıcıların blockchaine yayınlamadan işlem yapabilmesi için bir akıllı kontrat kullanır. Bunu da iki katılımcı arasında yazılım destekli bir sözleşme kullanarak yapar.


Ödeme kanalları nasıl çalışır?

Lightning Network gibi popüler modellerde öncelikle iki partinin ortaklaşa sahip olduğu bir adrese coinler yatırılır. Bu bir çoklu imza adresidir ve fonların harcanabilmesi için iki imzaya ihtiyaç duyar. Yani eğer Alice ve Bob böyle bir adres yaratırsa ikisi tarafından da onaylama yapılmadan fonlar hareket ettirilemez.

Diyelim ki her ikisi de bir hesaba 10 BTC yatırdı ve hesapta şu anda 20 BTC var. Hem Alice'in hem de Bob'un 10 BTC'ye sahip olduğunu belirterek başlayan bir hesap cetvelini tutmaları ikisi için de kolay olur. Eğer Alice Bob'a bir coin vermek isterse hesap cetvelini Alice'in 9 BTC'si var Bob'un ise 11 BTC'si var şeklinde güncelleyebilirler. Bakiyeleri bu şekilde güncellemeye devam ederken işlemleri blockchaine yayınlamalarına gerek olmaz.


ödeme kanalları nasıl çalışır


Bir süre sonra diyelim ki Alice'in 5 BTC'si ve Bob'un 15 BTC'si var. Bu durumda, bakiyeleri tarafların adreslerine gönderen bir işlem yaratabilir, bu işlemi imzalayabilir ve yayınlayabilirler.

Alice ve Bob kendi hesap cetvellerinde onlarca, yüzlerce ya da binlerce işlem tutabilir. Fakat blockchain söz konusu olduğunda yalnızca iki tane zincir üstü işlem gerçekleştirmiş olurlar: ilk fonlama işlemi ve işleri bittiğinde bakiyelerin son hareketi. Bu ikisinin dışında diğer tüm işlemleri masrafsız ve neredeyse anında olur çünkü zincir dışında gerçekleşir. Ödenecek madenci ücreti ya da beklenecek blok onaylaması bulunmaz.

Tabi ki yukarıda bahsedilen örnek iki partinin iş birliğini yapmasını gerektirir ve bu durum birbirini tanımayan kişiler için ideal değildir. Fakat, hile yapmaya çalışan tarafları cezalandıracak özel mekanizmalar kullanılabilir böylece taraflar güvene ihtiyaç duymadan birbirleriyle güvenli şekilde etkileşim kurabilir. 


Ödeme yönlendirme

Şüphesiz ki ödeme kanalları yüksek hacimli işlemler yapacak iki parti için kullanışlıdır. Fakat ödeme yönlendirme bunu bir adım daha öteye taşır. Ödeme kanallarından oluşan bir ağ yaratılabilir, bu da Alice'in doğrudan bağlantıda olmadığı bir partiye ödeme yapabileceği anlamına gelir. Eğer Bob'un Carol'la açık bir kanalı varsa yeterli kapasite olması durumunda Alice Carol'a ödeme yapabilir. Fonlarını kanalın Bob tarafına yönlendirir ve Bob da bu fonları Carol'a aktarır. Eğer Carol bir diğer katılımcı olan Dan'le bağlantıdaysa aynı şey tekrarlanabilir. 

Böyle bir ağ herkesin birden fazla eşle bağlantıda olduğu dağıtılmış bir yapıya dönüşebilir. Bu tip bir yapıda varış noktasına ulaşmak için genellikle birden fazla yol olur ve kullanıcılar bunların arasından en etkin olanını seçebilir. 


Son Fikirler

İşlemlerin baz blockchaine yük yaratmadan yapılabilmesine imkan tanıyan iki ölçeklendirme yaklaşımından bahsettik. Hem yan zincirler hem de ödeme kanalı teknolojisi henüz olgunlaşmış değil fakat baz katman işlemlerinde görülen sorunları aşmak isteyen kullanıcılar bu iki çözümden de gitgide daha fazla şekilde faydalanılıyor.

Zaman ilerledikçe ve ağa daha fazla katılımcı eklendikçe merkeziyetsizliğin korunmaya devam etmesi önemli. Bu da ancak blockchainin büyümesine yönelik limitler koyarak ve bu sayede yeni node’ların kolayca katılmasını sağlayarak yapılabilir. Zincir dışı ölçeklendirme çözümünün savunucuları zamanla ana zincirin yalnızca yüksek değerde işlemler için ya da yan zincirlere giriş/çıkış ve kanal açmak/kapatmak için kullanılacağına inanıyor.



Loading