Kaynak: Bitcoin Magazine; Çeviren: Wu Zhu, Altın Finans
Rollups, son zamanlarda BTC'nin ölçeklendirilmesinin odak noktası haline geldi ve daha geniş bir ilgi alanında ilk kez Lighting Ağı'ndan 'göz alıcı' bir şey oldu. Rollups, Lighting Ağı'nın çekirdek Likidite kısıtlamalarından veya sınırlamalarından etkilenmeyen veya sınırlanmayan bir off-chain ikinci seviye olmayı hedeflemektedir, yani nihai kullanıcıların para alabilmeleri için önceden fon tahsis edilmesi (veya 'ödünç verilmesi') gerekmektedir veya ara Düğümler, ödeme miktarının göndericiden alıcıya kadar olan sürekli akışını sağlamak için kanal bakiyelerine ihtiyaç duyar.
Bu sistemler başlangıçta Ethereum ve diğer Turing Tamamlandı sistemlerinde çalıştırıldı, ancak son zamanlarda odakları bunları UTXO tabanlı blokzincirlerine (örneğin BTC) taşımak üzerine kaydı. Bu makale, şu anda BTC üzerinde uygulanan durumu tartışmak için değil, uzun vadeli hedeflenen ideal Rollup fonksiyonlarını tartışmak için tasarlanmıştır, bu da BTC'nin şu anda desteklemediği, yani doğrudan BTC üzerinde Sıfır Bilgi Kanıtı (ZKP) 'nın doğrulanma yeteneğine bağlıdır.
Roll'un temel yapısı aşağıdaki gibi olup, tek bir hesap (BTC'de UTXO olarak adlandırılır) Rollup'ta tüm kullanıcı bakiyelerini saklar. Bu UTXO, bir taahhüt içerir ve bu taahhüt, Rollup'taki mevcut hesapların tüm mevcut bakiyelerini Merkle ağacının kökü şeklinde temsil 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 Anahtar kullanarak belirli içerikleri imzalaması gerekmektedir. Bu yapının bir parçası olan bu bölüm, kullanıcıların izin almadan her zaman ayrılabilmelerine olanak tanır, sadece hesaplarının bir parçası olduğunu kanıtlayan bir işlem yapmaları yeterlidir, böylece Rollup'tan tek taraflı olarak çıkabilirler ve operatörün iznine ihtiyaç duymazlar.
Rollup işletmecileri, off-chain işlemin tamamlanması sırasında hesap bakiyesi merkle root'unu güncellemek için bir ZKP içermesi gereken bir işlem yapmalıdır. Bu ZKP olmadan işlem geçersiz olacaktır ve Blok zincirinde yer alamayacaktır. Bu kanıt, off-chain hesap değişikliklerinin tümünün hesap sahiplerinin uygun yetkilendirilmesiyle gerçekleşip gerçekleşmediğini ve işletmecilerin kullanıcıların fonlarını çalmak veya dürüst olmayan şekilde yeniden dağıtmak için bakiyeleri kötüye kullanmadıklarını doğrulamak için insanların yapabilmesine izin verir.
Sorun şu ki, sadece merkle ağacının kökü on-chain'de yayınlanırsa, kullanıcılar ona bakabilir ve erişebilir, o zaman şubelerini nasıl ağaçta yerleştirecekler ve istedikleri zaman izinsiz çıkış yapabilecekler?
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 seferinde, bilgiler doğrudan blok zincire yerleştirilir. Tüm ağacı, bu çok saçma olurdu, sadece ağacı yeniden oluşturmak için gereken bilgilerdir. 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ş uygulamalarda, bakiye farkını kullanın. Temelde, bu, güncelleme sürecinde hangi hesapların fon eklediğini veya çıkardığını özetleyen bir şeydir. Bu, her Rollup güncellemesinin sadece hesap bakiyesindeki değişiklikleri içermesini sağlar. Sonra kullanıcılar sadece zinciri tarayabilir ve Rollup'ın başlangıcından itibaren "hesap bakiyesini hesaplayabilir" ve hesap bakiyesinin mevcut durumunu yeniden oluşturmalarına izin verir, bu da onların mevcut bakiyesini Merkel ağacına yeniden oluşturmalarına izin verir.
Bu, büyük miktarda harcamadan ve Blok alanından tasarruf etmenizi sağlar (bu da para tasarrufu anlamına gelir), aynı zamanda kullanıcıların tek taraflı çıkış için gerekli 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 farkı içermeyen işlemler geçersiz kabul edilir.
Geçerlilik süresi
Kullanıcı çekme verilerinin kullanılabilirlik sorunlarını çözmenin başka bir yolu, verileri Blok zinciri dışındaki başka bir yere yerleştirmektir. Bu, rollup'ın verilerin diğer yerlerde mevcut olmasını sağlamak için hala zorlamalı olduğu ince sorunlar ortaya çıkarır. Geleneksel olarak, diğer Blok zincirleri bu amaç için kullanılır ve rollup gibi sistemlerin veri kullanılabilirliği katmanı olarak tasarlanmıştır.
Bu, güvenlik açısından aynı derecede güçlü bir zorluk oluşturur. Veriler doğrudan BTCBlok zincirine yayınlandığında, Konsensüs kuralları onun kesinlikle doğru olduğunu garanti eder. Ancak, dış sistemlere yayınlandığında yapabileceği en iyi şey, verinin başka bir sisteme yayınlandığını doğrulamak için SPV kanıtını doğrulamaktır.
Bu, verilerin diğer on-chain kanıtlarda var olduğunu doğrulamayı gerektirir, bu sonuçta bir Oracle Makine sorunudur. BTC'nin Blok zinciri, kendi Blok zincirinde gerçekleşen herhangi bir şeyi tamamen doğrulayamaz, en iyi yapabileceği şey ZKP'yı doğrulamaktır. Ancak, ZKP, rollup verilerini içeren Blok'un üretildikten 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ısı için kapıyı açar, yani yayınlanan verilere taahhüt oluşturur ve bunu rollup'ı ilerletmek için kullanır, ancak veriler aslında kullanılamaz. Bu, kullanıcıların fonları çekememesine neden olur. Tek gerçek çözüm, tamamen BTC'nin dışında bir sistem değeri ve teşvik yapısına dayanmaktır.
İkilem
Bu, rollup için bir zorluk oluşturur. Veri erişilebilirliği sorunu söz konusu olduğunda, verileri BTC blok zincirine mi yoksa başka bir yere mi yayınlama ikili bir seçenek olarak var. Bu seçim, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde büyük etkiye sahiptir.
Bir yandan, BTCBlok zinciri veri erişilebilirlik katmanı olarak kullanmak, 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ı ve off-chain işlemlerinin toplam rollup miktarı için bir üst sınır belirler. Her rollup güncellemesi, en son güncellemeden bu yana bakiyesi değişen hesap sayısına orantılı olarak Blok alanı gerektirir. Bilgi teorisi, verilerin belirli bir düzeye sıkıştırılmasına izin verir, bu noktada daha fazla genişleme potansiyeli kalmaz.
Öte yandan, veri kullanılabilirliğini sağlamak için farklı katmanlar kullanmak, ölçeklenebilirlik artışının sınırlamasını ortadan kaldırırken, yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC kullanarak veri kullanılabilirliğini gerçekleştiren Rollup'ta, kullanıcıların çıkarmak istediği veri otomatik olarak blok zincirine gönderilmediği sürece, Rollup'ın durumu değişmez. Validium'ları kullanırken, bu garanti tamamen aldatma ve veri gizleme karşı koyabilme yeteneğine bağlıdır.
Şimdi, dış veri kullanılabilirlik sisteminde herhangi bir Blok üreticisi, BTCRollup kullanıcılarının fonlarını ele geçirerek Blok üretimi yapabilir, böylece veri kullanılabilir hale gelir, ancak Blok'u gerçekten yayınlamaz.
Peki, gerçekten ideal bir Rollup uygulaması ile BTC'de tek taraflı kullanıcı çekimini gerçekleştirirsek, nasıl olurdu?
Bitcoin Magazine: Rollup ne gibi zorluklarla karşı karşıya?
Kaynak: Bitcoin Magazine; Çeviren: Wu Zhu, Altın Finans
Rollups, son zamanlarda BTC'nin ölçeklendirilmesinin odak noktası haline geldi ve daha geniş bir ilgi alanında ilk kez Lighting Ağı'ndan 'göz alıcı' bir şey oldu. Rollups, Lighting Ağı'nın çekirdek Likidite kısıtlamalarından veya sınırlamalarından etkilenmeyen veya sınırlanmayan bir off-chain ikinci seviye olmayı hedeflemektedir, yani nihai kullanıcıların para alabilmeleri için önceden fon tahsis edilmesi (veya 'ödünç verilmesi') gerekmektedir veya ara Düğümler, ödeme miktarının göndericiden alıcıya kadar olan sürekli akışını sağlamak için kanal bakiyelerine ihtiyaç duyar.
Bu sistemler başlangıçta Ethereum ve diğer Turing Tamamlandı sistemlerinde çalıştırıldı, ancak son zamanlarda odakları bunları UTXO tabanlı blokzincirlerine (örneğin BTC) taşımak üzerine kaydı. Bu makale, şu anda BTC üzerinde uygulanan durumu tartışmak için değil, uzun vadeli hedeflenen ideal Rollup fonksiyonlarını tartışmak için tasarlanmıştır, bu da BTC'nin şu anda desteklemediği, yani doğrudan BTC üzerinde Sıfır Bilgi Kanıtı (ZKP) 'nın doğrulanma yeteneğine bağlıdır.
Roll'un temel yapısı aşağıdaki gibi olup, tek bir hesap (BTC'de UTXO olarak adlandırılır) Rollup'ta tüm kullanıcı bakiyelerini saklar. Bu UTXO, bir taahhüt içerir ve bu taahhüt, Rollup'taki mevcut hesapların tüm mevcut bakiyelerini Merkle ağacının kökü şeklinde temsil 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 Anahtar kullanarak belirli içerikleri imzalaması gerekmektedir. Bu yapının bir parçası olan bu bölüm, kullanıcıların izin almadan her zaman ayrılabilmelerine olanak tanır, sadece hesaplarının bir parçası olduğunu kanıtlayan bir işlem yapmaları yeterlidir, böylece Rollup'tan tek taraflı olarak çıkabilirler ve operatörün iznine ihtiyaç duymazlar.
Rollup işletmecileri, off-chain işlemin tamamlanması sırasında hesap bakiyesi merkle root'unu güncellemek için bir ZKP içermesi gereken bir işlem yapmalıdır. Bu ZKP olmadan işlem geçersiz olacaktır ve Blok zincirinde yer alamayacaktır. Bu kanıt, off-chain hesap değişikliklerinin tümünün hesap sahiplerinin uygun yetkilendirilmesiyle gerçekleşip gerçekleşmediğini ve işletmecilerin kullanıcıların fonlarını çalmak veya dürüst olmayan şekilde yeniden dağıtmak için bakiyeleri kötüye kullanmadıklarını doğrulamak için insanların yapabilmesine izin verir.
Sorun şu ki, sadece merkle ağacının kökü on-chain'de yayınlanırsa, kullanıcılar ona bakabilir ve erişebilir, o zaman şubelerini nasıl ağaçta yerleştirecekler ve istedikleri zaman izinsiz çıkış yapabilecekler?
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 seferinde, bilgiler doğrudan blok zincire yerleştirilir. Tüm ağacı, bu çok saçma olurdu, sadece ağacı yeniden oluşturmak için gereken bilgilerdir. 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ş uygulamalarda, bakiye farkını kullanın. Temelde, bu, güncelleme sürecinde hangi hesapların fon eklediğini veya çıkardığını özetleyen bir şeydir. Bu, her Rollup güncellemesinin sadece hesap bakiyesindeki değişiklikleri içermesini sağlar. Sonra kullanıcılar sadece zinciri tarayabilir ve Rollup'ın başlangıcından itibaren "hesap bakiyesini hesaplayabilir" ve hesap bakiyesinin mevcut durumunu yeniden oluşturmalarına izin verir, bu da onların mevcut bakiyesini Merkel ağacına yeniden oluşturmalarına izin verir.
Bu, büyük miktarda harcamadan ve Blok alanından tasarruf etmenizi sağlar (bu da para tasarrufu anlamına gelir), aynı zamanda kullanıcıların tek taraflı çıkış için gerekli 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 farkı içermeyen işlemler geçersiz kabul edilir.
Geçerlilik süresi
Kullanıcı çekme verilerinin kullanılabilirlik sorunlarını çözmenin başka bir yolu, verileri Blok zinciri dışındaki başka bir yere yerleştirmektir. Bu, rollup'ın verilerin diğer yerlerde mevcut olmasını sağlamak için hala zorlamalı olduğu ince sorunlar ortaya çıkarır. Geleneksel olarak, diğer Blok zincirleri bu amaç için kullanılır ve rollup gibi sistemlerin veri kullanılabilirliği katmanı olarak tasarlanmıştır.
Bu, güvenlik açısından aynı derecede güçlü bir zorluk oluşturur. Veriler doğrudan BTCBlok zincirine yayınlandığında, Konsensüs kuralları onun kesinlikle doğru olduğunu garanti eder. Ancak, dış sistemlere yayınlandığında yapabileceği en iyi şey, verinin başka bir sisteme yayınlandığını doğrulamak için SPV kanıtını doğrulamaktır.
Bu, verilerin diğer on-chain kanıtlarda var olduğunu doğrulamayı gerektirir, bu sonuçta bir Oracle Makine sorunudur. BTC'nin Blok zinciri, kendi Blok zincirinde gerçekleşen herhangi bir şeyi tamamen doğrulayamaz, en iyi yapabileceği şey ZKP'yı doğrulamaktır. Ancak, ZKP, rollup verilerini içeren Blok'un üretildikten 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ısı için kapıyı açar, yani yayınlanan verilere taahhüt oluşturur ve bunu rollup'ı ilerletmek için kullanır, ancak veriler aslında kullanılamaz. Bu, kullanıcıların fonları çekememesine neden olur. Tek gerçek çözüm, tamamen BTC'nin dışında bir sistem değeri ve teşvik yapısına dayanmaktır.
İkilem
Bu, rollup için bir zorluk oluşturur. Veri erişilebilirliği sorunu söz konusu olduğunda, verileri BTC blok zincirine mi yoksa başka bir yere mi yayınlama ikili bir seçenek olarak var. Bu seçim, rollup'ın güvenliği, egemenliği ve ölçeklenebilirliği üzerinde büyük etkiye sahiptir.
Bir yandan, BTCBlok zinciri veri erişilebilirlik katmanı olarak kullanmak, 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ı ve off-chain işlemlerinin toplam rollup miktarı için bir üst sınır belirler. Her rollup güncellemesi, en son güncellemeden bu yana bakiyesi değişen hesap sayısına orantılı olarak Blok alanı gerektirir. Bilgi teorisi, verilerin belirli bir düzeye sıkıştırılmasına izin verir, bu noktada daha fazla genişleme potansiyeli kalmaz.
Öte yandan, veri kullanılabilirliğini sağlamak için farklı katmanlar kullanmak, ölçeklenebilirlik artışının sınırlamasını ortadan kaldırırken, yeni güvenlik ve egemenlik sorunları da beraberinde getirir. BTC kullanarak veri kullanılabilirliğini gerçekleştiren Rollup'ta, kullanıcıların çıkarmak istediği veri otomatik olarak blok zincirine gönderilmediği sürece, Rollup'ın durumu değişmez. Validium'ları kullanırken, bu garanti tamamen aldatma ve veri gizleme karşı koyabilme yeteneğine bağlıdır.
Şimdi, dış veri kullanılabilirlik sisteminde herhangi bir Blok üreticisi, BTCRollup kullanıcılarının fonlarını ele geçirerek Blok üretimi yapabilir, böylece veri kullanılabilir hale gelir, ancak Blok'u gerçekten yayınlamaz.
Peki, gerçekten ideal bir Rollup uygulaması ile BTC'de tek taraflı kullanıcı çekimini gerçekleştirirsek, nasıl olurdu?