Rollup'lar son zamanlarda BTC ölçeklendirmesinin odak noktası haline geldi ve daha geniş ilgi açısından Lighting Ağı'ndan gerçekten "şovu çalan" ilk şey oldu. Rollup'lar, Lighting Ağı çekirdek Likidite kısıtlamaları tarafından kısıtlanmayan veya kısıtlanmayan bir zincir dışı katman 2 olacak şekilde tasarlanmıştır, yani son kullanıcının parayı almak için fonları önceden tahsis edecek (veya "ödünç verecek") birine ihtiyacı vardır veya ara yol Düğüm, ödeme tutarının göndericiden alıcıya tam akışını kolaylaştırmak için kanal bakiyesine ihtiyaç duyar.
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) taşımak üzerine kaydırıldı. Bu makale, şu anda BTC üzerinde uygulanan durumu tartışmayı değil, uzun vadeli idealleştirilmiş Rollup işlevlerini tartışmayı amaçlamaktadır, yani BTC'nin şu anda desteklemediği doğrudan Sıfır Bilgi Kanıtı (ZKP) yeteneğine dayalıdır.
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, mevcut hesapların tüm güncel bakiyelerini içeren bir taahhüt içerir, bu taahhüt bir Merkle ağacının kökü şeklinde mevcuttur. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çiftini kullanarak yetkilendirilir, bu nedenle off-chain harcamaları yapabilmek için kullanıcıların hala Belirli Anahtar ile belirli içerikleri imzalaması gerekmektedir. Bu yapı, bu kısmın kullanıcıların herhangi bir izin gerektirmeden istedikleri zaman ayrılabilmelerine olanak tanır, sadece hesaplarının bir parçası olduğunu kanıtlayan işlemi yapmaları yeterlidir, böylece Rollup'tan tek taraflı olarak çıkabilirler ve işletmeciye izin almalarına gerek kalmaz.
Rollup operatörleri, off-chain işlemleri tamamlarken on-chain hesap bakiyelerini güncellemek için bir ZKP içermesi gereken bir işlemi içermelidir; aksi takdirde işlem geçersiz olacak ve Blok zinciri içinde yer alamayacaktır. Bu kanıt, off-chain hesaplarındaki tüm değişikliklerin hesap sahibinin uygun izniyle gerçekleştirildiğini ve operatörün kullanıcı fonlarını çalmak veya düzensiz bir şekilde yeniden dağıtmak için düzenli olarak bakiyeleri güncellemediğini doğrulama imkanı sağlar.
Sorun şu ki, eğer sadece merkle ağacının kökü on-chain'de yayınlanırsa, kullanıcılar ona bakabilir ve erişebilir, o zaman kollarını nasıl ağaca yerleştirebilirler ki istedikleri zaman izinsiz çıkabilsinler? 01928374656574839201
Uygun Rollup
Her doğru Rollup'ta, her yeni off-chain işlemin onaylandığı ve Rollup hesabının durumunun değiştiği her durumda, bilgiler doğrudan blok zincirine yerleştirilir. Tüm ağacı değil, bu çok saçma olur, sadece ağacı yeniden oluşturmak için gerekli olan bilgileri. Basit bir uygulamada, Rollup'taki mevcut tüm hesap özetleri bakiyeyi içerecek ve hesap sadece Rollup işlemlerine güncellendiğinde eklenir.
Daha gelişmiş uygulamalarda, hesap farkını kullanın. Temelde, bu, güncelleme sürecinde hangi hesapların fonlarının arttığını veya azaldığını özetleyen bir şeydir. Bu, her Rollup güncellemesinin yalnızca hesap bakiyesinde gerçekleşen değişiklikleri içermesini sağlar. Sonra kullanıcılar sadece zinciri taramak ve Rollup'ın başlangıcından itibaren "hesap bakiyesini hesaplamak" için hesap bakiyesinin mevcut durumunu elde edebilir, bu da onlara mevcut bakiyeyi yeniden inşa etmelerine olanak tanır.
Bu şekilde, büyük miktarda harcama ve Blok alanından tasarruf edebilir (ve böylece fonları koruyabilir), aynı zamanda kullanıcıların tek taraflı çıkış için gereken bilgileri garanti etmelerine izin verir. Rollup kuralları, bu verilerin, kullanıcılara Blok zinciri kullanılarak sağlanan resmi rollup'ta dahil edilmesini gerektirir, yani hesap özetini veya hesap farklılıklarını içermeyen işlemler geçersiz işlemler olarak kabul edilir.
Geçerlilik süresi
Kullanıcı çekme veri erişilebilirlik sorununu çözmenin başka bir yöntemi, verileri Blok zinciri dışında başka bir yerde saklamaktır. Bu, rollup'ın verilerin başka bir yerde kullanılabilir olmasını sağlamak için hala zorunlu olduğu karmaşık sorunları ortaya çıkarır. Geleneksel olarak, bu amaçla diğer Blok zincirleri rollup gibi sistemlerin veri erişilebilirlik katmanı olarak tasarlanmıştır.
Bu, güçlü bir güvenlik koruması sağlama konusunda benzer bir çıkmaz yaratmaktadır. 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, en iyi yapabileceği şey, verinin başka bir sisteme yayımlandığını doğrulamak için SPV kanıtını doğrulamaktır.
Bu, verilerin diğer on-chain kanıtlarında var olduğunu doğrulamayı gerektirir, bu nihayetinde bir Oracle Makine sorunudur. BTC'nin Blok zinciri, kendi on-chain'inde meydana gelen herhangi bir şeyi doğrulamaktan başka, dışarıda meydana gelen herhangi bir şeyi tam olarak doğrulayamaz, en iyi yapabildiği şey ZKP'yi doğrulamaktır. Ancak, ZKP, rollup verilerini içeren Blok'un oluşturulmasından sonra gerçekten yayınlanıp yayınlanmadığını doğrulayamaz. Dış bilgilerin gerçekten herkese açık olup olmadığını doğrulayamaz.
Bu, veri tutma saldırılarına kapı açtı, yani yayınlanan verilere taahhüt oluşturmak ve rollup'ı ilerletmek için kullanılır, ancak veriler aslında kullanılabilir değildir. Bu, kullanıcıların fonları çekememesine neden olur. Tek gerçek çözüm, BTC dışındaki sistemlerin değerine ve teşvik yapısına tamamen güvenmektir.
İleri geri durum
Bu, rollup için bir ikilem yaratır. Veri erişilebilirliği sorunu söz konusu olduğunda, verileri BTC blok zincirine veya başka bir yere yayınlama arasında temel olarak ikili bir seçenek vardır. Bu seçim, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde büyük bir etkiye sahiptir.
BTC Zinciri kullanmak, rollup'ın ölçeklenebilirliğine sert bir üst sınır sağlayarak veri kullanılabilirliği katmanı olarak kullanıldığında, Blok Zinciri'nin ölçeklenebilirliğine katkıda bulunur. Blok alanı sınırlıdır, bu nedenle bir seferde var olabilecek rollup sayısını ve tüm rollup'ların off-chain işleme tabi tutulabilecek toplam işlem sayısını sınırlar. Her rollup güncellemesi, hesap bakiyelerindeki değişikliğe orantılı olarak Blok alanına ihtiyaç duyar. Bilgi teorisi, verilerin belirli bir seviyede sıkıştırılmasına izin verir ve bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri erişilebilirliğini sağlamak için farklı katmanlar kullanmak, ölçeklenebilirlik kazançlarının sert bir üst sınırını ortadan kaldırır, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC'nin veri erişilebilirliğini sağlamak için kullanılan Rollup'ta, kullanıcıların çekmek istedikleri veriler otomatik olarak blok zincirine yayınlanmadığında, Rollup'ın durumu değişmez. Validium'ların kullanımıyla, bu garantinin tamamen aldatma ve veri gizleme karşı koyabilen kullanılan harici sisteme bağlı olduğu söylenebilir.
Şu anda, dış veri kullanılabilirlik sistemine herhangi bir Blok üreticisi, BTCRollup kullanıcılarının fonlarını ele geçirerek gerçekten Blok yayınlamak yerine Blok üretebilir ve verileri kullanılabilir hale getirebilir.
Yani, gerçekten BTC üzerinde ideal Rollup uygulamasını gerçekleştirirsek ve tek taraflı kullanıcı çekme işlemini gerçekleştirirsek, o zaman ne olurdu?
Bitcoin Magazine: Rollup hangi zorluklarla karşı karşıya?
Kaynak: Bitcoin Magazine; Çeviren: Wuzhu, Gold Finance
Rollup'lar son zamanlarda BTC ölçeklendirmesinin odak noktası haline geldi ve daha geniş ilgi açısından Lighting Ağı'ndan gerçekten "şovu çalan" ilk şey oldu. Rollup'lar, Lighting Ağı çekirdek Likidite kısıtlamaları tarafından kısıtlanmayan veya kısıtlanmayan bir zincir dışı katman 2 olacak şekilde tasarlanmıştır, yani son kullanıcının parayı almak için fonları önceden tahsis edecek (veya "ödünç verecek") birine ihtiyacı vardır veya ara yol Düğüm, ödeme tutarının göndericiden alıcıya tam akışını kolaylaştırmak için kanal bakiyesine ihtiyaç duyar.
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) taşımak üzerine kaydırıldı. Bu makale, şu anda BTC üzerinde uygulanan durumu tartışmayı değil, uzun vadeli idealleştirilmiş Rollup işlevlerini tartışmayı amaçlamaktadır, yani BTC'nin şu anda desteklemediği doğrudan Sıfır Bilgi Kanıtı (ZKP) yeteneğine dayalıdır.
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, mevcut hesapların tüm güncel bakiyelerini içeren bir taahhüt içerir, bu taahhüt bir Merkle ağacının kökü şeklinde mevcuttur. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çiftini kullanarak yetkilendirilir, bu nedenle off-chain harcamaları yapabilmek için kullanıcıların hala Belirli Anahtar ile belirli içerikleri imzalaması gerekmektedir. Bu yapı, bu kısmın kullanıcıların herhangi bir izin gerektirmeden istedikleri zaman ayrılabilmelerine olanak tanır, sadece hesaplarının bir parçası olduğunu kanıtlayan işlemi yapmaları yeterlidir, böylece Rollup'tan tek taraflı olarak çıkabilirler ve işletmeciye izin almalarına gerek kalmaz.
Rollup operatörleri, off-chain işlemleri tamamlarken on-chain hesap bakiyelerini güncellemek için bir ZKP içermesi gereken bir işlemi içermelidir; aksi takdirde işlem geçersiz olacak ve Blok zinciri içinde yer alamayacaktır. Bu kanıt, off-chain hesaplarındaki tüm değişikliklerin hesap sahibinin uygun izniyle gerçekleştirildiğini ve operatörün kullanıcı fonlarını çalmak veya düzensiz bir şekilde yeniden dağıtmak için düzenli olarak bakiyeleri güncellemediğini doğrulama imkanı sağlar.
Sorun şu ki, eğer sadece merkle ağacının kökü on-chain'de yayınlanırsa, kullanıcılar ona bakabilir ve erişebilir, o zaman kollarını nasıl ağaca yerleştirebilirler ki istedikleri zaman izinsiz çıkabilsinler? 01928374656574839201
Uygun Rollup
Her doğru Rollup'ta, her yeni off-chain işlemin onaylandığı ve Rollup hesabının durumunun değiştiği her durumda, bilgiler doğrudan blok zincirine yerleştirilir. Tüm ağacı değil, bu çok saçma olur, sadece ağacı yeniden oluşturmak için gerekli olan bilgileri. Basit bir uygulamada, Rollup'taki mevcut tüm hesap özetleri bakiyeyi içerecek ve hesap sadece Rollup işlemlerine güncellendiğinde eklenir.
Daha gelişmiş uygulamalarda, hesap farkını kullanın. Temelde, bu, güncelleme sürecinde hangi hesapların fonlarının arttığını veya azaldığını özetleyen bir şeydir. Bu, her Rollup güncellemesinin yalnızca hesap bakiyesinde gerçekleşen değişiklikleri içermesini sağlar. Sonra kullanıcılar sadece zinciri taramak ve Rollup'ın başlangıcından itibaren "hesap bakiyesini hesaplamak" için hesap bakiyesinin mevcut durumunu elde edebilir, bu da onlara mevcut bakiyeyi yeniden inşa etmelerine olanak tanır.
Bu şekilde, büyük miktarda harcama ve Blok alanından tasarruf edebilir (ve böylece fonları koruyabilir), aynı zamanda kullanıcıların tek taraflı çıkış için gereken bilgileri garanti etmelerine izin verir. Rollup kuralları, bu verilerin, kullanıcılara Blok zinciri kullanılarak sağlanan resmi rollup'ta dahil edilmesini gerektirir, yani hesap özetini veya hesap farklılıklarını içermeyen işlemler geçersiz işlemler olarak kabul edilir.
Geçerlilik süresi
Kullanıcı çekme veri erişilebilirlik sorununu çözmenin başka bir yöntemi, verileri Blok zinciri dışında başka bir yerde saklamaktır. Bu, rollup'ın verilerin başka bir yerde kullanılabilir olmasını sağlamak için hala zorunlu olduğu karmaşık sorunları ortaya çıkarır. Geleneksel olarak, bu amaçla diğer Blok zincirleri rollup gibi sistemlerin veri erişilebilirlik katmanı olarak tasarlanmıştır.
Bu, güçlü bir güvenlik koruması sağlama konusunda benzer bir çıkmaz yaratmaktadır. 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, en iyi yapabileceği şey, verinin başka bir sisteme yayımlandığını doğrulamak için SPV kanıtını doğrulamaktır.
Bu, verilerin diğer on-chain kanıtlarında var olduğunu doğrulamayı gerektirir, bu nihayetinde bir Oracle Makine sorunudur. BTC'nin Blok zinciri, kendi on-chain'inde meydana gelen herhangi bir şeyi doğrulamaktan başka, dışarıda meydana gelen herhangi bir şeyi tam olarak doğrulayamaz, en iyi yapabildiği şey ZKP'yi doğrulamaktır. Ancak, ZKP, rollup verilerini içeren Blok'un oluşturulmasından sonra gerçekten yayınlanıp yayınlanmadığını doğrulayamaz. Dış bilgilerin gerçekten herkese açık olup olmadığını doğrulayamaz.
Bu, veri tutma saldırılarına kapı açtı, yani yayınlanan verilere taahhüt oluşturmak ve rollup'ı ilerletmek için kullanılır, ancak veriler aslında kullanılabilir değildir. Bu, kullanıcıların fonları çekememesine neden olur. Tek gerçek çözüm, BTC dışındaki sistemlerin değerine ve teşvik yapısına tamamen güvenmektir.
İleri geri durum
Bu, rollup için bir ikilem yaratır. Veri erişilebilirliği sorunu söz konusu olduğunda, verileri BTC blok zincirine veya başka bir yere yayınlama arasında temel olarak ikili bir seçenek vardır. Bu seçim, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde büyük bir etkiye sahiptir.
BTC Zinciri kullanmak, rollup'ın ölçeklenebilirliğine sert bir üst sınır sağlayarak veri kullanılabilirliği katmanı olarak kullanıldığında, Blok Zinciri'nin ölçeklenebilirliğine katkıda bulunur. Blok alanı sınırlıdır, bu nedenle bir seferde var olabilecek rollup sayısını ve tüm rollup'ların off-chain işleme tabi tutulabilecek toplam işlem sayısını sınırlar. Her rollup güncellemesi, hesap bakiyelerindeki değişikliğe orantılı olarak Blok alanına ihtiyaç duyar. Bilgi teorisi, verilerin belirli bir seviyede sıkıştırılmasına izin verir ve bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri erişilebilirliğini sağlamak için farklı katmanlar kullanmak, ölçeklenebilirlik kazançlarının sert bir üst sınırını ortadan kaldırır, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC'nin veri erişilebilirliğini sağlamak için kullanılan Rollup'ta, kullanıcıların çekmek istedikleri veriler otomatik olarak blok zincirine yayınlanmadığında, Rollup'ın durumu değişmez. Validium'ların kullanımıyla, bu garantinin tamamen aldatma ve veri gizleme karşı koyabilen kullanılan harici sisteme bağlı olduğu söylenebilir.
Şu anda, dış veri kullanılabilirlik sistemine herhangi bir Blok üreticisi, BTCRollup kullanıcılarının fonlarını ele geçirerek gerçekten Blok yayınlamak yerine Blok üretebilir ve verileri kullanılabilir hale getirebilir.
Yani, gerçekten BTC üzerinde ideal Rollup uygulamasını gerçekleştirirsek ve tek taraflı kullanıcı çekme işlemini gerçekleştirirsek, o zaman ne olurdu?