Uzay Zincirleri: Bu Yeni Bitcoin Yan Zincir Önerisi Nasıl Çalışır?

Kaynak Düğüm: 1544330

Spacechains, kör birleştirme maden tasarımını kullanan tek yönlü bir sabitleme mekanizması sunan önerilen bir Bitcoin yan zinciridir.

Yan zincirlerin Bitcoin için bir ölçeklendirme ve özellik genişletme mekanizması olduğu fikri çok eski bir kavramdır. Yan zincirlerin bir tür temel “ata” fikri, mayınlı zincirleri birleştirHatta Satoshi'nin kaybolmasından öncesine kadar uzanıyor.

Bu öneri, tamamen ayrı ve ilgisiz iki zincirin aynı grup madenci tarafından, zincirler arasında hiçbir şey taşıma yeteneği olmadan çıkarılması fikriydi. orijinal yan zincir teklifi 2014 yılında, makalenin yayınlanmasından yaklaşık bir hafta sonra Blockstream'i bulmaya devam eden birçok kişi tarafından yapıldı. Temel fikir, madeni paraların ana Bitcoin blok zinciri ile diğer yan zincirler arasında ileri geri hareket etmesini sağlamaktı; basit ödeme doğrulama (SPV) kanıtları, bir zincirden diğerine madeni para gönderdiğinizde işlerin geçerli olduğunu kanıtlamak için kullanılıyordu. Zincir yeniden yapılanmalarındaki uygulamadaki karmaşıklıklar, hırsızlık potansiyeli ve madenciliğin merkezileştirilmesi riskleri nedeniyle bu hiçbir zaman meyvesini vermedi (bunların tümü hakkında makalenin dördüncü bölümünde okunabilir). Bitcoin beyaz kağıdı).

Yan zincirlere yönelik sabitleme mekanizmaları tek yönlü ve çift yönlü olmak üzere iki çeşit olabilir. Anlamlar açık olmalıdır; iki yönlü bir sabitlemede paralar ana zincir ile yan zincir arasında ileri geri hareket edebilir ve tek yönlü bir sabitlemede yalnızca ana zincirden yan zincire hareket edebilir ve asla geri hareket edemez. Şu anda, Bitcoin'de uygulanan iki yönlü yan zincir sabitlemelerinin tek biçimi, federal konsensüs yoluyla gerçekleştirilir; bu, sabitlemenin, çoklu imzalı bir cüzdandaki yan zincire sabitlenen fonların kontrolünü geri çekilene kadar sürdüren güvenilir bir "saklayıcılar" grubu tarafından garanti edildiği anlamına gelir.

Ancak insanlar, federe olmayan yan zincir mandalları için başka tasarımlar üzerinde çalışmaya devam etti. Burada örnek olarak Ruben Somsen'in Uzay Zinciri teklifini ele alacağım. Kör birleştirme maden tasarımı kullanan tek yönlü bir sabitleme mekanizmasıdır. Paul Stztorc'S. Bu, madeni paraların yalnızca yan zincire girebileceği ve asla ayrılmayabileceği ve madencilerin, yan zincir madenciliği karşılığında tazminat almak için yeni bir yazılım çalıştırmalarına gerek olmadığı anlamına gelir (ancak daha sonra ele alacağım gibi, bunu yaparak daha fazla fayda sağlayabilirler).

Uzay Zinciri Önerisi

Birleştirme madenciliği, madencilerin, her iki zincir için de blokları derlemek ve madencilik yaptıkları Bitcoin blok başlığında bunları taahhüt etmek için hem Bitcoin zincirinin hem de madencilik yaptıkları diğer zincirin düğümlerini çalıştırmalarını gerektirir. Kör birleştirme madenciliği, gerçekte, Bitcoin madencilerinin kendi Bitcoin bloğunda işlemek için yalnızca diğer zincirin blok başlığına sahip olmaları gerektiği gerçeğinden yararlanır; başka biri aslında diğer zincir için bloğu bir araya getirme zahmetine girebilir.

Somsen'in bunun için önerdiği mekanizma şunları kullanabilir: HERHANGİ BİR ÖNCEKİ (APO), herkesin bir sonraki yan zincir bloğunu oluşturmak için rekabet edebilmesi için açık rekabete izin verirken, Bitcoin ana zincir bloğu başına yalnızca bir bloğun işlenebileceğini garanti eder. Ruben'in teklifinin bir diğer avantajı da uzay zincirlerinin konuşlandırılması olasılığını etkinleştirmek için özel bir yumuşak çatal gerektirmemesidir. Eltoo/ANYPREVOUT, Lightning Network'e fayda sağlamak, esnek durum zincirlerine ve kanal fabrikalarına olanak sağlamak için öneriliyor. Uzay zincirleri, ANYPREVOUT'u etkinleştirmenin yolu açacağı pek çok şeyin bir başka olasılığıdır.

