Rollups, son zamanlarda Bitcoin'in ölçeklendirilmesinin odak noktası haline gelmiştir ve daha geniş bir ilgi gören ilk şey haline gelmiştir. Rollups, Lighting Ağı'nın temel likidite sınırlamaları veya kısıtlamaları olmadan off-chain ikinci katman olmayı amaçlar, yani son kullanıcıların parayı alabilmesi için önceden fon tahsis eden birine ihtiyaçları vardır veya orta yönlendirme düğümü ödeme miktarının gönderenden alıcıya kadar sürekli akmasını sağlamak için kanal dengelemesi gerektirir.
Bu sistemler başlangıçta Ethereum ve diğer Turing Tamamlandı sistemlerinde çalıştırılıyordu, ancak son zamanlarda odakları bunları UTXO tabanlı blok zincirlerine (örneğin BTC) taşımaya kaydı. Bu makale, şu anda BTC üzerinde uygulanan durumu tartışmayı değil, insanların uzun süredir aradığı ideal Rollup özelliklerini tartışmayı amaçlamaktadır, yani BTC'nin şu anda desteklemediği doğrudan Sıfır Bilgi Kanıtı (ZKP) doğrulaması yeteneğine dayalı olarak.
Roll'un temel yapısı aşağıdaki gibidir: Tek bir hesap (BTC'de UTXO olarak bilinir) Rollup'ta tüm kullanıcı bakiyelerini saklar. Bu UTXO, Rollup'taki mevcut tüm hesapların mevcut bakiyelerini içeren bir taahhütü içerir, bu taahhüt bir Merkle ağacının kökü olarak mevcuttur. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çiftleriyle yetkilendirilir, bu nedenle off-chain harcamaları yapabilmek için kullanıcıların hala Bazı içeriği Gizli Anahtar ile imzalaması gerekir. Bu yapı kullanıcılara herhangi bir izin olmaksızın istedikleri zaman ayrılmalarına izin verir, sadece hesaplarının bir parçası olduğunu kanıtlayan bir işlem oluşturarak Rollup'tan tek taraflı çıkabilirler, operatörün iznine gerek kalmadan.
Rollup operatörleri, off-chain işlemleri tamamlarken on-chain hesap bakiyelerini güncellemek için bir ZKP içermesi gerektiğinden, işlemlerde bir ZKP içermelidir; aksi takdirde işlem geçersiz olur ve Blok zinciri içermemelidir. Bu kanıt, off-chain hesaplarındaki tüm değişikliklerin hesap sahibinin uygun izniyle yapıldığını ve operatörün kullanıcıların fonlarını çalmak veya dürüst olmayarak diğer kullanıcılara yeniden dağıtmak için bakiyeyi kötü niyetli bir şekilde güncellemediğini doğrulamak için insanlara izin verir.
Sorun şu ki, yalnızca merkle ağacının kökü on-chain'de yayınlandığında, kullanıcılar onu görüntüleyip erişebilirler, ancak kollarını ağaca nasıl yerleştireceklerini ve istedikleri zaman izinsiz çıkmalarını sağlayacaklarını nasıl bilecekler?
Uygun Rollup
Her doğru Rollup hesap durumu değiştiğinde, off-chain işlemler onaylandığında ve Rollup hesap durumu değiştiğinde, bilgiler doğrudan blok zincirine yerleştirilir. Tüm ağacı değil, sadece ağacın yeniden oluşturulması için gerekli bilgileri. Basit bir uygulamada, Rollup'taki mevcut tüm hesapların özeti bakiyeyi içerecek ve hesap sadece Rollup işlemlerine güncellendiğinde eklenir.
Daha gelişmiş bir uygulamada, bakiye farkı kullanılır. Bu temel olarak, güncelleme sürecinde hangi hesaplara fon eklendi veya çıkarıldığıyla ilgili bir özet sağlar. Bu, her Rollup güncellemesinin yalnızca hesap bakiyesinde gerçekleşen değişiklikleri içermesini sağlar. Ardından, kullanıcılar zinciri tarayabilir ve Rollup'un başından itibaren hesap bakiyesinin mevcut durumunu 'hesaplamak' için kullanabilir, bu da onlara mevcut bakiyenin Merkle ağacını yeniden oluşturmalarına izin verir.
Bu, maliyet ve Blok alanı tasarrufu sağlarken (bu da fon tasarrufu sağlar), aynı zamanda kullanıcıların tek taraflı çıkış için gereken bilgileri garanti altına almalarına izin verir. Rollup kuralları, bu verilerin hesap özeti veya hesap farklılığı içermeyen işlemlerin, Blok zinciri tarafından kullanıcılara sunulan resmi rollup içinde geçersiz işlemler olarak kabul edilmesini gerektirir.
Geçerlilik süresi
Kullanıcıların veri çekme kullanılabilirlik sorunlarına alternatif bir yaklaşım, verileri Blok zinciri dışındaki başka bir yere koymaktır. Bu, rollup'ın hala verilerin başka bir yerde kullanılabilir olmasını kesin olarak sağlamak için zorunlu olmasıyla ilgili ince bir sorun getiriyor. Geleneksel olarak, bu amaçla diğer Blok zincirleri, özellikle rollup gibi sistemlerin veri kullanılabilirlik katmanı olarak tasarlanmıştır.
Bu, aynı derecede güçlü bir güvenlik koruması zorluğuna neden oldu. Veriler doğrudan BTCBlok zincirine yayımlandığında, Konsensüs kuralları onun kesinlikle doğru olduğunu garanti edebilir. Ancak dış sistemlere yayımlandığında, yapabileceği en iyi şey SPV kanıtını doğrulamaktır, yani verilerin başka bir sisteme yayımlandığı.
Bu, verilerin diğer on-chain kanıtlarında bulunduğunu doğrulamayı gerektirir; bu sonuçta bir Oracle Makine sorunudur. BTC Blok zinciri, kendi on-chain'de gerçekleşen herhangi bir şey dışında herhangi bir şeyi tam olarak doğrulayamaz, en iyi yapabileceği şey ZKP'yi doğrulamaktır. Bununla birlikte, ZKP, rollup verilerini içeren Blok'un gerçekten yayınlandıktan sonra herkese açık olup olmadığını doğrulayamaz. Dış bilgilerin gerçekten herkese açık olup olmadığını doğrulayamaz.
Bu, veri tutma saldırısının kapılarını açtı, yani veri yayınlama taahhütleri oluşturmak ve rollup'ı ilerletmek için kullanmak, ancak veri aslında kullanılamaz. Bu, kullanıcıların fon çekememesine neden olur. Tek gerçek çözüm, tamamen BTC dışı sistemlerin değerine ve teşvik yapısına dayanmaktır.
Çıkmazda
Bu, rollup için bir çıkmaz yarattı. Veri kullanılabilirlik sorunu gündeme geldiğinde, verileri BTC blok zincirine mi yoksa başka bir yere mi yayınlamanın temelde ikili bir seçenek olduğu ortaya çıkıyor. Bu seçenek, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde ciddi etkilere sahiptir.
Bir yandan, BTCBlok Zinciri'ni veri erişilebilirlik katmanı olarak kullanmak, rollup'un ölçeklenebilirliği için bir sınırlama getirir. Blok alanı sınırlıdır, bu da bir seferde var olabilecek rollup sayısı ve off-chain işlemlerle ilgili tüm rollup'ların toplam sayısı için bir üst sınır belirler. Her rollup güncellemesi, hesapların son güncellemeden bu yana bakiyede değişiklik olduğunda Blok alanıyla orantılı olarak gerçekleşir. Bilgi teorisi, verilerin belli bir seviyeye kadar sıkıştırılmasına izin verir, bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri kullanılabilirliğini sağlamak için farklı katmanlar kullanmak, ölçeklenebilirlik kazançlarının sınırlarını kaldırır, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC kullanarak veri kullanılabilirliğini sağlamak için Rollup'ta, kullanıcıların çıkarmak istediği veriler otomatik olarak blok zincirine yayınlanmadığında, Rollup'ın durumu değişmez. Validium'ları kullanırken, bu garanti tamamen aldatma ve veri gizlemeyi engelleme yeteneğine dayanır.
Şu anda, harici veri kullanılabilirlik sistemlerindeki herhangi bir Blok üreticisi, BTCRollup kullanıcısının fonlarını ele geçirerek Blok üretimi yapabilir ve gerçekten Blok yayınlamayabilir, böylece veri kullanılabilir hale getirilebilir.
Peki, gerçekten de BTC üzerinde ideal Rollup uygulamasını gerçekleştirirsek, tek taraflı kullanıcı çekme işlemini gerçekleştirirsek, ne olacak?
Bitcoin Magazine: Rollup hangi zorluklarla karşı karşıya?
Kaynak: Bitcoin Magazine; Çeviri: Wuzhu, Jīnsècáijīng
Rollups, son zamanlarda Bitcoin'in ölçeklendirilmesinin odak noktası haline gelmiştir ve daha geniş bir ilgi gören ilk şey haline gelmiştir. Rollups, Lighting Ağı'nın temel likidite sınırlamaları veya kısıtlamaları olmadan off-chain ikinci katman olmayı amaçlar, yani son kullanıcıların parayı alabilmesi için önceden fon tahsis eden birine ihtiyaçları vardır veya orta yönlendirme düğümü ödeme miktarının gönderenden alıcıya kadar sürekli akmasını sağlamak için kanal dengelemesi gerektirir.
Bu sistemler başlangıçta Ethereum ve diğer Turing Tamamlandı sistemlerinde çalıştırılıyordu, ancak son zamanlarda odakları bunları UTXO tabanlı blok zincirlerine (örneğin BTC) taşımaya kaydı. Bu makale, şu anda BTC üzerinde uygulanan durumu tartışmayı değil, insanların uzun süredir aradığı ideal Rollup özelliklerini tartışmayı amaçlamaktadır, yani BTC'nin şu anda desteklemediği doğrudan Sıfır Bilgi Kanıtı (ZKP) doğrulaması yeteneğine dayalı olarak.
Roll'un temel yapısı aşağıdaki gibidir: Tek bir hesap (BTC'de UTXO olarak bilinir) Rollup'ta tüm kullanıcı bakiyelerini saklar. Bu UTXO, Rollup'taki mevcut tüm hesapların mevcut bakiyelerini içeren bir taahhütü içerir, bu taahhüt bir Merkle ağacının kökü olarak mevcuttur. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çiftleriyle yetkilendirilir, bu nedenle off-chain harcamaları yapabilmek için kullanıcıların hala Bazı içeriği Gizli Anahtar ile imzalaması gerekir. Bu yapı kullanıcılara herhangi bir izin olmaksızın istedikleri zaman ayrılmalarına izin verir, sadece hesaplarının bir parçası olduğunu kanıtlayan bir işlem oluşturarak Rollup'tan tek taraflı çıkabilirler, operatörün iznine gerek kalmadan.
Rollup operatörleri, off-chain işlemleri tamamlarken on-chain hesap bakiyelerini güncellemek için bir ZKP içermesi gerektiğinden, işlemlerde bir ZKP içermelidir; aksi takdirde işlem geçersiz olur ve Blok zinciri içermemelidir. Bu kanıt, off-chain hesaplarındaki tüm değişikliklerin hesap sahibinin uygun izniyle yapıldığını ve operatörün kullanıcıların fonlarını çalmak veya dürüst olmayarak diğer kullanıcılara yeniden dağıtmak için bakiyeyi kötü niyetli bir şekilde güncellemediğini doğrulamak için insanlara izin verir.
Sorun şu ki, yalnızca merkle ağacının kökü on-chain'de yayınlandığında, kullanıcılar onu görüntüleyip erişebilirler, ancak kollarını ağaca nasıl yerleştireceklerini ve istedikleri zaman izinsiz çıkmalarını sağlayacaklarını nasıl bilecekler?
Uygun Rollup
Her doğru Rollup hesap durumu değiştiğinde, off-chain işlemler onaylandığında ve Rollup hesap durumu değiştiğinde, bilgiler doğrudan blok zincirine yerleştirilir. Tüm ağacı değil, sadece ağacın yeniden oluşturulması için gerekli bilgileri. Basit bir uygulamada, Rollup'taki mevcut tüm hesapların özeti bakiyeyi içerecek ve hesap sadece Rollup işlemlerine güncellendiğinde eklenir.
Daha gelişmiş bir uygulamada, bakiye farkı kullanılır. Bu temel olarak, güncelleme sürecinde hangi hesaplara fon eklendi veya çıkarıldığıyla ilgili bir özet sağlar. Bu, her Rollup güncellemesinin yalnızca hesap bakiyesinde gerçekleşen değişiklikleri içermesini sağlar. Ardından, kullanıcılar zinciri tarayabilir ve Rollup'un başından itibaren hesap bakiyesinin mevcut durumunu 'hesaplamak' için kullanabilir, bu da onlara mevcut bakiyenin Merkle ağacını yeniden oluşturmalarına izin verir.
Bu, maliyet ve Blok alanı tasarrufu sağlarken (bu da fon tasarrufu sağlar), aynı zamanda kullanıcıların tek taraflı çıkış için gereken bilgileri garanti altına almalarına izin verir. Rollup kuralları, bu verilerin hesap özeti veya hesap farklılığı içermeyen işlemlerin, Blok zinciri tarafından kullanıcılara sunulan resmi rollup içinde geçersiz işlemler olarak kabul edilmesini gerektirir.
Geçerlilik süresi
Kullanıcıların veri çekme kullanılabilirlik sorunlarına alternatif bir yaklaşım, verileri Blok zinciri dışındaki başka bir yere koymaktır. Bu, rollup'ın hala verilerin başka bir yerde kullanılabilir olmasını kesin olarak sağlamak için zorunlu olmasıyla ilgili ince bir sorun getiriyor. Geleneksel olarak, bu amaçla diğer Blok zincirleri, özellikle rollup gibi sistemlerin veri kullanılabilirlik katmanı olarak tasarlanmıştır.
Bu, aynı derecede güçlü bir güvenlik koruması zorluğuna neden oldu. Veriler doğrudan BTCBlok zincirine yayımlandığında, Konsensüs kuralları onun kesinlikle doğru olduğunu garanti edebilir. Ancak dış sistemlere yayımlandığında, yapabileceği en iyi şey SPV kanıtını doğrulamaktır, yani verilerin başka bir sisteme yayımlandığı.
Bu, verilerin diğer on-chain kanıtlarında bulunduğunu doğrulamayı gerektirir; bu sonuçta bir Oracle Makine sorunudur. BTC Blok zinciri, kendi on-chain'de gerçekleşen herhangi bir şey dışında herhangi bir şeyi tam olarak doğrulayamaz, en iyi yapabileceği şey ZKP'yi doğrulamaktır. Bununla birlikte, ZKP, rollup verilerini içeren Blok'un gerçekten yayınlandıktan sonra herkese açık olup olmadığını doğrulayamaz. Dış bilgilerin gerçekten herkese açık olup olmadığını doğrulayamaz.
Bu, veri tutma saldırısının kapılarını açtı, yani veri yayınlama taahhütleri oluşturmak ve rollup'ı ilerletmek için kullanmak, ancak veri aslında kullanılamaz. Bu, kullanıcıların fon çekememesine neden olur. Tek gerçek çözüm, tamamen BTC dışı sistemlerin değerine ve teşvik yapısına dayanmaktır.
Çıkmazda
Bu, rollup için bir çıkmaz yarattı. Veri kullanılabilirlik sorunu gündeme geldiğinde, verileri BTC blok zincirine mi yoksa başka bir yere mi yayınlamanın temelde ikili bir seçenek olduğu ortaya çıkıyor. Bu seçenek, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde ciddi etkilere sahiptir.
Bir yandan, BTCBlok Zinciri'ni veri erişilebilirlik katmanı olarak kullanmak, rollup'un ölçeklenebilirliği için bir sınırlama getirir. Blok alanı sınırlıdır, bu da bir seferde var olabilecek rollup sayısı ve off-chain işlemlerle ilgili tüm rollup'ların toplam sayısı için bir üst sınır belirler. Her rollup güncellemesi, hesapların son güncellemeden bu yana bakiyede değişiklik olduğunda Blok alanıyla orantılı olarak gerçekleşir. Bilgi teorisi, verilerin belli bir seviyeye kadar sıkıştırılmasına izin verir, bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri kullanılabilirliğini sağlamak için farklı katmanlar kullanmak, ölçeklenebilirlik kazançlarının sınırlarını kaldırır, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC kullanarak veri kullanılabilirliğini sağlamak için Rollup'ta, kullanıcıların çıkarmak istediği veriler otomatik olarak blok zincirine yayınlanmadığında, Rollup'ın durumu değişmez. Validium'ları kullanırken, bu garanti tamamen aldatma ve veri gizlemeyi engelleme yeteneğine dayanır.
Şu anda, harici veri kullanılabilirlik sistemlerindeki herhangi bir Blok üreticisi, BTCRollup kullanıcısının fonlarını ele geçirerek Blok üretimi yapabilir ve gerçekten Blok yayınlamayabilir, böylece veri kullanılabilir hale getirilebilir.
Peki, gerçekten de BTC üzerinde ideal Rollup uygulamasını gerçekleştirirsek, tek taraflı kullanıcı çekme işlemini gerçekleştirirsek, ne olacak?