IPFS nedir, nasıl çalışır ve kullanıcılara ne vadediyor?

[ad_1]

90’ların başlangıcında tanıştığımız web Web 1.0 idi. Bu netin en belirgin özelliği statik web sayfalarından oluşması ve oldukça yavaş olmasıydı. Ben bir web sayfası yüklenirken 5-10 dakika yanımdaki arkadaşımla söyleşi ettiğimi hatırlıyorum. O zamanlar kim bilir bu yüzden hemen hemen netin hayatlarımızda bu denli yeri yoktu. O dönemlerde devamlı aklıma takılan bir sual vardı: “MSN ya da ICQ benzer biçimde uygulamalar niçin parasız?!” 

Sonrasında Web 2.0 geldi. Web 2.0’ın en ayırt edici özelliği dinamik web platformlarına geçişti. Dinamik web platformlarında içinde ne olduğu kullanıcı sağlıyordu ve bu çığır açan bir gelişmeydi. Kullanıcılar içerik üretmeyi, kendilerini ifade etmeyi oldukca sevmiş oldu. Cep telefonlarının da bu zamanda çıkması ve Web 2.0 ile beraber gelişerek akıllı telefonlara dönüşmesi bu içerik paylaşımı çılgınlığını körükledi. Artık web hayatımızın ayrılmaz bir parçası olurken Feysbuk ve Google benzer biçimde firmalar, bir avuç insana, bugüne dek teknoloji yöntemiyle elde edilmemiş devasa bir güç ve zenginlik verdi. Fazlaca geçmeden yukarıdaki probleminin yanıtını öğrendim. Artık bir sır değil, hatta kim bilir klişe fakat çoğumuz bazı uygulamaları “parasız” kullanmanın karşılığında, merkezileşen bu platformlara “mecburen” kişisel datalarımızı ve mahremiyetimizi kullanmalarına, alıp satmalarına izin veriyoruz. Böylece ürün biz oluyoruz. Özetlemek gerekirse güvenimizi, kısaca otoriteyi dev şirketlerin ellerine verdik.

Itimat problemi

Itimatı şöyleki tanım edebiliriz: bir şeyin olacağına yada olmayacağına dair inanç. Bu inancın sağlam temellere dayanması da gerekmiyor. Şu şekilde örnek verelim: sözgelişi WhatsApp’ta bir arkadaşınızla mesajlaştığınızda bu mesajlaşmanın şifrelenmiş olduğuna ve bu tarz şeyleri kimsenin okuyamayacağına dair bir itimat duyuyorsunuz. Sadece pek doğal ki WhatsApp ekibi bu şifrelenmiş mesajların şifresini çözecek bir anahtar geliştirmiş ve mesajlarımızı okuyor olabilir. Oysa WhatsApp açık kaynak kodlu bir uygulama olsaydı ikimiz de kodlara bakar, uygulamanın nasıl işlediğini görürdük. Lakin 2021 Ocak ayında yürürlüğe giren gizlilik politikasını kullanıcılar asla sevmemiş ve kavimler göçü olarak niteleyebileceğimiz bir kopuş yaşanmıştı.

Bundan 500 yıl ilkin insanoğlu bildikleri, güvendikleri insanlarla tecim yapmayı tercih ediyordu. At otomobiline tekerlek alacağı vakit birkaç hafta içinde kırılmayacağına, patlıcan alacağı vakit araya çürükleri kakalamayacağına güvenilmiş olduğu kişiden alıyordu. Dünya globalleşip köyler, kasabalar şehirlere, ülkelere dönüştüğünde ticaretin alanı da genişledi. Artık güvenin karşılığı marka şöhreti oldu. Itimat, bir ekip yasalarla ve regülasyonlarla sağlanmaya başlandı. Fakat bu da mükemmellikten uzak bu sebeple bir ülkede yasalar öyleki iken başka bir ülkede ya da bölgede bu şekilde. Ek olarak yasa koyucular ile sektörlerin kuvvetli temsilcileri içinde karşılıklı çıkar ilişkileri kurulabiliyor, bu da yozlaşmaya sebep oluyor. 

Itimat gerektirmeyen (trustless) ve merkeziyetsiz bir web, pratikte tüm bu sorunları çözer mi, bunu vakit gösterecek fakat teoride çözmesi umut ediliyor. Gelecek yıllarda da, geçmişte olduğu benzer biçimde demokrasiyi sıhhatli bir halde tahsis etmenin yolu tam olarak bu yol ayrımından geçiyor.

Sıkıdüzen ve arızaya açık nokta problemi