Kör birleştirme madenciliği teklifinin genel fikri, APO'yu kullanarak, kendilerine beslenen aynı başlangıç ​​UTXO'sunu alan uzun bir işlem kümesini önceden tanımlayabilmeniz ve bunu her zaman yeniden oluşturmayı taahhüt edebilmenizdir. Yani, önceden oluşturulmuş her işlemin onaylandığında aynı UTXO'nun bir çıktı olarak yeniden oluşturulduğunu garanti ettiği tek bir satoshi UTXO hayal edin. Bunu bir tür işaretleyici gibi düşünün; bu özel UTXO, ana Bitcoin blok zincirine bakan herkesin şunu bilmesini sağlayan tanımlayıcıdır: "İşte burada X'in bloklarını yan zincire bağlama taahhüdünü buluyorum." Bu da bir sorunu açık bırakıyor: madenci ücretleri. Bu UTXO'nun aynı tutarla yeniden oluşturulması gerekiyorsa ücret ödenecek fon yoktur.

Bu durum kullanılarak çözülebilir SIGHASH_SINGLE (bir girişin imzası yalnızca o tek girişi ve karşılık gelen çıkışı imzalar) ve SIGHASH_ANYONECANPAY (SIGHASH_SINGLE kullanan giriş/çıkış, imzayı geçersiz kılmamak için olduğu gibi bırakıldığı sürece, kişiler imzayı geçersiz kılmadan ek giriş ve çıkışları serbestçe ekleyebilirler). Daha sonra herkes işlem için madenci ücretlerini ödemek üzere bir girdi ekleyebilir ve çıktıyı değiştirebilir.

Bu aynı zamanda yan zincir bloğunun blok başlığına bağlanmak için kullanılan mekanizmadır. Taproot'un normal ortak anahtarı ağacın Merkle köküyle değiştirerek farklı harcama koşulları ağacına taahhütte bulunması gibi, herkes normal ortak anahtarı yan zincir bloğunun blok başlığı karması ile değiştirebilir. Yan zincir düğümleri daha sonra bu blok başlığını ortaya çıkarabilir ve bunun gerçekten çıkarıldığını kanıtlamak için ana zincirdeki işleme bir işaretçi ile iletebilir. Oradan, yan zincir düğümleri, yan zincir bloğunun uygun fikir birliği kurallarına uyduğundan emin olmak için tüm normal doğrulamayı yapacak ve gerçek blokları, tıpkı ana zincirde olduğu gibi yan zincir ağı boyunca aktaracaktır.

Ana zincirdeki yan zincir bloklarına taahhütte bulunmak için kullanılan işlemlerden biri geçersiz bir bloğa taahhütte bulunmak için kullanılmışsa veya hatta tamamen çöp verisi varsa, o zaman yan zincir düğümleri zincirde kullanılan taahhüt işlemini gördüğünde iki şey olabilir: Bir, geçersiz bir blok, yan zincir ağı boyunca yayılacak ve doğrulama kontrollerini geçemediğinde artık kalacak; veya iki, veriler hiçbir zaman açığa çıkmaz; bu durumda bir sonraki yan zincir bloğu, gerçekte ortaya çıkan son bloğun üzerine inşa edilecek ve ona bağlı olacaktır ve açıklanmayan taahhüt göz ardı edilecektir. Bu ikinci olasılık, ana zincirle aynı türden en uzun zincir mantığını takip eder; dolayısıyla daha sonra bir şey ortaya çıkarılsa bile, bunun üzerine inşa edilmeyen gelecekteki bloklar nedeniyle hala yetim kalacaktır.

Ancak hâlâ çifte harcama sorunu var. UTXO işaretleyicisini oluşturmak için kullanılan özel anahtara sahip olan herhangi biri, yan zincir bloklarına taahhütte bulunmak için kullanılan önceden tanımlanmış işlemlerden herhangi birini potansiyel olarak iki katına çıkarabilir ve bu noktadan itibaren tüm seti geçersiz kılabilir.

Bu, imzanın aslında UTXO'nun kilitleme komut dosyasına eklenmesiyle çözülür. Bu, giriş ve çıkıştaki imzayı kilitleyerek bir sonraki işlemde UTXO işaretçisinin yeniden oluşturulmasını garanti eder. UTXO harcandığında bu imza otomatik olarak iletilip kontrol edileceğinden, onu başka bir imzayla değiştirip farklı bir hedefe harcamak mümkün değildir.

Geriye son bir çözülmemiş sorun kalıyor. Teorik olarak birden fazla işlemi arka arkaya tek bir Bitcoin bloğuna göndermek mümkün olabilir, böylece çok sayıda yan zincir bloğu madenciler tarafından tek bir ana zincir bloğunda onaylanır. Bu, yan zincir ağına hizmet reddi saldırısı yapmak için kötüye kullanılabilir.

Bu sorunu çözmek için, belirli bir ana zincir bloğu içinde UTXO işaretleyicisini kullanan yalnızca bir işlemin onaylanabileceğini garanti etmek için işaretleyici UTXO komut dosyasına bir CHECKSEQUENCEVERIFY (CSV) göreceli zaman kilidi eklenebilir.

