Hyperledger Hackfest Amsterdam: Hyperledger Fabric ve Indy

Etkinliğin 4 dakikalık bir özeti paylaşıldı. Aşağıdaki video’dan izleyebilirsiniz.

Hyperledger maceramıza Amsterdam’da katıldığımız Hackfest ile devam ediyoruz.

Hyperledger Fabric: Güncellemeler, Yenilikler

Hyperledger oluşumunun şu ana kadar en çok yol kateden IBM ekibinin desteklediği projesi “Hyperledger Fabric” güncellemelerine tam gaz devam ediyor. Yakın zamanda 1.2 sürümü yayınlanan projeninin, gelecekteki roadmap i de az çok belli oldu.

IBM Blockchain ekibinin başında bulunan Chris Ferris Fabric’de yaşanan gelişmeleri bizlere aktardı.

Dikkatimizi çeken yenilikleri biz de kısaca aktarmaya çalışalım.

Ethereum Virtual Machine Chaincode

  • Fabric 1.2 sürümü ile gelecek en önemli yenilik EVM chaincode larını Fabric üzerinde çalıştırabilme yeteneği. Bu Blockchain dünyasındaki en etkili çözümlerden birisi olan Ethereum teknolojisinin Hyperledger Fabric projesi ile buluşması için de çok önemli bir adım. EVM chaincode’larını fabric üzerinde koşturabildiğimiz yapılar bize ciddi bir esneklik ve yeni fonksiyonlar sağlayacak. 1.2 sürümünde bu henüz deneme aşamasında olsa da yakın zamanda yayınlanması beklenen 1.3 Fabric sürümünde stabil tam olarak oturmuş bir şekilde EVM chaincode kullanımı yapabileceğimizi düşünüyoruz.

Pluggable Endorsement Policy + Validation

  • Hyperledger Fabric projesi yola başlarken diğer çözümlerden en önemli farkı olarak değiştirilebilir Consensus(Ordering)servisi ve yine ihtiyaca göre çeşitlendirilebilen MSP(Membership Service Provider) yapısı ile ön plana çıkıyordu, şimdi bunlara bir de Pluggable Endorsement Policy + Validasyon (Yetkilendirme ve Validasyon) işlemleri ekleniyor. Yakın zamanda 1.1 versiyonunda deneme imkanı bulduğumuz SideDB’de bu sürümde daha güçlü ve stabil bir şekilde yerini alıyor.

1.2 sürümünden sonra yayınlanacak olan Hyperledger Fabric 1.3 ve 1.4 sürümünde ise köklü değişiklikler ve yeni consensus mekanizmaları kullanımımıza açılacak.

Zero Knowledge Asset Transfer(ZKAT)

  • 1.3 sürümü ile karşımıza çıkacak olan ZKAT blockchain dünyasında çokca konuşulan ZKP(Zero Knowledge Proof) algoritmasını içeren aşağıdaki soruya çözüm üreten bir yapı.

Bir bilgiyi bildiğimi, karşı tarafa bu bilgiyi vermeden nasıl ispat edebilirim? ”Zero Knowledge Proof(ZKP)

Hyperledger Fabric çözümünde İşlemlerin Özel(Private) olmasını sağlayan ana bileşenler “Channels(Kanallar)” ve “Özel İşlemler”dir. Buna ek olarak ZKP(Zero Knowledge Proofs) algoritması da aynı probleme çözüm üretir.

Hyperledger Fabric ZKP yeteneğini kullanırken iki ana çözüm üzerinde duruyor.

1- Kimlik Mikseri(Identity Mixer) ile anonim istemci kimlik doğrulaması

2- Özel Varlık transferinin korunması(Private-Preserves of Exchange Assets)

1.3 sürümü ile beraber bu özelliklere de kavuşmuş olacağız.

Detaylı Bilgi için : Private and confidential transactions with Hyperledger Fabric

Java Chaincode

  • Hyperledger Fabric’in şu an ki sürümünde Go dili veya NodeJS ile yazılan chaincode ları kullanabiliyoruz. Akıllı kontratlarımızı bu dillerden birini kullanarak oluşturuyor, proseslerimizi onlar sayesinde yönetiyoruz. 1.3 sürümü ile gelecek önemli yeniliklerden birisi de Java Chaincode seçeneği. Bu birçok yazılımcı tarafından epeydir beklenen çok güçlü bir dil olan Java ile Blockchain ekosistemine birçok Java yazılımcısının da katılmasını sağlayacak önemli bir adım.
  • Yani Hyperledger Fabric 1.3 sürümü geldiğinde aşağıdaki dillerde Fabric networkü üzerinde chaincode çalıştırabiliyor olacağız.

1- Go

