ELI5: IBC nedir?

Dec 22 2022
Bitcoin'in doğuşu, farklı tasarım kararları ve kullanım durumlarıyla Kambriyen blok zinciri patlamasına yol açtı. Bu dağıtılmış defterler farklı amaçlara hizmet ederken, sınırlı anlamlı etkileşime sahip silolar olarak var oldular (ve belli bir dereceye kadar hala varlar).

Bitcoin'in doğuşu, farklı tasarım kararları ve kullanım durumlarıyla Kambriyen blok zinciri patlamasına yol açtı. Bu dağıtılmış defterler farklı amaçlara hizmet ederken, sınırlı anlamlı etkileşime sahip silolar olarak var oldular (ve belli bir dereceye kadar hala varlar).

Dünyanın farklı yerlerindeki farklı bilgisayar türlerinin birbirleriyle iletişim kurmasını kolaylaştıran İnternet'e benzer şekilde, gerçek değer tahakkuku için blok zincirleri arasında bağ dokusu görevi gören benzer bir teknoloji gereklidir. Blok Zincirleri Arası İletişim (IBC) protokolü bu amaca hizmet etmeyi amaçlamaktadır.

IBC, iki farklı blok zincirinin birbiriyle iletişim kurmasını sağlayan evrensel bir birlikte çalışabilirlik protokolüdür. IBC , güvenilir , düzenli ve kimliği doğrulanmış iletişimi garanti eder.

IBC'nin belki de en önemli özelliklerinden biri güveni en aza indirmesidir. Blok zincirlerinde, güveni en aza indirme özelliği doğal olarak güvenlikle bağlantılıdır. Hiçbir dağıtılmış sistem tamamen 'güvenilir' değildir. Bu nedenle, güvenlik sorusu, kime veya neye güvenildiği ve bu güvenin nasıl ihlal edilebileceği, yani güvenilen varlığın bozulması için ne gerekiyor?

Bu anlamda ve çoğu köprüleme çözümünün aksine, IBC güvenilir üçüncü taraflar kullanmaz. Bu, sağladıkları işlevleri (ve varsayılan olarak mutabakat mekanizmalarını) kullanmak için iki belirli zincire güvenirseniz, söz konusu zincirler arasında etkileşim için IBC kullanırken ek bir güven varsayımının gerekli olmadığı anlamına gelir.

IBC aynı zamanda token transferlerini kolaylaştıran bir köprüden daha fazlasıdır. Genel amaçlı bir mesaj geçirme protokolüdür. Bu, herhangi bir veri biçiminin IBC üzerinden iletilebileceği anlamına gelir.

IBC nasıl çalışır?

IBC'nin nasıl çalıştığını anlamak için, iki farklı IBC katmanını ayırmak önemlidir - 1) taşıma katmanı ve 2) uygulama katmanı.

İki blok zincir arasındaki IBC paket akışının üst düzey tasviri

Taşıma katmanı

IBC üzerinden iletilen mesajlar, veri paketleri içinde taşınır . Aktarım katmanı ise bu veri paketlerinin taşınmasından , doğrulanmasından ve sıralanmasından sorumludur .

Taşıma katmanı, paketlerdeki verilerin ne olması gerektiği veya bir alıcı zincir tarafından nasıl yorumlanması gerektiği hakkında hiçbir şey belirtmez. Aktarım katmanının bakış açısından, veri paketleri içindeki bilgiler yalnızca rastgele baytlardır.

Aktarım katmanının temel bileşenleri hafif istemciler, aktarıcılar, bağlantılar ve kanallardır.

Hafif bir istemci, bir blok zincirinin hafif bir temsilidir. Tam bir düğümden farklı olarak , hafif istemciler bir blok zincirinde bulunan tüm mesajların tüm geçmişini saklamazlar. İşlemleri de gerçekleştirmezler. Bunun yerine, hafif istemciler tam bir düğüme bağlanacak ve blok başlıklarını (bir blok içinde yer alan verilerin özeti) doğrulayacak şekilde tasarlanmıştır. Bu, hafif istemcilerin depolama ve hesaplama açısından verimli olmasını sağlar.