Toplamda şuna benziyor: 

Kaynak

Bu tasarımın iki çeşidinin CHECKTEMPLATEVERIFY (CTV) ile veya hiçbir değişiklik yapılmadan uygulanabileceğini de belirtmekte fayda var. Bu iki tasarım çeşidinin optimal olmayan ödünleşimleri var.

CTV varyantı, bu işlevselliği, UTXO kilitleme komut dosyasındaki imzayı içeren hack ile APO yerine CTV kullanarak işlem zincirine bağlanmak için kullanacaktır. CTV, CTV UTXO'yu harcayan bir işlemin tüm çıktılarını taahhüt eder, ancak kendisi dışında herhangi bir girdiyi taahhüt etmez.

Bu, bir CTV işlemine giriş ekleyebileceğiniz ancak çıkış ekleyemeyeceğiniz anlamına gelir. Yani tıpkı APO tasarımında olduğu gibi kendi ücretinizi getirebilirsiniz ancak yan zincir blok başlığına taahhüt ekleyemezsiniz.

Yani burada yapmamız gereken, yan zincir taahhüdü için CTV işlem ücretini ödemeye yetecek kadar bir UTXO oluşturmak için CTV işlem zincirinin tamamen dışında bir işlem oluşturmaktır (çünkü CTV işleminde yeni bir değişiklik çıktısı oluşturamazsınız). Bu işlemde, eklediğiniz girdinin %100'ü ücretlere gider) ve ücreti hazırlayan işlem içinde UTXO, bir yan zincir blok başlığını taahhüt ettiğimiz yerdir. Yani ilk adım: bir ücret ödeme çıktısı yaratan bir işlem ve bir yan zincir blok başlığına bağlılık. İkinci adım: Ücret çıktısını alıyoruz ve bunu CTV işlemine bir girdi olarak ekliyoruz; bu işlem onaylandığında özel yan zincir bloğumuzu "çıkarıyor". Bu varyant şuna benzer:

Kaynak

Bir sonraki varyant yalnızca önceden imzalanmış işlemleri kullanır. Bugün konuşlandırılabilir, ancak komut dosyasının yapabileceklerinin sınırlamaları nedeniyle, işlemlere ilişkin tüm ücretlerin, uzay zincirini oluşturan kişi tarafından önceden ödenmesi gerekiyor.

İşlem zinciri tek bir UTXO ile başlar ve zincirde iki çıktı oluşur. İlk çıktı, işlem zincirinin belirli bir uzay zinciriyle ilişkili olduğunu işaret eden UTXO işaretçisidir, ikincisi ise kendisine başka bir girdi/çıktı eklenmesine izin veren herkes tarafından açıkça harcanabilen küçük değerli bir UTXO'dur. Bu ikinci işlem, herkesin uzay zinciri işlem zincirinden ikinci çıktıyı harcayacak ilk kişi olmayı açıkça taahhüt edebileceği ve bunu kendi yan zincir blok başlığına taahhütte bulunmak için kullanabileceği yerdir.

CTV varyantında, yan zincir bloğunun ikincil bir işlemde taahhüt edilmesi gerekiyordu çünkü CTV, CTV tarafından kilitlenen bir girişi harcayarak bir işleme yeni çıkışlar eklenmesine izin vermiyor. Bu değişken, ikincil bir işlemin kullanılmasını gerektirir çünkü önceden imzalanmış zincire herhangi bir yeni giriş veya çıkış eklerseniz, işlemin TXID'sini değiştirir ve ondan sonra gelen tüm önceden imzalanmış işlemleri geçersiz kılarsınız. Bu varyant şuna benzer: 

Kaynak

Bu son değişkenin bir dezavantajı, yan zincir blok taahhütleri için kullanılacak tüm işlemleri önceden imzalayan kişi, bunu yapmak için kullanılan özel anahtarları silmezse, mevcut UTXO işaretleyicisini herhangi bir zamanda iki katına çıkararak zinciri etkili bir şekilde durdurabilecek olmasıdır. zaman.

İşte buyur. Bu, Bitcoin'de bir yan zincir tasarımı için en son tekliftir ve üç farklı şekilde uygulanabilir; şu anda yapılabilecek uygulama yolunun, birisinin özel bir anahtarı silmesini gerektirme sorununa sahip olduğu yönündeki bariz uyarıyla.

Bu makale, orijinal 2014 tasarımından bu yana Bitcoin için yayınlanan büyük yan zincir tasarım önerileriyle ilgili bir serinin ilkidir. Geri kalanına dikkat edin.

Bu Shinobi'nin konuk yazısıdır. İfade edilen görüşler tamamen kendilerine aittir ve BTC Inc veya Bitcoin Magazine'in görüşlerini yansıtmayabilir.

Zaman Damgası:

Den fazla Bitcoin Dergisi