Bilgiye erişim özgür olmalı. Web 2.0’ın merkezileşmenin odağında gelişmesiyle beraber bu özgürlüğü kaybettik. Merkezileşme derken hem devletleri hem de şirketleri kastediyorum. Günümüz internetindeki tüm data bir avuç firmanın elinde. Bir avuç şirket demek bir avuç server demek. Bununla beraber informasyon merkezi olduğu, kısaca tek bir kaynaktan sağlandığı için, “lüzumlu görüldüğünde”, erişim kolaylıkla kesilebiliyor ya da kısıtlanabiliyor.

Bu da sıkıdüzen ve yasak benzer biçimde problemler anlamına geliyor. Bu ciddi problemi en yakından deneyimlediğimiz örneklerden biri, Türkiye’nin beş yıl ilkin, 29 Nisan 2017’de Wikipedia’yı erişime engellemesiydi. Ayrıca IPFS geliştirilirken Wikipedia Türkçe ile kontrol edildiğini belirtelim.

Erişimin kesilmesi, ana sunuculardan birinde meydana gelebilecek bir arızadan da kaynaklanabilir. Buna arızaya açık nokta diyoruz. Bir an için bir sunucunun çevrimdışı bulunduğunu ve o sempatik kedi videolarını izleyemediğinizi yada hastası olduğunuz, her gün saatlerce zaman geçirdiğiniz o toplumsal medya platformuna erişemediğinizi düşünün. Bu şekilde vakalar günümüzde halihazırda kısa süreliğine de olsa meydana gelebiliyor. Üstelik bu vakalar erişimi kesilen web platformlarına da mali açıdan büyük zarar veriyor. Mesela geçtiğimiz Ekim ayında Feysbuk, WhatsApp ve Instagram 6 saatlik bir kesintiye uğrayınca hepimiz ayağa kalktı. Bunu nereden biliyoruz? Şundan dolayı hepimiz Twitter’daydı.

Peki o vakit niçin hâlâ bu modeli kullanıyoruz?

Şundan dolayı biz kullanıcılar yüksek hız talep ediyoruz. Web sayfalarının, görsellerin ve videoların derhal yüklenmesini ve bunlara yüksek kalitede haiz olmak istiyoruz. Bir öteki sebep de halihazırdaki sisteme şimdiye kadar yeterince süratli ve iyi bir alternatifin var olmaması.

Merkezi netin emek verme prensibi

Merkezi web hızlıdır bu sebeple içerikler konum tabanlı adresleme yöntemiyle sağlanır. İnternetten bir fotoğraf indirmek ya da web sayfasını ziyaret etmek istediğinizde bilgisayarınıza bu resmi ya da web sayfasını tam olarak nerede bulacağınızı söylersiniz. Bu konum, indirmek istediğiniz resmin olduğu web sitesinin adresi kısaca domain’idir. Konum tabanlı adresleme URL (Uniform Resource Locator) adresleri aracılığı ile çalışır. Eğer indirmek istediğiniz resmin ilişik olduğu domain yada bu domain’in bağlı olduğu server mesela çevrimdışıysa (arızaya açık nokta) resmi indiremezsiniz. Oysa bu fotoğraf muhtemelen, daha ilkin internette başka birileri tarafınca indirilmiştir. Fakat bugünkü sistem, resmi bu kişilerden temin etmenize izin vermez. Sistem konum tabanlı adresleme yöntemiyle çalmış olduğu için, bu kopyaya problem düzelene kadar ulaşamazsınız.

IPFS Nedir?

IPFS; veriler, internet sayfaları, dosyalar ve uygulamalar dahil olmak suretiyle her türlü içinde ne olduğu depolamak ve bu içeriğe merkezi olmayan bir halde erişebilmek için tasarlanmış bir protokol olarak tanımlanabilir. IPFS, dosyaları depolamak ve dosyalara erişmek için P2P (Peer to Peer / eşler arası) tabanlı merkeziyetsiz bir alternatif olarak tasarlandı. Aslen tasarlanan bu emek verme torrentteki emek verme prensibi ile benzerlik gösteriyor bu sebeple torentte de data karşı taraftaki eşlerden data blokları halinde çekiliyor.

İlk olarak 2013 senesinde tohumları atılan IPFS, 2015 senesinde Protocol Labs şirketi tarafınca geliştirildi. IPFS üstünde çalışan ekip, firmanın kurucusu ve CEO’su Juan Benet tarafınca yönetilen minik bir geliştirici ekibiydi. Şirket bununla birlikte $FIL (File coin)’in de babası. Şirket açık kaynak kodlu IPFS ile günümüz internetinin sıkıdüzen ve arızaya açık nokta benzer biçimde sorunlarını çözmeyi ve geleceğin internetini yaratmaya katkıda bulunmayı amaçlıyor.