IBC üzerinden etkileşime giren iki bağımsız blok zinciri A ve B , karşı taraf zincirinin hafif istemcilerine sahiptir. Bu, A'nın blok zincirinde, B'nin blok zincirinin hafif bir temsili olarak işlev gören hafif bir istemciye sahip olduğu anlamına gelir . A , belirli bir 'X' mesajını B ile iletmek istediğinde , bu mesajın bulunduğu bloğun başlığını, bu mesajın bir taahhüt kanıtıyla birlikte B'ye gönderir . Taahhüt kanıtı, A üzerinde belirli bir mesajın varlığını veya yokluğunu doğrulamak için kullanılır . Blok başlığını ve kanıtı kullanarak, B bunu kriptografik olarak doğrular.A gerçekten de X'i gerçekleştirdi . Blok zincirlerinin güvenilir bir üçüncü tarafa ihtiyaç duymadan birbirleriyle mesaj alışverişinde bulunmasına izin veren, IBC'deki hafif istemcilerin bu kullanımıdır.

Ancak A ve B bu mesajları/veri paketlerini doğrudan birbirleri arasında göndermezler. Bunun yerine, A , B'ye bir mesaj göndermek istediğinde , kendi durum makinesinde mesajı içeren bir veri paketinin bir karmasını taahhüt eder veya depolar . Zincir dışı süreçler olan aktarıcılar , bu tür mesajları sürekli olarak gözlemler. A'nın durum makinesinde B'ye yönelik bir mesaj işlediğini gördüklerinde , bu mesajı alıp B'ye iletirler . Aktarıcıların izinsiz olduğunu ve bu nedenle herkes tarafından çalıştırılabileceğini unutmayın.

Bağlantılar , hafif istemcileri iki farklı zincire bağlamaktan sorumludur. Ve kanallar , bu farklı zincirlerdeki modüller arasında paket aktarımı için kanallardır. Bu nedenle, bağlantılar zincire özgü iken, kanallar modüle özgüdür. Her kanal ucunun, paketleri iki modül arasında doğru bir şekilde yönlendirmek için kullanılan benzersiz bir kanal kimliği (ve bir bağlantı noktası kimliği) vardır.

Uygulama katmanı

Uygulama katmanı, son kullanıcıların etkileşime girdiği katmandır. Üstüne inşa etmek için taşıma katmanını kullanan çeşitli uygulamalardan oluşur. Taşıma katmanı, veri paketlerinin nasıl yorumlanması gerektiğini belirtmez. Bu rol, uygulama katmanı tarafından gerçekleştirilir.

IBC, takas edilebilir/karşılanamaz jeton transferleri, zincirler arası kehanet beslemeleri, Zincirler Arası Hesaplar , Zincirler Arası Sorgular, Ücret ara yazılımı (aktarıcıları teşvik etmek için) vb. gibi çeşitli uygulamaları destekler.

Örneğin, Interchain Standard 20 (ICS 20) olarak adlandırılan token transferleri için IBC seviyesindeki uygulama, veri paketlerinin nasıl yapılandırılması gerektiğini ve bunların alıcı zincirler tarafından nasıl yorumlanacağını belirtir. Değiştirilebilir belirteç transferleri durumunda, veri paketleri gönderen, alıcı, miktar ve mezhep (IBC birimi) ile ilgili bilgileri içerir. Denom alanı, belirli bir jetonun belirli bir zincire ulaşmak için geçtiği yolu izler. Paketlerin nasıl davranılacağına ilişkin mantık da ICS 20 tarafından belirlenir.

IBC'yi anlamada yardımcı olabilecek basit bir benzetme, posta dağıtım sistemidir. Birine mektup gönderdiğinizde, mektubu içeren zarfı sizden alan ve alıcının posta kutusuna bırakan bir posta servisi aracılığıyla gönderirsiniz. Alıcı daha sonra söz konusu zarfı açar ve mektubunuzu okur. IBC'nin taşıma katmanı, posta hizmeti olarak düşünülebilir. Posta servisi size mektubun içeriğinin ne olması gerektiğini veya alıcının mesajınızı nasıl yorumlaması gerektiğini söylemez.

Zarfın içindekileri de bilmiyorlar. Sadece A noktasından zarfı alıp B noktasına gönderme eylemini gerçekleştirir. Zarfın kendisi bir zincirden diğerine gönderilen IBC paketleri olarak düşünülebilir. Ve bu zarfta, alıcının adresini belirtirsiniz. Bu, IBC paketlerinin, paketi kimin gönderdiğine (kanal kimliğiyle belirtilir) ve kime yönelik olduğuna (karşı taraf kanal kimliğine göre belirlenir) ilişkin bilgileri nasıl içerdiğine benzer. Sonuçta zarfı (veri paketini) açmaktan ve mektubun içeriğini yorumlamaktan alıcı (uygulama) sorumludur.

