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ıldı, ancak son zamanlarda ağırlık, onları UTXO tabanlı blok zincirlerine (örneğin BTC) taşımaya odaklandı. Bu makale, mevcut durumda BTC üzerinde uygulananı tartışmak için değil, insanların uzun süredir aradığı idealleştirilmiş bir Rollup'un yeteneklerini tartışmak için tasarlanmıştır, bu da BTC'nin şu anda desteklemediği, yani Sıfır Bilgi Kanıtı'nı (ZKP) doğrudan BTC üzerinde doğrulama yeteneğine bağlıdır.
Roll'un temel yapısı aşağıdaki gibidir: Tek bir hesap (BTC'de UTXO olarak adlandırılır) Rollup'taki tüm kullanıcı bakiyelerini saklar. Bu UTXO, bir taahhüt içerir; bu taahhüt, Merkle ağacının kökü şeklinde Rollup'taki mevcut tüm hesap bakiyelerini içerir. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çifti kullanılarak yetkilendirilir, bu nedenle off-chain harcamaları yapabilmek için kullanıcıların belirli içerikleri Gizli Anahtar ile imzalamaları gerekmektedir. Bu yapı, kullanıcıların izin almadan her zaman çıkabilmesine olanak tanır; hesaplarının bir Merkle ağacı parçası olduğunu kanıtlayan bir işlem yapmaları yeterlidir, böylece kullanıcılar, işletmeci iznine gerek kalmadan Rollup'tan tek taraflı olarak çıkabilirler.
Rollup işletmecisi, off-chain işlemleri tamamlarken hesap bakiyesinin on-chain merkle kökünü güncellemek için bir ZKP içermelidir; bu ZKP olmadan işlem geçersiz olur ve Blok zincirine dahil edilemez. Bu kanıt, off-chain hesap üzerinde yapılan tüm değişikliklerin hesap sahibinin uygun yetkilendirmeyle yapıldığını ve işletmecinin kullanıcıların fonlarını çalmak veya onları başka kullanıcılara haksız bir şekilde yeniden dağıtmak için bilinçli bir şekilde bakiyeyi güncellemediğini doğrulamak için insanlara izin verir.
Soru şu ki, sadece merkle ağacının kökü on-chain'de yayınlandığında, kullanıcılar onu görebilir ve erişebilir, ancak istedikleri zaman izinsiz çıkış yapabilmeleri için dallarını nasıl ağaca yerleştirecekler?
Uygun Rollup
Uygun Rollup'ta, her yeni off-chain işlemi onaylandığında ve Rollup hesabının durumu değiştiğinde, bilgiler doğrudan blok zincire yerleştirilir. Tüm ağacı yeniden oluşturmak gibi aptalca bir şey değil, 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'un işlemlerine güncellendiğinde eklenir.
Daha gelişmiş bir uygulamada, bakiye farkı kullanılır. Bu, güncelleme sürecinde hangi hesapların fon eklediğini veya azalttığını özetleyen bir yapıdır. Bu, her Rollup güncellemesinin sadece hesap bakiyesi değişikliklerini içermesini sağlar. 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 Merkel ağacını oluşturmalarına olanak tanır.
Bu şekilde, büyük miktarda harcama ve Blok alanı (ve dolayısıyla fonların) tasarruf edilmesine olanak tanınırken, kullanıcıların tek taraflı çıkış için gerekli bilgilere erişimlerini sağlamalarına izin verilir. 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ı çekme veri kullanılabilirlik sorununu ele almanın başka bir yolu, verileri Blok zinciri dışında başka bir yere koymaktır. Bu, rollup'un verilerin başka yerlerde kullanılabilir olmasını hala zorunlu kılmasıyla ilgili ince sorunları beraberinde getirir. Geleneksel olarak, diğer Blok zincirleri, rollup gibi sistemlerin veri kullanılabilirlik katmanı olarak tasarlanmıştır.
Bu, güçlü bir güvenlik sağlama konusunda aynı derecede güçlü bir ikileme yol açmaktadır. Veri doğrudan BTCBlok zincirine yayınlandığında, Konsensüs kuralları onun kesinlikle doğru olduğunu garanti edebilir. Ancak, bunun dış sistemlere yayınlandığında, en iyi yaptığı şey, SPV kanıtını doğrulamaktır, yani verinin başka bir sisteme yayınlandığı.
Bu, verilerin diğer on-chain kanıtlarında var olduğunu doğrulamak için gereklidir, bu nihayetinde bir Oracle Makine sorunudur. BTC'nin Blok zinciri, kendi Blok zincirinde gerçekleşen her şeyi tamamen doğrulayamaz, yapabileceği en iyi şey ZKP'yi doğrulamaktır. Ancak, ZKP, rollup verilerini içeren Blok'un oluşturulduktan 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 bunları rollup'u ilerletmek için kullanmak, ancak veriler aslında kullanılamaz durumda. Bu, kullanıcıların fon çekmelerine izin vermedi. Tek gerçek çözüm, tamamen BTC dışındaki sistemlerin değerine ve teşvik yapısına dayanmaktır.
İlerleme veya gerileme
Bu, rollup için bir ikilem yaratır. Veri erişilebilirlik sorunu söz konusu olduğunda, verilerin BTC blok zincirine mi yoksa başka bir yere mi yayınlanacağı temelde ikili bir seçenek olarak mevcuttur. Bu seçim, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde önemli bir etkiye sahiptir.
BTCBlok Zinciri'nin veri kullanılabilirlik katmanı olarak kullanılması, rollup'ın ölçeklenebilirliğine sert bir üst sınır getirecektir. Blok alanı sınırlıdır, bu da bir seferde var olabilecek rollup sayısının ve tüm rollup'ların off-chain işleyebileceği işlem sayısının bir üst sınırını belirler. Her rollup güncellemesi, Blok alanına oranla hesap sayısındaki değişikliklerin dengelenmesi gerektirir. Bilgi teorisi, verilerin belirli bir seviyeye kadar sıkıştırılabileceğine izin verir ve bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri kullanılabilirliğini sağlamak için farklı katmanların kullanılması, ölçeklenebilirlik artışının sert bir üst sınırını ortadan kaldırabilir, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. Veri kullanılabilirliğini BTC ile sağlayan Rollup kullanılırken, kullanıcıların çekmek istediği veriler otomatik olarak blok zincirine yayımlanmazsa, Rollup'ın durumu değişemez. Validiums kullanılarak, bu garanti tamamen aldatmaya ve veri gizlemeye karşı dış sistemlerin yeteneğine bağlıdır.
Şu anda, dış veri erişilebilirlik sistemi üzerindeki herhangi bir Blok üreticisi, BTCRollup kullanıcılarının fonlarını ele geçirmek için bir Blok üreterek ve gerçekte bu Bloku yayınlamak yerine, veriyi kullanılabilir hale getirebilir.
Öyleyse, gerçekten ideal bir Rollup uygulamasını BTC üzerinde gerçekleştirirsek, tek taraflı kullanıcı para çekme işlemini gerçekleştirirsek, nasıl olurdu?
Bitcoin Magazine: Rollup'ın karşılaştığı zorluklar nelerdir?
Kaynak: Bitcoin Magazine; Çeviri: Wu Zhu, Gold Financial News
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ıldı, ancak son zamanlarda ağırlık, onları UTXO tabanlı blok zincirlerine (örneğin BTC) taşımaya odaklandı. Bu makale, mevcut durumda BTC üzerinde uygulananı tartışmak için değil, insanların uzun süredir aradığı idealleştirilmiş bir Rollup'un yeteneklerini tartışmak için tasarlanmıştır, bu da BTC'nin şu anda desteklemediği, yani Sıfır Bilgi Kanıtı'nı (ZKP) doğrudan BTC üzerinde doğrulama yeteneğine bağlıdır.
Roll'un temel yapısı aşağıdaki gibidir: Tek bir hesap (BTC'de UTXO olarak adlandırılır) Rollup'taki tüm kullanıcı bakiyelerini saklar. Bu UTXO, bir taahhüt içerir; bu taahhüt, Merkle ağacının kökü şeklinde Rollup'taki mevcut tüm hesap bakiyelerini içerir. Tüm bu hesaplar Açık Anahtar/Özel Anahtar çifti kullanılarak yetkilendirilir, bu nedenle off-chain harcamaları yapabilmek için kullanıcıların belirli içerikleri Gizli Anahtar ile imzalamaları gerekmektedir. Bu yapı, kullanıcıların izin almadan her zaman çıkabilmesine olanak tanır; hesaplarının bir Merkle ağacı parçası olduğunu kanıtlayan bir işlem yapmaları yeterlidir, böylece kullanıcılar, işletmeci iznine gerek kalmadan Rollup'tan tek taraflı olarak çıkabilirler.
Rollup işletmecisi, off-chain işlemleri tamamlarken hesap bakiyesinin on-chain merkle kökünü güncellemek için bir ZKP içermelidir; bu ZKP olmadan işlem geçersiz olur ve Blok zincirine dahil edilemez. Bu kanıt, off-chain hesap üzerinde yapılan tüm değişikliklerin hesap sahibinin uygun yetkilendirmeyle yapıldığını ve işletmecinin kullanıcıların fonlarını çalmak veya onları başka kullanıcılara haksız bir şekilde yeniden dağıtmak için bilinçli bir şekilde bakiyeyi güncellemediğini doğrulamak için insanlara izin verir.
Soru şu ki, sadece merkle ağacının kökü on-chain'de yayınlandığında, kullanıcılar onu görebilir ve erişebilir, ancak istedikleri zaman izinsiz çıkış yapabilmeleri için dallarını nasıl ağaca yerleştirecekler?
Uygun Rollup
Uygun Rollup'ta, her yeni off-chain işlemi onaylandığında ve Rollup hesabının durumu değiştiğinde, bilgiler doğrudan blok zincire yerleştirilir. Tüm ağacı yeniden oluşturmak gibi aptalca bir şey değil, 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'un işlemlerine güncellendiğinde eklenir.
Daha gelişmiş bir uygulamada, bakiye farkı kullanılır. Bu, güncelleme sürecinde hangi hesapların fon eklediğini veya azalttığını özetleyen bir yapıdır. Bu, her Rollup güncellemesinin sadece hesap bakiyesi değişikliklerini içermesini sağlar. 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 Merkel ağacını oluşturmalarına olanak tanır.
Bu şekilde, büyük miktarda harcama ve Blok alanı (ve dolayısıyla fonların) tasarruf edilmesine olanak tanınırken, kullanıcıların tek taraflı çıkış için gerekli bilgilere erişimlerini sağlamalarına izin verilir. 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ı çekme veri kullanılabilirlik sorununu ele almanın başka bir yolu, verileri Blok zinciri dışında başka bir yere koymaktır. Bu, rollup'un verilerin başka yerlerde kullanılabilir olmasını hala zorunlu kılmasıyla ilgili ince sorunları beraberinde getirir. Geleneksel olarak, diğer Blok zincirleri, rollup gibi sistemlerin veri kullanılabilirlik katmanı olarak tasarlanmıştır.
Bu, güçlü bir güvenlik sağlama konusunda aynı derecede güçlü bir ikileme yol açmaktadır. Veri doğrudan BTCBlok zincirine yayınlandığında, Konsensüs kuralları onun kesinlikle doğru olduğunu garanti edebilir. Ancak, bunun dış sistemlere yayınlandığında, en iyi yaptığı şey, SPV kanıtını doğrulamaktır, yani verinin başka bir sisteme yayınlandığı.
Bu, verilerin diğer on-chain kanıtlarında var olduğunu doğrulamak için gereklidir, bu nihayetinde bir Oracle Makine sorunudur. BTC'nin Blok zinciri, kendi Blok zincirinde gerçekleşen her şeyi tamamen doğrulayamaz, yapabileceği en iyi şey ZKP'yi doğrulamaktır. Ancak, ZKP, rollup verilerini içeren Blok'un oluşturulduktan 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 bunları rollup'u ilerletmek için kullanmak, ancak veriler aslında kullanılamaz durumda. Bu, kullanıcıların fon çekmelerine izin vermedi. Tek gerçek çözüm, tamamen BTC dışındaki sistemlerin değerine ve teşvik yapısına dayanmaktır.
İlerleme veya gerileme
Bu, rollup için bir ikilem yaratır. Veri erişilebilirlik sorunu söz konusu olduğunda, verilerin BTC blok zincirine mi yoksa başka bir yere mi yayınlanacağı temelde ikili bir seçenek olarak mevcuttur. Bu seçim, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde önemli bir etkiye sahiptir.
BTCBlok Zinciri'nin veri kullanılabilirlik katmanı olarak kullanılması, rollup'ın ölçeklenebilirliğine sert bir üst sınır getirecektir. Blok alanı sınırlıdır, bu da bir seferde var olabilecek rollup sayısının ve tüm rollup'ların off-chain işleyebileceği işlem sayısının bir üst sınırını belirler. Her rollup güncellemesi, Blok alanına oranla hesap sayısındaki değişikliklerin dengelenmesi gerektirir. Bilgi teorisi, verilerin belirli bir seviyeye kadar sıkıştırılabileceğine izin verir ve bu noktada daha fazla genişleme potansiyeli yoktur.
Öte yandan, veri kullanılabilirliğini sağlamak için farklı katmanların kullanılması, ölçeklenebilirlik artışının sert bir üst sınırını ortadan kaldırabilir, ancak yeni güvenlik ve egemenlik sorunları da beraberinde getirir. Veri kullanılabilirliğini BTC ile sağlayan Rollup kullanılırken, kullanıcıların çekmek istediği veriler otomatik olarak blok zincirine yayımlanmazsa, Rollup'ın durumu değişemez. Validiums kullanılarak, bu garanti tamamen aldatmaya ve veri gizlemeye karşı dış sistemlerin yeteneğine bağlıdır.
Şu anda, dış veri erişilebilirlik sistemi üzerindeki herhangi bir Blok üreticisi, BTCRollup kullanıcılarının fonlarını ele geçirmek için bir Blok üreterek ve gerçekte bu Bloku yayınlamak yerine, veriyi kullanılabilir hale getirebilir.
Öyleyse, gerçekten ideal bir Rollup uygulamasını BTC üzerinde gerçekleştirirsek, tek taraflı kullanıcı para çekme işlemini gerçekleştirirsek, nasıl olurdu?