İçerik Tabanlı Adresleme

IPFS’in mevcut web ile temelden değişik olduğu konulardan biri konum tabanlı adresleme yerine içerik tabanlı adresleme kullanmasıdır. Şu demek oluyor ki bilgisayarınıza, dosyayı nerede bulacağını değil, neyi bulacağınızı söylersiniz. Bir başka deyişle, URL yerine hash kodu kullanırsınız.

Bu, içerik tabanlı adreslemenin doğru çalışabilmesi için gereklidir. Dosya yada verileri eşi olmayan kılan bir emek verme sistemi yaratılmalıdır ki tam olarak neyi arıyorsak onu bulabilelim. Dosya ve verilere kimlik atamak için her dosyaya benzersiz bir hash kodu -burada IPFS söz mevzusu olduğundan içerik kimliği (CID – Content ID)- atanır. 

İçerik tabanlı adreslemede bilgisayarınıza spesifik bir CID kodunu taşıyan dosyayı aradığınızı söylersiniz. Bilgisayarınız da bağlı olduğu ağdaki node’lara bu CID kodunu taşıyan dosyanın kimde bulunduğunu sorar. Ağa bağlı bir node’da bu dosya mevcutsa bu istemi aldığında dosyayı size yollar. Bu dosyanın üstünde oynanmadığından ya da içine virüs konmadığından güvenilir olmak için CID kodlarını karşılaştırıp bunun istediğimiz dosya olup olmadığını denetim etmemiz kafi. CID kodları benzersiz olduğundan, değiştirilmiş bir dosyanın CID kodu da değişecektir.

IPFS Nesneleri nedir ve nasıl çalışır? 

Mevzu depolama olduğunda dosyaları IPFS’te depolarken, sistem IPFS nesneleri oluşturuyor. Bu tarz şeyleri blok zincirdeki bloklar benzer biçimde düşünebiliriz. IPFS nesneleri maksimum 256 KB’lık bir alana haiz olup bu alandan hariç olarak, başka IPFS nesnelerine bağlantılar içerebiliyor. Şu demek oluyor ki bir IPFS nesnesi iki bölümden oluşuyor: 256 KB’lık veri alanı ve bağlantı alanı. Rahat bir “merhaba dünya!” mesajı bu 256 KB’lık nesneye rahatça sığar. Sadece fotoğraf ya da video benzer biçimde dosyaların büyük çoğunlukla 256 KB’ın üstünde bulunduğunu biliyoruz. Bu durumda IPFS’te 256 KB’tan büyük bir dosyayı depolayabilmek için dosya gene 256 KB’lık nesnelere bölünüyor. Büyük dosya daha minik nesnelere bölünür bölünmez, sistem bu orijinal büyük dosyayı oluşturan tüm IPFS nesnelerine bağlantı veren boş bir referans nesnesi ekliyor. Bu oldukça kolay bir çözüm olmakla beraber o denli etkilidir ki bir dosyalama sistemi olarak kullanılabiliyor.

Bu dosyalama sistemi içerik tabanlı bir sistem olduğundan, aynı blockchain’de olduğu benzer biçimde, yaratılan ya da eklenen bir dosya değiştirilemiyor. Sadece IPFS versiyonlamayı destekleyen bir sistemdir. Diyelim ki başkalarıyla da paylaşmak istediğiniz mühim bir dosya üstünde çalışıyorsunuz. Bu durumda sistem IPFS üstünde bir “taahhüt nesnesi” oluşturuyor. Bu nesnenin oldukça kolay bir işlevi vardır: IPFS’e hangi versiyonun kendinden ilkin geldiğini söylemek ve bunu IPFS nesnesine bağlamak. Siz üstünde çalıştığınız dosyayı güncellediğinizde IPFS, dosyanıza bağlanan yeni bir taahhüt nesnesi yaratıyor ve bunu önceki versiyona bağlıyor. Bu işlem sonsuza kadar devam edebilir. IPFS, dosyanızı ve bunun tüm geçmişini kısaca değişik sürümlerini ağdaki tüm node’lara paylaşıyor. Böylece dosya, tüm geçmişiyle beraber ağa açılmış oluyor.

Özetle IPFS nesneleri;

A- Büyük bir dosyanın 256 KB’lık parçaları olabilir. Referans nesnesi bu parçalara bağlantı verir.

B- Üstünde çalıştığınız bir dosyanın tüm versiyonlarını içerebilir (taahhüt nesnesi)

Yönlendirilmiş Döngüsel Olmayan Grafikler (DAG)

