Orijinal olarak Miranda Christ ve Joseph Bonneau tarafından yazılmıştır.
Orijinal metnin derlenmesi: Deep Tide TechFlow
Blockchain daha fazla kullanıcıyı ve daha sık işlemleri desteklediğinden, doğrulayıcılar tarafından işlemleri doğrulamak için saklanan bilgi (veya "durum") miktarı artar. Örneğin Bitcoin'de durum, bir dizi harcanmamış işlem çıktısından (UTXO'lar) oluşur. Ethereum'da durum, her hesabın hesap bakiyesinden ve her akıllı sözleşmenin kodundan ve saklanmasından oluşur.
Blockchain, nüfusun büyük bir kısmı için gerçek günlük işlemleri desteklemek için yeterli sayıda hesap veya UTXO ile büyüdükçe, bu depolama yükü yönetilemez hale gelecek ve doğrulayıcı olmayı zorlaştıracak ve merkezi olmayan yönetim için bir tehdit haline gelecektir. Cezbedici bir çözüm, Merkle ağaçları ve sıfır bilgi kanıtları gibi araçların daha önce hayal bile edilemeyen şeyleri başarmamıza yardımcı olduğu kriptografiye yönelmektir.
Bu tam olarak "durumsuz bir blockchain"in hedefidir. Ancak üzerlerinde yapılan birçok araştırmaya rağmen hala pratik olmaktan uzaklar. Ancak ilerlemedeki bu gecikmenin doğal olduğu ortaya çıktı; bu yapılar ile pratiklik arasındaki uçurum asla kapatılmayacak. Son çalışmalarımız, ne kadar akıllı olursa olsun, herhangi bir vatansız blockchain teklifinin, durumu yönetmek için ek önlemler olmadan mümkün olmadığını gösteriyor. Ancak bu makalenin sonunda da göstereceğimiz gibi, bu olasılık dışı sonuç cesaret kırıcı olmamalıdır.
durum yok
Bugün devlet çok büyük ama idare edilebilir. Örneğin, bir Bitcoin düğümü yaklaşık 7 GB veri depolar ve bir Ethereum düğümü yaklaşık 650 GB veri depolar. Bununla birlikte, tam düğümlerdeki depolama yükü, zincirin verimi (saniyedeki işlemler veya TPS) ile kabaca doğrusal olarak ölçeklenir ve bu, bugün hala kabul edilemez. Şu anda tasarlandığı gibi, günlük işlemleri (saniyede on ila yüz binlerce işlem) gerçek anlamda desteklemek için gereken durum, gigabaytlarca ve hatta petabaytlarca depolama gerektirecek şekilde yönetilemez hale gelecektir.
Bu, insanları doğrulayıcıların ihtiyaç duyduğu durum miktarını önemli ölçüde azaltmanın teknik yollarını bulmaya motive etti. Doğrulayıcıların işlem hacmine bakılmaksızın yalnızca sabit büyüklükteki durumu saklamasını gerektiren durumsuz bir blok zincirinin uygulanması çok önemlidir (aslında bu terim yanlış bir isimdir: hala durum vardır, ancak yeterince küçüktür, böylece herhangi bir gelecekte pratik olabilir) verim - genellikle sabit boyut). Bu hafif depolama gereksinimi, doğrulayıcı düğümü çalıştırmayı kolaylaştıracak; iyimser bir yaklaşımla, herkes telefonunda bir düğüm çalıştırabilir. Doğrulayıcı sayısının artması zincirin güvenliğini artıracağından doğrulayıcıların giriş engelinin azaltılması önemlidir.
Durum bilgisi olmayan blok zincirler üzerine yapılan çok sayıda araştırmaya rağmen (örneğin Todd, Buterin, Boneh ve diğerleri ve Srinivasan ve diğerleri tarafından), bunlar pratik olmaktan uzaktır ve bilgimize göre hiçbiri kullanılmamıştır. Bilinen tüm durum bilgisi olmayan blok zincirlerdeki temel sorun, doğrulayıcıların kendi hesaplarıyla ilgili işlemleri doğrulamasına yardımcı olmak için kullanıcıların tanık adı verilen ek verileri saklamasını gerektirmesidir. Örneğin bu tanık, kullanıcının hesabının ve bakiyesinin küresel devlet taahhüdüne dahil olduğunu gösteren bir Merkle katılım kanıtı olabilir. Kullanıcılar işlem yaptıklarında hesaplarında yeterli bakiye bulunduğunu göstermek için bu tanığı doğrulayıcılara sunarlar.
Hiçbir zaman değiştirilmesi gerekmeyen özel anahtarların saklanmasının aksine, bu tanıklar aktif olarak işlem yapmayan kullanıcılar için bile sık sık değişir ve kullanıcılara gerçekçi olmayan bir yük getirir. Benzer şekilde, küresel olarak diğer tüm kredi kartı işlemlerini sürekli olarak izlediğinizi ve bazı yerel verileri kendi kredi kartınızı kullanacak şekilde güncellediğinizi hayal edin. Bir blockchain'in pratik olabilmesi için kullanıcıların blockchain ile çevrimdışı olarak ve yalnızca işlem gönderirken etkileşime girebilmesi gerekir. Donanım cüzdanları gibi birçok durumda tanıkların güncellenmesi sadece zahmetli değil aynı zamanda imkansızdır.
Bu bizi doğal bir araştırma sorusuna yönlendiriyor: Sık sık tanık güncellemesi gerektirmeyen (veya yalnızca seyrek tanık güncellemesi gerektiren) durum bilgisi olmayan bir blok zinciri oluşturabilir miyiz? Bu soruyu yanıtlamak için durum bilgisi olmayan blok zincirleri genelleştiren yeni bir teorik çerçeve (Geri Alınabilir Kanıt Sistemi) geliştiriyoruz. Bu çerçeveyi kullanarak, beklenmedik bir sonuç ortaya koyuyoruz: Kompakt küresel durum ile tanıkların sık sık güncellenmesi arasındaki dengeyi uzlaştırmak doğası gereği zordur. Kanıt tekniğimiz bilgi teoriktir; bu, gelecekteki bilgisayarların bu sorunu çözecek kadar güçlü olmayacağı anlamına gelir: durumsuz blockchain yapısı ile pratiklik arasındaki boşluk asla kapatılmayacaktır.
Araştırmamızın arka planı
İmkansız sonuçlarımızın anlaşılmasına yardımcı olmak için öncelikle Merkle ağaçlarını kullanarak durum bilgisi olmayan blok zincirler oluşturmanın doğal ama verimsiz bir yolunu açıklıyoruz. Amacımız, doğrulayıcıların bir kullanıcı tarafından gönderilen bir işlemin geçerli olup olmadığını (örneğin, kullanıcının işlemi gerçekleştirmek için yeterli hesap bakiyesine sahip olup olmadığını) belirlemesine olanak sağlamaktır. Durum bilgisi olmayan bir blockchain şemasında, doğrulayıcılar sabit boyutta bir durumu saklar. Kullanıcılar bir işlem yaparken mutlaka bir tanığı da işleme dahil etmelidir. Doğrulayıcı, kullanıcının işlemi gerçekleştirmek için yeterli hesap bakiyesine sahip olduğunu doğrulamak için mevcut durumu ve kullanıcı tarafından gönderilen (işlem, tanık) çiftini kullanabilir.
İlk önce her (hesap kimliği, bakiye) çiftinin (a, b) bir yaprak düğümü olarak dahil edildiği bir Merkle ağacı oluşturuyoruz. Doğrulayıcılar tarafından saklanan sabit boyutlu durum V, bir dizi hesap bakiyesi çiftine bağlılık görevi gören bu ağacın köküdür. Her kullanıcı, Merkle'nin katılımının kanıtı olarak tanıklığını sürdürür. Bir yaprak (a,b) için Merkle dahil edilme kanıtı, o yapraktan ağacın köküne kadar olan yol boyunca ortak düğümlerden (v1,...,vk) oluşur. A hesabına göre bir işlem ve iddia edilen bir b bakiyesi verildiğinde, bir doğrulayıcı, (a,b)'nin kanıtını (v1,...,vk) mevcut durumu V ile karşılaştırarak b'nin gerçekten a hesabının bakiyesi olduğunu doğrulayabilir. Böyle bir durumda, doğrulayıcı işlemi yürütür ve hesabın bakiyesini buna göre güncellemelidir. Merkle ağaçlarının kullanışlı bir özelliği, bir yaprağın Merkle dahil edilme kanıtı verildiğinde, o yaprak değiştiğinde sonucun kökünü hesaplamanın kolay olmasıdır. Başka bir deyişle, doğrulayıcı, işlem yürütüldükten sonra yeni hesap bakiyesini (a) yakalayan güncellenmiş durumu (V') kolayca hesaplayabilir.
Bu Merkle ağacı şemasının iki önemli dezavantajı vardır. Birincisi, kullanıcının tanığı nispeten büyüktür ve sistemdeki toplam hesap sayısıyla logaritmik olarak artmaktadır. İdeal olarak sabit boyutta olmaları gerekir ve bunu RSA akümülatörleri gibi şemalar kullanarak başarabiliriz.
İkinci dezavantajın önlenmesi daha zordur: Başka bir kullanıcı her işlem yaptığında, hesap bakiyesi çiftinin kanıtı değişir. Bir yaprak düğümün kanıtının, o yaprak düğümden ağacın köküne kadar olan yol üzerindeki ortak düğümlerden oluştuğunu hatırlayın. Diğer yaprak düğümler değişirse düğümlerden biri değişecek ve gerçek bir soruna neden olacaktır. Çoğu blockchain kullanıcısı, paralarını pasif bir şekilde cüzdanlarında tutmak ve yalnızca işlem yapmak istediklerinde çevrimiçi olmak ister. Ancak böyle vatansız bir blockchain'de kullanıcıların, tanık bilgilerini güncel tutmak için diğer kişilerin işlemlerini sürekli izlemesi gerekir. Bu izlemeyi kullanıcı adına üçüncü bir taraf gerçekleştirebilir ancak bu, standart vatansız blockchain modelinden farklıdır. Pratikte bu, durum bilgisi olmayan blok zincirler için aşılmaz bir zorluktur ve kullanıcılara ağır bir yük getirir.
Vardığımız sonuç: vatansızlık mümkün değildir
Bu fenomen yalnızca bu tür Merkle ağaç yapısı için geçerli değildir; bilinen tüm durum bilgisi olmayan blockchain şemaları, kullanıcıların tanık bilgilerini sık sık güncellemelerini gerektirir, bunu burada gösteriyoruz. Daha doğrusu, tanık bilgilerini güncellemesi gereken kullanıcı sayısının, tüm kullanıcılar tarafından yapılan toplam işlem sayısıyla kabaca doğrusal olarak arttığını gösteriyoruz.
Bu, Alice kullanıcısı herhangi bir işlem yapmasa bile diğer kullanıcıların işlemleriyle birlikte tanık bilgilerinin de değişmesi gerekebileceği anlamına gelmektedir. Doğrulayıcılar tarafından depolanan kompakt durum, tam durumu (yani tüm hesap bakiyeleri kümesini) yakalamak için çok küçük olduğu sürece, kompakt durum boyutunu arttırmanın pek bir faydası olmaz. Aşağıda gösterilen bu ilişkiyi teoremimize dayanarak, farklı çıktılara sahip blok zincirleri için günlük gerekli tanık değişikliği sayısıyla birlikte çiziyoruz. Bu grafikler, optimal durum bilgisi olmayan bir blockchain'in tanık bilgilerini kaç kez değiştirmesi gerektiğini gösterir. Burada veri evreni, hesap modelindeki toplam hesap sayısını veya UTXO modelindeki toplam UTXO sayısını ifade etmektedir.
Kanıtımızın merkezinde bilgi-kuramsal bir argüman yer alıyor. Claude Shannon tarafından biçimlendirilen bilgi teorisinin merkezi ilkesi, eğer Alice 2n boyutunda bir kümeden rastgele bir nesne seçerse ve Bob'a hangi nesneyi seçtiğini söylemek isterse, ona en az n bit göndermesi gerektiğidir. Kullanıcıların tanık bilgilerini nadiren güncelledikleri durum bilgisi olmayan bir blockchain şeması mevcutsa, Alice Bob'a hangi nesneyi seçtiğini n'den az bitle söyleyebilir ki bu Shannon'ın kanıtladığı gibi imkansızdır. Dolayısıyla böyle vatansız bir blockchain mevcut değil.
Basitlik açısından, burada biraz daha zayıf bir ifadenin kanıtını açıklıyoruz: Kullanıcıların tanık bilgilerini güncellemesine asla ihtiyaç duymadığı durum bilgisi olmayan bir blockchain yoktur. Mesele şu ki Alice, Bob'a mesajını kodlamak için durum bilgisi olmayan bir blockchain şeması kullanıyor. Başlangıçta hem Alice hem de Bob, tüm n kullanıcı için hesap bakiyesi çiftlerinin tamamını biliyor. Her hesapta en az bir jeton bulunduğunu varsayalım. Hem Alice hem de Bob, durum bilgisi olmayan blok zincirinin kısa V durumunu ve tüm hesap bakiyesi çiftlerinin (ai, bi) tanıklarını da biliyor. Alice ve Bob ayrıca mesajlar ve hesap grupları arasında bir eşleme konusunda da hemfikirdir. Alice, mesajına karşılık gelen bir dizi A hesabını seçecek ve daha sonra bu hesaplardan para harcayacaktır. Vatansız blok zincirini Bob'a onun hakkında bilgi alabileceği kendi seçtiği seti iletmek için kullanacak.
Kodlama: Alice, A'daki her hesaptan bir jeton harcar. Alice, durum bilgisi olmayan bir blockchain şeması kullanarak güncellenmiş durum V'yi hesaplar ve bunu Bob'a gönderir.
Kod çözme: Her i için Bob, Verify(wi, (ai, bi)) öğesinin doğru olup olmadığını kontrol eder. Bob, Verify(wi, (ai, bi)) = false olacak şekilde B hesap kümesinin çıktısını verir.
Bob, Alice'in seçtiği setin çıktısını başarıyla verir: B = A. İlk olarak, eğer Alice ai hesabından bir para harcarsa, eski bakiyesinin kanıtının artık kabul edilmemesi gerektiğini, aksi takdirde Alice'in iki kat harcama yapabileceğini gözlemleyin. Bu nedenle, A'daki her ai hesabı için Doğrula(wi, (ai, bi)) = yanlış ve Bob bu hesabı B'ye dahil edecektir. Öte yandan Bob, Alice'in para harcamadığı B hesaplarını asla dahil etmeyecektir çünkü bu hesapların bakiyeleri aynı kalır ve (kanıtlamak istediğimiz rahat ifadeyi hatırlayın) tanıkları asla değişmeyecektir. Bu nedenle B, A'ya tam olarak eşittir.
Son olarak Alice'in Bob'a göndermesi gereken bit sayısını hesaplayarak çelişkimizi çözüyoruz. Seçebileceği 2^n altküme vardır, dolayısıyla Shannon yasasına göre Bob'a en az n bit göndermelidir. Ancak, yalnızca n bitten çok daha kısa olan sabit boyutlu bir V' durumu gönderir.
Kanıtımızı açıklarken durum bilgisi olmayan bir blok zinciri kullanmış olsak da, Alice ve Bob, akümülatörler, vektör taahhütleri ve kimliği doğrulanmış sözlükler de dahil olmak üzere diğer çeşitli kimliği doğrulanmış veri yapılarını kullanarak benzer verimli iletişimi gerçekleştirebilirler. Bu tür veri yapılarını, tersine çevrilebilir kanıt sistemi adını verdiğimiz yeni bir soyutlama kullanarak resmileştiriyoruz.
Sonucun etkisi
Sonuçlarımız "durumu kriptografik olarak ortadan kaldıramayacağınızı" ve kullanıcıların hiçbir zaman tanıklarını güncellemek zorunda kalmadığı durumsuz bir blockchain oluşturmamıza olanak tanıyan bir taahhüt planı için sihirli bir değnek olmadığını gösteriyor. Durum ortadan kalkmaz ancak doğrulayıcılardan aktarılır ve sık sık tanık güncellemeleri şeklinde kullanıcılara iletilir.
Kesinlikle vatansız blockchain modelinden sapan başka umut verici çözümler de mevcut. Bu modelin doğal bir rahatlaması, üçüncü bir tarafın (ne kullanıcılar ne de doğrulayıcılar) tüm durumun saklanmasından sorumlu olmasına izin vermektir. Kanıt hizmet düğümü adı verilen bu üçüncü taraf, kullanıcı için en son tanık bilgilerini oluşturmak üzere tam durumu kullanır. Kullanıcılar daha sonra bu tanıkları kullanarak, doğrulayıcıların hala yalnızca kompakt durumu sakladığı normal durum bilgisi olmayan bir blok zincirinde olduğu gibi işlem yapabilir. Bu sistemin teşvik mekanizması, özellikle kullanıcıların hizmet kanıtı düğümlerini nasıl telafi ettiği, ilginç bir açık araştırma yönüdür.
Şu ana kadarki tartışmamız L1 blok zincirlerine odaklanmış olsa da, sonuçlarımızın aynı zamanda Toplama sunucuları gibi L2 sistemleri için de etkileri var. Toplamalar (İyimser veya ZK olsun) genellikle L1'de küçük bir değere sahip büyük bir duruma yönelik taahhüdü saklar. Bu durum L2'deki her kullanıcının hesabını içerir. Bu kullanıcıların, cari hesap bakiyelerine ilişkin bir tanık yayınlayarak, doğrudan L1 üzerinden (L2 sunucularının işbirliği olmadan) para çekebilmelerini istiyoruz. Bu kurulum aynı zamanda modelimizde tersinir bir ispat sisteminin bir örneğidir. Aslında durum bilgisi olmayan blok zincirlerin pratikte L2 Toplamaları şeklinde zaten uygulandığı iddia edilebilir.
Ancak ne yazık ki bu, imkansızlık sonuçlarımızın doğrudan geçerli olduğu anlamına gelir. Bir kullanıcının Toplama getirme tanığının sık sık değişmesi gerekir, aksi takdirde L2 durumunun neredeyse tamamının L1'e yazılması gerekir. Sonuç olarak, bugün Toplamalar tipik olarak, kullanıcıların çekmeye hazır olduklarında yeni tanıkları hesaplamalarına yardımcı olan bir "kanıt hizmet düğümüne" benzer bir veri kullanılabilirliği komitesinin (bazen "validium" olarak adlandırılır) varlığını varsayar. Sonuçlarımız, Ethereum belgelerinde kullanıcılara yönelik şu uyarının her zaman geçerli olacağını gösteriyor: "İşlem verileri olmadan kullanıcılar, fonların sahipliğini kanıtlamak ve para çekme işlemini gerçekleştirmek için Merkle kanıtlarını hesaplayamaz."
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
a16z: "Durumsuz Blockchain"in İmkansızlığı Üzerine
Orijinal olarak Miranda Christ ve Joseph Bonneau tarafından yazılmıştır.
Orijinal metnin derlenmesi: Deep Tide TechFlow
Blockchain daha fazla kullanıcıyı ve daha sık işlemleri desteklediğinden, doğrulayıcılar tarafından işlemleri doğrulamak için saklanan bilgi (veya "durum") miktarı artar. Örneğin Bitcoin'de durum, bir dizi harcanmamış işlem çıktısından (UTXO'lar) oluşur. Ethereum'da durum, her hesabın hesap bakiyesinden ve her akıllı sözleşmenin kodundan ve saklanmasından oluşur.
Blockchain, nüfusun büyük bir kısmı için gerçek günlük işlemleri desteklemek için yeterli sayıda hesap veya UTXO ile büyüdükçe, bu depolama yükü yönetilemez hale gelecek ve doğrulayıcı olmayı zorlaştıracak ve merkezi olmayan yönetim için bir tehdit haline gelecektir. Cezbedici bir çözüm, Merkle ağaçları ve sıfır bilgi kanıtları gibi araçların daha önce hayal bile edilemeyen şeyleri başarmamıza yardımcı olduğu kriptografiye yönelmektir.
Bu tam olarak "durumsuz bir blockchain"in hedefidir. Ancak üzerlerinde yapılan birçok araştırmaya rağmen hala pratik olmaktan uzaklar. Ancak ilerlemedeki bu gecikmenin doğal olduğu ortaya çıktı; bu yapılar ile pratiklik arasındaki uçurum asla kapatılmayacak. Son çalışmalarımız, ne kadar akıllı olursa olsun, herhangi bir vatansız blockchain teklifinin, durumu yönetmek için ek önlemler olmadan mümkün olmadığını gösteriyor. Ancak bu makalenin sonunda da göstereceğimiz gibi, bu olasılık dışı sonuç cesaret kırıcı olmamalıdır.
durum yok
Bugün devlet çok büyük ama idare edilebilir. Örneğin, bir Bitcoin düğümü yaklaşık 7 GB veri depolar ve bir Ethereum düğümü yaklaşık 650 GB veri depolar. Bununla birlikte, tam düğümlerdeki depolama yükü, zincirin verimi (saniyedeki işlemler veya TPS) ile kabaca doğrusal olarak ölçeklenir ve bu, bugün hala kabul edilemez. Şu anda tasarlandığı gibi, günlük işlemleri (saniyede on ila yüz binlerce işlem) gerçek anlamda desteklemek için gereken durum, gigabaytlarca ve hatta petabaytlarca depolama gerektirecek şekilde yönetilemez hale gelecektir.
Bu, insanları doğrulayıcıların ihtiyaç duyduğu durum miktarını önemli ölçüde azaltmanın teknik yollarını bulmaya motive etti. Doğrulayıcıların işlem hacmine bakılmaksızın yalnızca sabit büyüklükteki durumu saklamasını gerektiren durumsuz bir blok zincirinin uygulanması çok önemlidir (aslında bu terim yanlış bir isimdir: hala durum vardır, ancak yeterince küçüktür, böylece herhangi bir gelecekte pratik olabilir) verim - genellikle sabit boyut). Bu hafif depolama gereksinimi, doğrulayıcı düğümü çalıştırmayı kolaylaştıracak; iyimser bir yaklaşımla, herkes telefonunda bir düğüm çalıştırabilir. Doğrulayıcı sayısının artması zincirin güvenliğini artıracağından doğrulayıcıların giriş engelinin azaltılması önemlidir.
Durum bilgisi olmayan blok zincirler üzerine yapılan çok sayıda araştırmaya rağmen (örneğin Todd, Buterin, Boneh ve diğerleri ve Srinivasan ve diğerleri tarafından), bunlar pratik olmaktan uzaktır ve bilgimize göre hiçbiri kullanılmamıştır. Bilinen tüm durum bilgisi olmayan blok zincirlerdeki temel sorun, doğrulayıcıların kendi hesaplarıyla ilgili işlemleri doğrulamasına yardımcı olmak için kullanıcıların tanık adı verilen ek verileri saklamasını gerektirmesidir. Örneğin bu tanık, kullanıcının hesabının ve bakiyesinin küresel devlet taahhüdüne dahil olduğunu gösteren bir Merkle katılım kanıtı olabilir. Kullanıcılar işlem yaptıklarında hesaplarında yeterli bakiye bulunduğunu göstermek için bu tanığı doğrulayıcılara sunarlar.
Hiçbir zaman değiştirilmesi gerekmeyen özel anahtarların saklanmasının aksine, bu tanıklar aktif olarak işlem yapmayan kullanıcılar için bile sık sık değişir ve kullanıcılara gerçekçi olmayan bir yük getirir. Benzer şekilde, küresel olarak diğer tüm kredi kartı işlemlerini sürekli olarak izlediğinizi ve bazı yerel verileri kendi kredi kartınızı kullanacak şekilde güncellediğinizi hayal edin. Bir blockchain'in pratik olabilmesi için kullanıcıların blockchain ile çevrimdışı olarak ve yalnızca işlem gönderirken etkileşime girebilmesi gerekir. Donanım cüzdanları gibi birçok durumda tanıkların güncellenmesi sadece zahmetli değil aynı zamanda imkansızdır.
Bu bizi doğal bir araştırma sorusuna yönlendiriyor: Sık sık tanık güncellemesi gerektirmeyen (veya yalnızca seyrek tanık güncellemesi gerektiren) durum bilgisi olmayan bir blok zinciri oluşturabilir miyiz? Bu soruyu yanıtlamak için durum bilgisi olmayan blok zincirleri genelleştiren yeni bir teorik çerçeve (Geri Alınabilir Kanıt Sistemi) geliştiriyoruz. Bu çerçeveyi kullanarak, beklenmedik bir sonuç ortaya koyuyoruz: Kompakt küresel durum ile tanıkların sık sık güncellenmesi arasındaki dengeyi uzlaştırmak doğası gereği zordur. Kanıt tekniğimiz bilgi teoriktir; bu, gelecekteki bilgisayarların bu sorunu çözecek kadar güçlü olmayacağı anlamına gelir: durumsuz blockchain yapısı ile pratiklik arasındaki boşluk asla kapatılmayacaktır.
Araştırmamızın arka planı
İmkansız sonuçlarımızın anlaşılmasına yardımcı olmak için öncelikle Merkle ağaçlarını kullanarak durum bilgisi olmayan blok zincirler oluşturmanın doğal ama verimsiz bir yolunu açıklıyoruz. Amacımız, doğrulayıcıların bir kullanıcı tarafından gönderilen bir işlemin geçerli olup olmadığını (örneğin, kullanıcının işlemi gerçekleştirmek için yeterli hesap bakiyesine sahip olup olmadığını) belirlemesine olanak sağlamaktır. Durum bilgisi olmayan bir blockchain şemasında, doğrulayıcılar sabit boyutta bir durumu saklar. Kullanıcılar bir işlem yaparken mutlaka bir tanığı da işleme dahil etmelidir. Doğrulayıcı, kullanıcının işlemi gerçekleştirmek için yeterli hesap bakiyesine sahip olduğunu doğrulamak için mevcut durumu ve kullanıcı tarafından gönderilen (işlem, tanık) çiftini kullanabilir.
İlk önce her (hesap kimliği, bakiye) çiftinin (a, b) bir yaprak düğümü olarak dahil edildiği bir Merkle ağacı oluşturuyoruz. Doğrulayıcılar tarafından saklanan sabit boyutlu durum V, bir dizi hesap bakiyesi çiftine bağlılık görevi gören bu ağacın köküdür. Her kullanıcı, Merkle'nin katılımının kanıtı olarak tanıklığını sürdürür. Bir yaprak (a,b) için Merkle dahil edilme kanıtı, o yapraktan ağacın köküne kadar olan yol boyunca ortak düğümlerden (v1,...,vk) oluşur. A hesabına göre bir işlem ve iddia edilen bir b bakiyesi verildiğinde, bir doğrulayıcı, (a,b)'nin kanıtını (v1,...,vk) mevcut durumu V ile karşılaştırarak b'nin gerçekten a hesabının bakiyesi olduğunu doğrulayabilir. Böyle bir durumda, doğrulayıcı işlemi yürütür ve hesabın bakiyesini buna göre güncellemelidir. Merkle ağaçlarının kullanışlı bir özelliği, bir yaprağın Merkle dahil edilme kanıtı verildiğinde, o yaprak değiştiğinde sonucun kökünü hesaplamanın kolay olmasıdır. Başka bir deyişle, doğrulayıcı, işlem yürütüldükten sonra yeni hesap bakiyesini (a) yakalayan güncellenmiş durumu (V') kolayca hesaplayabilir.
Bu Merkle ağacı şemasının iki önemli dezavantajı vardır. Birincisi, kullanıcının tanığı nispeten büyüktür ve sistemdeki toplam hesap sayısıyla logaritmik olarak artmaktadır. İdeal olarak sabit boyutta olmaları gerekir ve bunu RSA akümülatörleri gibi şemalar kullanarak başarabiliriz.
İkinci dezavantajın önlenmesi daha zordur: Başka bir kullanıcı her işlem yaptığında, hesap bakiyesi çiftinin kanıtı değişir. Bir yaprak düğümün kanıtının, o yaprak düğümden ağacın köküne kadar olan yol üzerindeki ortak düğümlerden oluştuğunu hatırlayın. Diğer yaprak düğümler değişirse düğümlerden biri değişecek ve gerçek bir soruna neden olacaktır. Çoğu blockchain kullanıcısı, paralarını pasif bir şekilde cüzdanlarında tutmak ve yalnızca işlem yapmak istediklerinde çevrimiçi olmak ister. Ancak böyle vatansız bir blockchain'de kullanıcıların, tanık bilgilerini güncel tutmak için diğer kişilerin işlemlerini sürekli izlemesi gerekir. Bu izlemeyi kullanıcı adına üçüncü bir taraf gerçekleştirebilir ancak bu, standart vatansız blockchain modelinden farklıdır. Pratikte bu, durum bilgisi olmayan blok zincirler için aşılmaz bir zorluktur ve kullanıcılara ağır bir yük getirir.
Vardığımız sonuç: vatansızlık mümkün değildir
Bu fenomen yalnızca bu tür Merkle ağaç yapısı için geçerli değildir; bilinen tüm durum bilgisi olmayan blockchain şemaları, kullanıcıların tanık bilgilerini sık sık güncellemelerini gerektirir, bunu burada gösteriyoruz. Daha doğrusu, tanık bilgilerini güncellemesi gereken kullanıcı sayısının, tüm kullanıcılar tarafından yapılan toplam işlem sayısıyla kabaca doğrusal olarak arttığını gösteriyoruz.
Bu, Alice kullanıcısı herhangi bir işlem yapmasa bile diğer kullanıcıların işlemleriyle birlikte tanık bilgilerinin de değişmesi gerekebileceği anlamına gelmektedir. Doğrulayıcılar tarafından depolanan kompakt durum, tam durumu (yani tüm hesap bakiyeleri kümesini) yakalamak için çok küçük olduğu sürece, kompakt durum boyutunu arttırmanın pek bir faydası olmaz. Aşağıda gösterilen bu ilişkiyi teoremimize dayanarak, farklı çıktılara sahip blok zincirleri için günlük gerekli tanık değişikliği sayısıyla birlikte çiziyoruz. Bu grafikler, optimal durum bilgisi olmayan bir blockchain'in tanık bilgilerini kaç kez değiştirmesi gerektiğini gösterir. Burada veri evreni, hesap modelindeki toplam hesap sayısını veya UTXO modelindeki toplam UTXO sayısını ifade etmektedir.
Kanıtımızın merkezinde bilgi-kuramsal bir argüman yer alıyor. Claude Shannon tarafından biçimlendirilen bilgi teorisinin merkezi ilkesi, eğer Alice 2n boyutunda bir kümeden rastgele bir nesne seçerse ve Bob'a hangi nesneyi seçtiğini söylemek isterse, ona en az n bit göndermesi gerektiğidir. Kullanıcıların tanık bilgilerini nadiren güncelledikleri durum bilgisi olmayan bir blockchain şeması mevcutsa, Alice Bob'a hangi nesneyi seçtiğini n'den az bitle söyleyebilir ki bu Shannon'ın kanıtladığı gibi imkansızdır. Dolayısıyla böyle vatansız bir blockchain mevcut değil.
Basitlik açısından, burada biraz daha zayıf bir ifadenin kanıtını açıklıyoruz: Kullanıcıların tanık bilgilerini güncellemesine asla ihtiyaç duymadığı durum bilgisi olmayan bir blockchain yoktur. Mesele şu ki Alice, Bob'a mesajını kodlamak için durum bilgisi olmayan bir blockchain şeması kullanıyor. Başlangıçta hem Alice hem de Bob, tüm n kullanıcı için hesap bakiyesi çiftlerinin tamamını biliyor. Her hesapta en az bir jeton bulunduğunu varsayalım. Hem Alice hem de Bob, durum bilgisi olmayan blok zincirinin kısa V durumunu ve tüm hesap bakiyesi çiftlerinin (ai, bi) tanıklarını da biliyor. Alice ve Bob ayrıca mesajlar ve hesap grupları arasında bir eşleme konusunda da hemfikirdir. Alice, mesajına karşılık gelen bir dizi A hesabını seçecek ve daha sonra bu hesaplardan para harcayacaktır. Vatansız blok zincirini Bob'a onun hakkında bilgi alabileceği kendi seçtiği seti iletmek için kullanacak.
Kodlama: Alice, A'daki her hesaptan bir jeton harcar. Alice, durum bilgisi olmayan bir blockchain şeması kullanarak güncellenmiş durum V'yi hesaplar ve bunu Bob'a gönderir.
Kod çözme: Her i için Bob, Verify(wi, (ai, bi)) öğesinin doğru olup olmadığını kontrol eder. Bob, Verify(wi, (ai, bi)) = false olacak şekilde B hesap kümesinin çıktısını verir.
Bob, Alice'in seçtiği setin çıktısını başarıyla verir: B = A. İlk olarak, eğer Alice ai hesabından bir para harcarsa, eski bakiyesinin kanıtının artık kabul edilmemesi gerektiğini, aksi takdirde Alice'in iki kat harcama yapabileceğini gözlemleyin. Bu nedenle, A'daki her ai hesabı için Doğrula(wi, (ai, bi)) = yanlış ve Bob bu hesabı B'ye dahil edecektir. Öte yandan Bob, Alice'in para harcamadığı B hesaplarını asla dahil etmeyecektir çünkü bu hesapların bakiyeleri aynı kalır ve (kanıtlamak istediğimiz rahat ifadeyi hatırlayın) tanıkları asla değişmeyecektir. Bu nedenle B, A'ya tam olarak eşittir.
Son olarak Alice'in Bob'a göndermesi gereken bit sayısını hesaplayarak çelişkimizi çözüyoruz. Seçebileceği 2^n altküme vardır, dolayısıyla Shannon yasasına göre Bob'a en az n bit göndermelidir. Ancak, yalnızca n bitten çok daha kısa olan sabit boyutlu bir V' durumu gönderir.
Kanıtımızı açıklarken durum bilgisi olmayan bir blok zinciri kullanmış olsak da, Alice ve Bob, akümülatörler, vektör taahhütleri ve kimliği doğrulanmış sözlükler de dahil olmak üzere diğer çeşitli kimliği doğrulanmış veri yapılarını kullanarak benzer verimli iletişimi gerçekleştirebilirler. Bu tür veri yapılarını, tersine çevrilebilir kanıt sistemi adını verdiğimiz yeni bir soyutlama kullanarak resmileştiriyoruz.
Sonucun etkisi
Sonuçlarımız "durumu kriptografik olarak ortadan kaldıramayacağınızı" ve kullanıcıların hiçbir zaman tanıklarını güncellemek zorunda kalmadığı durumsuz bir blockchain oluşturmamıza olanak tanıyan bir taahhüt planı için sihirli bir değnek olmadığını gösteriyor. Durum ortadan kalkmaz ancak doğrulayıcılardan aktarılır ve sık sık tanık güncellemeleri şeklinde kullanıcılara iletilir.
Kesinlikle vatansız blockchain modelinden sapan başka umut verici çözümler de mevcut. Bu modelin doğal bir rahatlaması, üçüncü bir tarafın (ne kullanıcılar ne de doğrulayıcılar) tüm durumun saklanmasından sorumlu olmasına izin vermektir. Kanıt hizmet düğümü adı verilen bu üçüncü taraf, kullanıcı için en son tanık bilgilerini oluşturmak üzere tam durumu kullanır. Kullanıcılar daha sonra bu tanıkları kullanarak, doğrulayıcıların hala yalnızca kompakt durumu sakladığı normal durum bilgisi olmayan bir blok zincirinde olduğu gibi işlem yapabilir. Bu sistemin teşvik mekanizması, özellikle kullanıcıların hizmet kanıtı düğümlerini nasıl telafi ettiği, ilginç bir açık araştırma yönüdür.
Şu ana kadarki tartışmamız L1 blok zincirlerine odaklanmış olsa da, sonuçlarımızın aynı zamanda Toplama sunucuları gibi L2 sistemleri için de etkileri var. Toplamalar (İyimser veya ZK olsun) genellikle L1'de küçük bir değere sahip büyük bir duruma yönelik taahhüdü saklar. Bu durum L2'deki her kullanıcının hesabını içerir. Bu kullanıcıların, cari hesap bakiyelerine ilişkin bir tanık yayınlayarak, doğrudan L1 üzerinden (L2 sunucularının işbirliği olmadan) para çekebilmelerini istiyoruz. Bu kurulum aynı zamanda modelimizde tersinir bir ispat sisteminin bir örneğidir. Aslında durum bilgisi olmayan blok zincirlerin pratikte L2 Toplamaları şeklinde zaten uygulandığı iddia edilebilir.
Ancak ne yazık ki bu, imkansızlık sonuçlarımızın doğrudan geçerli olduğu anlamına gelir. Bir kullanıcının Toplama getirme tanığının sık sık değişmesi gerekir, aksi takdirde L2 durumunun neredeyse tamamının L1'e yazılması gerekir. Sonuç olarak, bugün Toplamalar tipik olarak, kullanıcıların çekmeye hazır olduklarında yeni tanıkları hesaplamalarına yardımcı olan bir "kanıt hizmet düğümüne" benzer bir veri kullanılabilirliği komitesinin (bazen "validium" olarak adlandırılır) varlığını varsayar. Sonuçlarımız, Ethereum belgelerinde kullanıcılara yönelik şu uyarının her zaman geçerli olacağını gösteriyor: "İşlem verileri olmadan kullanıcılar, fonların sahipliğini kanıtlamak ve para çekme işlemini gerçekleştirmek için Merkle kanıtlarını hesaplayamaz."