IBC ne için kullanılabilir?

Değiştirilebilir token transferlerinin yanı sıra, IBC seviyesindeki diğer iki uygulama arasında Zincirler Arası Hesaplar ve Zincirler Arası Güvenlik yer alır .

Zincirler Arası Hesaplar, tek bir arayüzde kalırken zincirden zincire etkileşimi kolaylaştırır. Bu, etkili bir şekilde, B'de ("ana bilgisayar zinciri" olarak adlandırılır) yönetişim teklifleri üzerinde gerçekleştirilebilen transferler, staking veya oylama gibi herhangi bir eylemin A'dan ("denetleyici zinciri" olarak adlandırılır) gerçekleştirilebileceği anlamına gelir. Zincirler Arası Hesaplar, kullanıcı deneyimini iyileştirerek Zincirler Arası içinde şekillendirilebilirliği önemli ölçüde artırır.

Zincirler Arası Güvenlik, Cosmos Ekosisteminin paylaşılan güvenlik versiyonudur. Bir blok zincirinin başka bir zincirden güvenliği tamamen dahil olma şeklinde kiralamasını sağlar. Bu, özellikle Cosmos Hub gibi önceden kurulmuş bir ağ tarafından sunulan güvenlikten yararlanmayı seçebilen yeni zincirler için kullanışlıdır. Zincirler Arası Güvenlik, zincirlerin kendi doğrulayıcı setlerini önyükleme ihtiyacını ortadan kaldırır.

Çekirdek ilkel olarak IBC kullanılarak gerçekleştirilebilen uygulamaların kapsamı sürekli olarak büyüyor. Zincirler arası NFT transferleri ve Zincirler Arası Sorgular (bir zincirin başka bir zincirden durumu okuyabildiği) şu anda geliştirilmektedir ve yakında üretime hazır olacaktır.

IBC hangi sorunu çözüyor?

Bir cümleyle IBC, sınırlı etkileşimle silolar halinde var olan blok zincirleri sorununu çözer. Maksimum değer tahakkuku için blok zincirleri arasında birlikte çalışabilirlik gereklidir.

Her blok zinciri, bir veya daha fazla özel kullanım durumuna hitap eder. Bu kullanım durumları, birden fazla blok zincirinde kaldıraç olarak kullanılamıyorsa, faydalarını ciddi şekilde engeller. İnternetin sağladığı atılım, bilginin dünyanın farklı yerlerinde kolaylıkla akabilmesidir. Benzer şekilde, farklı blok zincirlerinin faydasının birden fazla platformda serbestçe erişilebilir olması gerekir.

Örneğin, kullanıcılar, başka bir blok zincirinde bulunan merkezi olmayan bir borsada (DEX) bir likidite havuzu (LP) aracılığıyla getiri elde etmek için bir blok zincirinden sabit paralar kullanmak isteyebilir. Veya farklı bir blok zincirinin sağladığı gizlilik koruma özelliklerinden yararlanmak isteyebilirler. Bu kullanım durumlarını ve daha fazlasını gerçekleştirmek için zincirler arasında birlikte çalışabilirlik gereklidir.

IBC yalnızca birlikte çalışabilirlik sorununu çözmekle kalmaz, bunu güveni en aza indirilmiş, güvenli, genişletilebilir ve genel amaçlı bir şekilde yapar.

Bir uygulama geliştiricisi olarak IBC'yi nasıl kullanabilirim?

Cosmos SDK'nın modüler yapısı, geliştiricilerin hafif istemciler, bağlantılar, kanıt doğrulaması vb. gibi bazı soyutlama katmanlarıyla ilgilenmek zorunda kalmalarını engeller. Geliştiriciler için aşina olunması gereken en ilgili gereksinimler ve işlevler, kanallar ve bağlantı noktalarıdır . IBC hakkında daha detaylı bilgi için geliştirici portalımıza başvurabilirsiniz .

Blockchain'inizi Cosmos SDK kullanarak oluşturuyorsanız, bir SDK modülü için IBC'yi etkinleştirmek için gerekli adımlar burada ayrıntılı olarak açıklanmıştır . Cosmos'ta bina desteği almak için bir ICF girişimi olan Interchain Builders Programına da başvurabilirsiniz.

Yazar hakkında: Bu yazı, Interchain GmbH'de IBC Protokol Analisti olan Adi Ravi Raj tarafından yazılmıştır .