2- NodeJS

3- Solidity(Ethereum Virtual Machine Chaincode)

4- Java

RAFT Consensus Mekanizması

  • Yine 1.3 sürümü ile gelecek çok önemli yeniliklerden birisi de daha önce JpMorgan’ın Quorum çözümünde kullandığı Bizans Hata Toleransını içermeyen ve Crash Fault Tolerance(Kafka) yapısına benzer özellikler gösteren RAFT Consensus yapısı artık Hyperledger Fabric içerisinde Orderer Servisinde tercih edilip kullanılabilecek.

Detaylı Bilgi için: RAFT

Bunlara ek olarak web3 proxy ve yeni composer fonksiyonları da 1.3 sürümü ile gelecek.

PBFT Consensus Mekanizması

  • En son olarak nihayet 1.4 sürümünde kavuşacağımız Hyperledger Fabric projesindeki en önemli geliştirmelerden birisi olan aslında Hyperledger Fabric’i yukarılara taşıyacak en önemli etken olan Bizans Hata Toleransını da içerecek olan PBFT Consensus mekanizması bu da 1.4 sürümü ile beraber Orderer servisi içerisindeki yerini alacak.

Detaylı Bilgi: PBFT ve Bizans Hata Toleransı

1.4 sürümünün ise tahmini yayınlanış tarihi IBM Blockchain ekibinin başında bulunan Chris Ferris tarafından Ocak 2019 olarak açıklandı.

Hyperledger Indy: Sovrin SSI

Yazıya başlamadan önce Sovrin hakkında bazı bilgiler vermek istiyorum.

Indy, Hyperledger Projeleri arasına katılmadan önce Sovrin olarak geliştirilmekteydi. (Sovrin aynı zamanda Indy haricinde de geliştirilmeye devam ediyor.)

Peki nedir bu Sovrin?

Sovrin Foundation dünyanın ilk “Self-Soverign Identity” (SSI) (Kendi Kendini Yöneten Kimlik) ağını yönetmek için kurulmuş uluslararası, kar amacı gütmeyen bir kuruluştur.

Sovrin, “Dağıtık Defter Teknolojisi” (Distributed Ledger Technology)üzerine kurulu açık kaynak bir kimlik ağıdır. Kullanıma açık ve izinlidir. Herkes kullanabilir. Katılabilir.

2017 Mayıs ayının başlarında Sovrin, Hyperledger Projeleri’nin arasına Indy ismi ile katıldığını açıklamıştı. Bu projenin Blockchain Distributed Ledger sistemine benzersiz bir güven sağlayacağı düşünülüyor.

Hyperledger Indy’nin tamamen Sovrin altyapısı ile çalıştığını ve aynı olduğunu unutmamak önemli. Aynı zamanda Sovrin Foundation, Sovrin Trust Framework tarafından yönetilen Sovrin Ağı’nı sürekli geliştirmeye ve çalışmaya devam etmekte.


Hyperledger Hackfest Amsterdam’da Hyperledger Indy için kapsamlı bir bölüm ayrıldı.

Sovrin Foundation’un CTO’su Nathan George, Indy Projesi hakkında teorik bilgiler aktararak başladı. Daha sonra bir uygulama ile örneklendirdi.

Indy projesinin temel amacını hatırlayalım.

Hyperledger Indy, bloklar veya diğer Dağıtık Defterlere (Distributed Ledger) köklendirilmiş dijital kimlikler sağlamak için araçlar, kütüphaneler ve yeniden kullanılabilir bileşenler sağlıyor. İdari alanlar, uygulamalar ile birlikte çalışabiliyor. Böylece, bir çok alana kolaylıkla eklemlenebilir bir güce sahip. Bir kaç örnek verecek olursak, Devlet kurumları, sağlık kuruluşları, eğitim kuruluşları, sigortacılık sistemleri gibi bir çok alanda kullanılması bekleniyor.

Özetle Indy, dijital kimliğinizi güvenli bir şekilde bu bilgilere ihtiyaç duyan taraflar ile paylaşabileceğiniz güvenli bir sistem olarak karşımıza çıkıyor.

Dijital Kimliklerin Evrimi

İnternet, bir çok bilgisayar sisteminin birbirine bağlı olduğu kendine özgü standartları olan bir iletişim ağıdır. Bilgisayar sistemleri birbirine veri paketleri gönderip alırlar. İletişim sürekli bu şekilde gerçekleşir.

İnternet’in insanların değil, makinelerin etrafında inşa edildiğini söyleyebiliriz.

İnternetin ilk zamanlarda kimin nereye bağlandığını takip etmenin yolu yoktu. Aslında bu kmlik güvenliği açısından gayet iyi bir durumdu. Bir mesaj göndermek için e-mail, veri paketi alabilmek için www kullanıyorduk.