IPFS’in yapısı bir dizin ve dosya sistemini takip edecek şekilde optimize edilmiştir. Şu demek oluyor ki, IPFS protokolü bir node’un içeriğini değişik bloklara böler. Bu, içeriğin daha yüksek bir hızda doğrulanmasını ve daha güvenli olmasını sağlar. Ek olarak, her klasörün bir CID’i, klasördeki dosyaların kendi CID’leri ve bu dosyaların bölünmüş parçalarının da CID’leri olduğundan bu yapıya Merkle DAG grafiği denir. Merkle ağacı terimi 1979 senesinde Ralph Merkle tarafınca geliştirilmiştir.

Yönlendirilmiş Döngüsel Olmayan Grafikler (Directed Acyclic Graphs / DAG), birçok merkeziyetsiz sistem tarafınca kullanılan bir veri yapısı biçimidir. IPFS, Merkle DAG’leri olarak malum DAG yapılarını kullanır. Bu veri yapısında, her node’un, haiz olduğu içinde ne olduğu temsil eden benzersiz bir hash kodu vardır.

Şekildeki yeşil alanları (yaprakları) verinin 256 KB’lık parçaları bulunduğunu düşünelim. En üstteki kahverengi parça (kök) ise dosyanın tüm halini ifade ediyor. Bu şemayı bununla birlikte bir dosyanın eski versiyonları yada bir node’un içinde ne olduğu olarak da düşünebiliriz.

Bu veri yapısını kullanmanın bir başka yararlı tesiri, benzer dosyaların Merkle DAG’ının bölümlerini paylaşabilmesidir. Şu demek oluyor ki, bir projeyi güncellediğimizde, yalnızca güncellenen dosyalar yeni bir CID alır.

IPFS’in Dezavantajı

IPFS en büyük problemi, teknoloji nispeten yeni olduğundan, kısaca hemen hemen ana akım olmadığı için dosyaları devamlı olarak erişilebilir kılmakta yaşıyor. Eğer bir dosyanın kopyası bir tek birkaç node’da bulunuyorsa ve bu node’lar o sırada çevrimdışıysa dosya ulaşılamaz olur. Tam olarak torentte bir dosyayı indireceğimiz vakit seeder olmaması benzer biçimde.

Bunu aşmanın iki yolu var:

1- Node’ları devamlı online olmak mevzusunda teşvik etmek

2- Dosyaları proaktif olarak dağıtmak ve belirli sayıda kopyanın mevcut olduğundan güvenilir olmak.

Bugün, blockchain tabanlı çeşitli dosyalama ve depolama projeleri bu şekilleri kendi emek verme sistemlerine entegre ediyorlar.

Peki niçin adı gezegenler arası?

Güzel sual! Diyelim ki Mars’ta bir üstesiniz ve dünyayı oldukca özlediniz. Dünyadaki internetten dünyadaki güzel bir yerin fotoğrafını istediniz. Bu istem sinyali dünyaya 4 dakika ile 24 dakika içinde gider. Dünya bu istemi 10 milisaniyede tamamlar ve Mars’a geri gönderir. Bu sinyalin seyahati de iyi bir günde 4 dakika, fena bir günde 24 dakika sürer. Şu demek oluyor ki kolay bir fotoğrafı Mars’ta görüntülemek 8 ila 48 dakika içinde bir vakit alır. Fakat eğer daha ilkin Mars’taki bir başkası da bu fotoğrafı istemişse IPFS sistemi ile bu fotoğrafa saniyeler içinde ulaşabilirsiniz. Bu şekilde web, güneş sistemimizdeki hatta daha uzaktaki gezegenler içinde da erişilebilir olur. Coşku verici değil mi?

Özetle

IPFS, dosyaların tek bir merkezden her insana dağıtılması yerine, her insanın her insana dosya paylaşımı yapmış olduğu bir sistem olarak tanımlanabilir. Bu sistemde dosyalar oluşturulurken ve paylaşılırken 256 KB’lık parçalara bölünüyor. Bu parçalara nesneler deniyor ve her biri bir nevi “ben orijinal dosyanın bir parçasıyım” diyen bir bağlantı içeriyor. Orijinal dosya, dosyanın bulunmuş olduğu klasör ve bu içeriğe haiz olan node CID isminde olan hash kodlarını alıyor. Bu şekilde hız ve güvenlik sağlanıyor.

Böylece dosyalar (web sayfaları, uygulamalar, videolar vs) merkezi bir sistem üstünden dağıtılmadığı için sansürlenmesi de mümkün olmuyor. Bu şekilde bir web tam olarak Web3’ün gereksinim duyduğu altyapı. Bakalım Web 3, Web2’nin hatalarını çözüp daha demokratik bir cemiyet yaratabilecek mi? Bunu vakit gösterecek.

[ad_2]

Kaynak: Webrazzi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.