Kaynak: Bitcoin Magazine; Derleme: Wuzhu, Altın Finans
Rollups, son zamanlarda BTC'nin ölçeklendirilmesinin odak noktası haline geldi ve genel ilgi açısından Lighting Ağı'ndan gerçekten dikkat çeken ilk şey haline geldi. Rollups, bir off-chain ikinci katman olarak Lighting Ağı'nın temel Likidite kısıtlamalarından veya sınırlamalarından etkilenmeyen veya kısıtlanmayan bir şey olmayı amaçlar; yani son kullanıcıların paranın alınabilmesi için önceden fon ataması (veya "borç verme") yapılması gerekir, veya aracı Düğümün ödeme miktarını gönderenden alıcıya kadar tam akışını sağlamak için kanal dengesi gereklidir.
Bu sistemler başlangıçta Ethereum ve diğer Turing Tamamlandı sistemlerinde çalıştırılmış olsa da, son zamanlarda odakları bunları UTXO tabanlı blokzincirlerine (örneğin BTC'ye) taşımak üzerine yoğunlaştı. Bu makale, şu anda BTC'de uygulanan durumu tartışmayı değil, uzun vadeli olarak arzulanan Rollup'ın yeteneklerini tartışmayı amaçlamaktadır; bu da, BTC'nin şu anda desteklemediği doğrudan ZKP'nın BTC'de doğrulanabilme yeteneğine dayanmaktadır.
Roll'un temel yapısı aşağıdaki gibidir: Bir hesap (BTC'de UTXO olarak adlandırılır), Rollup içindeki tüm kullanıcı bakiyelerini saklar. Bu UTXO, bir taahhüt içerir ve bu taahhüt, Merkle ağacının kökü olarak var olan Rollup'taki mevcut hesapların tüm mevcut bakiyelerini taahhüt eder. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çiftini kullanarak yetkilendirilir, bu nedenle off-chain harcamaları yapmak için kullanıcıların hala Gizli Anahtarla belirli içeriği imzalaması gerekmektedir. Bu yapı, kullanıcıların herhangi bir izin gerektirmeden her zaman ayrılabilmesini sağlar, sadece hesaplarının bir Merkle ağacının parçası olduğunu kanıtlayan bir işlem oluşturarak tek taraflı olarak Rollup'tan çıkabilirler ve işletmeciye izin gerekmez.
Rollup operatörleri, off-chain işlemleri tamamlarken on-chain hesap bakiyelerini güncellemek için bir ZKP içermesi gerektiğinden, işlemde bir ZKP içermelidir; aksi takdirde işlem geçersiz olacak ve Blok zinciri içermeyecektir. Bu kanıt, off-chain hesabının tüm değişikliklerinin hesap sahibinin uygun yetkilendirmesini doğrulamak ve operatörün kullanıcıların fonlarını çalmak veya dürüst olmayarak yeniden dağıtmak için bakiyeyi güncellemediğini doğrulamak için insanlara izin verir.
Sorun şu ki, eğer sadece merkle ağacının kökü on-chain'de yayınlanırsa, kullanıcılar onu görüntüleyip erişebilir, o zaman şubelelerini ağaçta nasıl yerleştirecekler ve istediklerinde izinsiz çıkış yapabilecekler?
Uygun Rollup
Her doğru Rollup'ta, her yeni off-chain işlemi onaylandığında ve Rollup hesabının durumu değiştiğinde, bilgiler doğrudan blok zincirine yerleştirilir. Tüm ağaç değil, bu çok saçma olurdu, sadece ağacı yeniden oluşturmak için gerekli bilgiler. Basit bir uygulamada, Rollup'taki mevcut tüm hesapların özeti bakiyeyi içerecek ve hesap sadece Rollup işlemlerine güncellendikçe eklenir.
Daha gelişmiş bir uygulamada, bakiye farkı kullanılır. Bu, güncelleme sürecinde hangi hesapların fon eklediğini veya çıkardığını özetleyen bir şeydir. Bu, her Rollup güncellemesinin sadece hesap bakiyesi değişikliklerini içerdiği anlamına gelir. Ardından, kullanıcılar zinciri tarayabilir ve Rollup'ın başından itibaren 'hesaplamaları' yaparak hesap bakiyesinin mevcut durumunu yeniden oluşturabilir, bu da onlara mevcut bakiyenin Merkle ağacını yeniden oluşturma imkanı verir.
Bu, büyük miktarda harcamayı ve Blok alanını (böylece fonları koruyarak) tasarruf etmenizi sağlarken, kullanıcıların tek taraflı çıkış için gereken bilgilere erişimlerini sağlar. Rollup kuralları, bu verilerin Blok zinciri kullanılarak kullanıcılara sunulan resmi rollup'a dahil edilmesini gerektirir, yani hesap özeti veya hesap farklılıklarını içermeyen işlemler geçersiz olarak kabul edilir.
Geçerlilik süresi
Kullanıcıların çekme veri erişilebilirlik sorunlarını ele alma alternatif bir yöntem, verileri Blok zinciri dışında başka bir yere yerleştirmektir. Bu, rollup'un verilerin başka bir yerde erişilebilir olmasını sağlamak için hala zorunlu olduğu ince sorunlar ortaya çıkarır. Geleneksel olarak, bu amaçla rollup gibi sistemlerin veri erişilebilirlik katmanı olarak tasarlanmış diğer Blok zincirleri kullanılır.
Bu, aynı derecede güçlü bir güvenlik engeli yaratır. Veriler doğrudan BTCBlok zincirine yayınlandığında, Konsensüs kuralları mutlak doğruluğunu garanti eder. Ancak, dış sistemlere yayınlandığında, yapabileceği en iyi şey SPV kanıtını doğrulamaktır, yani verilerin başka bir sisteme yayınlandığı.
Bu, verilerin başka bir blok zincirinde on-chain olduğunu doğrulamayı gerektirir ve sonunda bir Oracle Makine sorunu haline gelir. BTC'nin Blok zinciri, kendi blok zinciri dışında meydana gelen herhangi bir şeyi tam olarak doğrulayamaz, en iyi yapabileceği şey ZKP'yi doğrulamaktır. Bununla birlikte, ZKP, rollup verilerini içeren bloğun gerçekten açık bir şekilde yayınlandığını doğrulayamaz. Dış bilginin gerçekten herkese açık olup olmadığını doğrulayamaz.
Bu, veri tutma saldırılarına kapıyı açar, yani yayınlanan verilere taahhütler oluşturup bunları rollup'ı ilerletmek için kullanır, ancak veriler aslında kullanılamaz. Bu, kullanıcıların fonlarını çekememesine neden olur. Tek gerçek çözüm, BTC dışında bir sistem değeri ve teşvik yapısına tamamen bağımlı olmaktır.
İlerleme veya gerileme
Bu, rollup için bir çıkmaz yarattı. Veri kullanılabilirlik sorunu gündeme geldiğinde, temelde verilerin BTC blok zincirine mi yoksa başka bir yere mi yayınlanacağı gibi ikili bir seçenek var. Bu seçenek, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde ciddi bir etkiye sahiptir.
BTCBlok zinciri olarak veri erişilebilirliği katmanı olarak kullanmak, rollup'un ölçeklenebilirliği için sert bir üst sınır belirleyecektir. Blok alanı sınırlıdır, bu bir seferde var olabilecek rollup sayısı ve tüm rollup'ların off-chain işlem yapabileceği toplam işlem sayısı için bir üst sınır belirler. Her rollup güncellemesi, hesapların son güncellemelerinden bu yana değişen bakiyesi ile orantılı olarak Blok alanı kullanır. Bilgi teorisi, verilerin belirli bir düzeye sıkıştırılabileceği kadarına izin verir ve bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri erişilebilirliğini sağlamak için farklı katmanların kullanılması, ölçeklenebilirlik kazançlarının sert bir üst limitini ortadan kaldırabilir, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC'nin veri erişilebilirliğini Rollup'ta gerçekleştirmek durumunda, kullanıcıların çekmek istedikleri veriler otomatik olarak blokzincire gönderilmediyse, Rollup'ın durumu değişemez. Validium'ların kullanılması durumunda, bu güvence tamamen aldatma ve veri gizleme yeteneğine bağlıdır.
Artık, harici bir veri kullanılabilirlik sistemindeki herhangi bir Blok üreticisi, verileri kullanılabilir hale getirmek için bu bloğu yayınlamak yerine bir blok üreterek BTCRollup kullanıcılarının fonlarını ele geçirebilir.
Öyleyse, gerçekten BTC üzerinde ideal bir Rollup uygulamasını gerçekleştirirsek, tek taraflı kullanıcı çekimini gerçekten nasıl yapabiliriz?
Bitcoin Magazine: Rollup hangi zorluklarla karşı karşıya?
Kaynak: Bitcoin Magazine; Derleme: Wuzhu, Altın Finans
Rollups, son zamanlarda BTC'nin ölçeklendirilmesinin odak noktası haline geldi ve genel ilgi açısından Lighting Ağı'ndan gerçekten dikkat çeken ilk şey haline geldi. Rollups, bir off-chain ikinci katman olarak Lighting Ağı'nın temel Likidite kısıtlamalarından veya sınırlamalarından etkilenmeyen veya kısıtlanmayan bir şey olmayı amaçlar; yani son kullanıcıların paranın alınabilmesi için önceden fon ataması (veya "borç verme") yapılması gerekir, veya aracı Düğümün ödeme miktarını gönderenden alıcıya kadar tam akışını sağlamak için kanal dengesi gereklidir.
Bu sistemler başlangıçta Ethereum ve diğer Turing Tamamlandı sistemlerinde çalıştırılmış olsa da, son zamanlarda odakları bunları UTXO tabanlı blokzincirlerine (örneğin BTC'ye) taşımak üzerine yoğunlaştı. Bu makale, şu anda BTC'de uygulanan durumu tartışmayı değil, uzun vadeli olarak arzulanan Rollup'ın yeteneklerini tartışmayı amaçlamaktadır; bu da, BTC'nin şu anda desteklemediği doğrudan ZKP'nın BTC'de doğrulanabilme yeteneğine dayanmaktadır.
Roll'un temel yapısı aşağıdaki gibidir: Bir hesap (BTC'de UTXO olarak adlandırılır), Rollup içindeki tüm kullanıcı bakiyelerini saklar. Bu UTXO, bir taahhüt içerir ve bu taahhüt, Merkle ağacının kökü olarak var olan Rollup'taki mevcut hesapların tüm mevcut bakiyelerini taahhüt eder. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çiftini kullanarak yetkilendirilir, bu nedenle off-chain harcamaları yapmak için kullanıcıların hala Gizli Anahtarla belirli içeriği imzalaması gerekmektedir. Bu yapı, kullanıcıların herhangi bir izin gerektirmeden her zaman ayrılabilmesini sağlar, sadece hesaplarının bir Merkle ağacının parçası olduğunu kanıtlayan bir işlem oluşturarak tek taraflı olarak Rollup'tan çıkabilirler ve işletmeciye izin gerekmez.
Rollup operatörleri, off-chain işlemleri tamamlarken on-chain hesap bakiyelerini güncellemek için bir ZKP içermesi gerektiğinden, işlemde bir ZKP içermelidir; aksi takdirde işlem geçersiz olacak ve Blok zinciri içermeyecektir. Bu kanıt, off-chain hesabının tüm değişikliklerinin hesap sahibinin uygun yetkilendirmesini doğrulamak ve operatörün kullanıcıların fonlarını çalmak veya dürüst olmayarak yeniden dağıtmak için bakiyeyi güncellemediğini doğrulamak için insanlara izin verir.
Sorun şu ki, eğer sadece merkle ağacının kökü on-chain'de yayınlanırsa, kullanıcılar onu görüntüleyip erişebilir, o zaman şubelelerini ağaçta nasıl yerleştirecekler ve istediklerinde izinsiz çıkış yapabilecekler?
Uygun Rollup
Her doğru Rollup'ta, her yeni off-chain işlemi onaylandığında ve Rollup hesabının durumu değiştiğinde, bilgiler doğrudan blok zincirine yerleştirilir. Tüm ağaç değil, bu çok saçma olurdu, sadece ağacı yeniden oluşturmak için gerekli bilgiler. Basit bir uygulamada, Rollup'taki mevcut tüm hesapların özeti bakiyeyi içerecek ve hesap sadece Rollup işlemlerine güncellendikçe eklenir.
Daha gelişmiş bir uygulamada, bakiye farkı kullanılır. Bu, güncelleme sürecinde hangi hesapların fon eklediğini veya çıkardığını özetleyen bir şeydir. Bu, her Rollup güncellemesinin sadece hesap bakiyesi değişikliklerini içerdiği anlamına gelir. Ardından, kullanıcılar zinciri tarayabilir ve Rollup'ın başından itibaren 'hesaplamaları' yaparak hesap bakiyesinin mevcut durumunu yeniden oluşturabilir, bu da onlara mevcut bakiyenin Merkle ağacını yeniden oluşturma imkanı verir.
Bu, büyük miktarda harcamayı ve Blok alanını (böylece fonları koruyarak) tasarruf etmenizi sağlarken, kullanıcıların tek taraflı çıkış için gereken bilgilere erişimlerini sağlar. Rollup kuralları, bu verilerin Blok zinciri kullanılarak kullanıcılara sunulan resmi rollup'a dahil edilmesini gerektirir, yani hesap özeti veya hesap farklılıklarını içermeyen işlemler geçersiz olarak kabul edilir.
Geçerlilik süresi
Kullanıcıların çekme veri erişilebilirlik sorunlarını ele alma alternatif bir yöntem, verileri Blok zinciri dışında başka bir yere yerleştirmektir. Bu, rollup'un verilerin başka bir yerde erişilebilir olmasını sağlamak için hala zorunlu olduğu ince sorunlar ortaya çıkarır. Geleneksel olarak, bu amaçla rollup gibi sistemlerin veri erişilebilirlik katmanı olarak tasarlanmış diğer Blok zincirleri kullanılır.
Bu, aynı derecede güçlü bir güvenlik engeli yaratır. Veriler doğrudan BTCBlok zincirine yayınlandığında, Konsensüs kuralları mutlak doğruluğunu garanti eder. Ancak, dış sistemlere yayınlandığında, yapabileceği en iyi şey SPV kanıtını doğrulamaktır, yani verilerin başka bir sisteme yayınlandığı.
Bu, verilerin başka bir blok zincirinde on-chain olduğunu doğrulamayı gerektirir ve sonunda bir Oracle Makine sorunu haline gelir. BTC'nin Blok zinciri, kendi blok zinciri dışında meydana gelen herhangi bir şeyi tam olarak doğrulayamaz, en iyi yapabileceği şey ZKP'yi doğrulamaktır. Bununla birlikte, ZKP, rollup verilerini içeren bloğun gerçekten açık bir şekilde yayınlandığını doğrulayamaz. Dış bilginin gerçekten herkese açık olup olmadığını doğrulayamaz.
Bu, veri tutma saldırılarına kapıyı açar, yani yayınlanan verilere taahhütler oluşturup bunları rollup'ı ilerletmek için kullanır, ancak veriler aslında kullanılamaz. Bu, kullanıcıların fonlarını çekememesine neden olur. Tek gerçek çözüm, BTC dışında bir sistem değeri ve teşvik yapısına tamamen bağımlı olmaktır.
İlerleme veya gerileme
Bu, rollup için bir çıkmaz yarattı. Veri kullanılabilirlik sorunu gündeme geldiğinde, temelde verilerin BTC blok zincirine mi yoksa başka bir yere mi yayınlanacağı gibi ikili bir seçenek var. Bu seçenek, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde ciddi bir etkiye sahiptir.
BTCBlok zinciri olarak veri erişilebilirliği katmanı olarak kullanmak, rollup'un ölçeklenebilirliği için sert bir üst sınır belirleyecektir. Blok alanı sınırlıdır, bu bir seferde var olabilecek rollup sayısı ve tüm rollup'ların off-chain işlem yapabileceği toplam işlem sayısı için bir üst sınır belirler. Her rollup güncellemesi, hesapların son güncellemelerinden bu yana değişen bakiyesi ile orantılı olarak Blok alanı kullanır. Bilgi teorisi, verilerin belirli bir düzeye sıkıştırılabileceği kadarına izin verir ve bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri erişilebilirliğini sağlamak için farklı katmanların kullanılması, ölçeklenebilirlik kazançlarının sert bir üst limitini ortadan kaldırabilir, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC'nin veri erişilebilirliğini Rollup'ta gerçekleştirmek durumunda, kullanıcıların çekmek istedikleri veriler otomatik olarak blokzincire gönderilmediyse, Rollup'ın durumu değişemez. Validium'ların kullanılması durumunda, bu güvence tamamen aldatma ve veri gizleme yeteneğine bağlıdır.
Artık, harici bir veri kullanılabilirlik sistemindeki herhangi bir Blok üreticisi, verileri kullanılabilir hale getirmek için bu bloğu yayınlamak yerine bir blok üreterek BTCRollup kullanıcılarının fonlarını ele geçirebilir.
Öyleyse, gerçekten BTC üzerinde ideal bir Rollup uygulamasını gerçekleştirirsek, tek taraflı kullanıcı çekimini gerçekten nasıl yapabiliriz?