Fakat sonradan Web 2.0 ile uygulamalar daha karmaşık hale geldikçe, e-ticaret ve sosyal platformlar yaygınlaştı. Kimlik sorusu daha önemli hale geldi.

Merkezi Kimlik (Centralized Identity) :

İnternet’in ilk günlerinde dünyayı decentralize edecek bir ağ oluşmaya başlamış olsa da, bu merkezi olmayan ağ, en sonunda merkezi kimlik tabakası üzerinde çalışmaya başladı. IANA (1988) gibi Merkezi organizasyonlar IP adreslerinin geçerliliğini belirledi ve ICANN (1998) alan adlarını tescilledi.

Daha sonra e-ticaret’in her iki tarafında da güven bir sorun haline gelmiş oldu.

“Müşterilerime faturalarını ödemeleri konusunda güvenebilir miyim?”

“Mallarımı teslim etmesi için servis sağlayıcısına güvenebilir miyim?”

Dijital kimliğin merkezileşmesi, kimlik verilerinin ait olması gereken kullanıcılara değil, bu verilerin merkezi otoritelere verilmesini sağladı.

Bugün hala, çoğu İnternet kimliği merkezidir. Bir e-ticaret sitesi veya sosyal ağ gibi tek bir varlık tarafından sahiplenilir ve kontrol edilir. Merkezi bir kimlik kendi alanı içinde çalışabilir, ancak kullanıcılarının etkileşimde bulunduğu online web sitelerinin ve hizmetlerinin çok hızlı büyümesine ve çeşitliliğine ayak uydurabilmek için mücadele eder. Bu nedenle, bir veri kaosu meydana gelir.

Veri Kaosu (Data Chaos) :

  • Kimliğinizin ve diğer kişisel verileriniz tüm Web’e yayılmış durumdadır.
  • Kullanıcılar yüzlerce kullanıcı adını ve şifreyi yönetmek zorundadır.

Veri Köleliği (Data Slavery) :

Dijital kimliklerimiz, sertifika yetkilileri, alan adı kayıt şirketleri ve bireysel platformlara aittir. Bu durumda aslında kendi verilerimize sahip değiliz ve bunları her ne kadar yönetebiliyor gibi görünsek de yönetemediğimizi söyleyebiliriz. (Facebook, Google, Bankanız, Üniversiteniz gibi…)

#1 Centralized Identity

Birleştirilmiş Kimlik (Federated Identity) :

Kısaca özetleyecek olursak, federe bir yapı, bir kullanıcının bir diğerinin kimlik bilgilerini kullanarak bir hizmete giriş yapmasını mümkün kılar. Merkezi bir kimliğe bir derece veri taşınabilirliği sağlamış olur.

#2 Third Party IDP (Federated) Identity

Kullanıcı Merkezli Kimlik (User-Centric Identity) :

Kullanıcı kendi veri deposunu bilgi ile doldurur. Bu bilgi daha sonra bireyin izniyle başka kuruluşlara verilir ve bu hükümlerin bir kaydı tutulur.

Özerk Kimlik (Self-Soverign Identity, SSI) :

“SSI, bir bireyin veya kuruluşun %100 sahibi olduğu ve kontrol ettiği bir dijital kimliktir. Başka hiç kimse onu okuyamaz, kullanamaz, kapatamaz veya sahibinin açık rızası olmadan göremez. Bu basit kimlik biçimi kişiye özeldir. Son derece güvenlidir ve gittiğiniz yere gider.”

SSI, insanların ve işletmelerin kendi kimlik verilerini kendi cihazlarında saklayabilmeleri ve kimlik verilerinin merkezi bir veri havuzuna dayanmaksızın kimlik doğrulamasına ihtiyaç duyan kurumlar ile etkili bir şekilde paylaşabilmelerine çözüm sunuyor.

Indy Verifiable Credentials Ecosystem

Nathan, daha sonra Indy SDK hakkındaki gelişmeleri paylaştı. SDK nasıl yüklenir, cli-tool nasıl çalıştırılır, local node’lar nasıl başlatılır gibi.

Bu bilgilerin hepsi github’daki indy projesi içerisinde detaylı bir şekilde aktarılmış. Hyperledger Indy ile ilgileniyorsanız SDK’yı incelemenizi öneriyorum.

Ayrıca, bu bağlantıda, Amsterdam’daki etkinlik için özel bir bölüm oluşturulmuş. Göz atmanızı öneririm. Ayrıca aşağıda Nathan’ın paylaştığı uygulama örneğini bulabilirsiniz.

Demo’yu aşağıda görebilirsiniz.


 

Leave a Reply