Sitemap

Hashgraph mı???

4 min readMay 1, 2018

Bir önceki yazımda Tangle’dan bahsedince, DLT (Distributed Ledger Technology) dünyasının üzerinde çok konuşulan başka bir üyesi Hashgraph hakkında kısa da olsa yazmamak olmaz diye düşündüm.

Press enter or click to view image in full size

Leemon Baird tarafından ortaya çıkarılmış olan Hashgraph, genel DLT yaklaşımlarından farklı olarak açık kaynaklı bir teknoloji değildir, yine Leemon tarafından kurulmuş bir şirket olan Swirlds’in fikri mülkiyetinde bulunmaktadır.

Olay Kaydı (Event) Yapısı

Blockchain teknolojisinin blok yapısını andırır bir şekilde Hashgraph yapısında işlemler “Olay Kaydı” (Event) olarak adlandırılan veri yapılarında tutulmaktadır ve olay kayıtları arasında özet değerleri (hash) kullanılarak ilişki kurulmaktadır. Bu veri yapılarının içerisinde zaman bilgisi, işlemler (bu bilginin olması zorunlu değildir) ve ilişkili diğer olay kayıtlarına ait özet bilgisi bulunmaktadır.

Hashgraph Yapısı

Hashgraph yapısında ağı oluşturan tüm katılımcılar birbirleri ile sürekli olarak bildikleri olay kayıtları hakkında iletişim kurmakta ve bu iletişim bir tür olay kayıt ağacı oluşturulmasında kullanılmaktadır. Bu iletişim sırasında “gossip protocol” adı verilen bir yaklaşım kullanılmaktadır. Bu yapıda katılımcılar rastlantısal bir şekilde ağ üzerindeki diğer katılımcılar ile iletişime geçerek kendilerinin bilgi sahibi olay kayıtları hakkında bilgi paylaşımı gerçekleşmektedir. Bu oldukça hızlı bir veri paylaşım modelidir, bir milyon katılımcının olduğu bir sistemde bir olay kaydı yaklaşık 20 senkronizasyon içerisinde tüm ağa yayılabilir (Saniye 20 senkronizasyon yapan bir sistem için bu bir saniye içerisinde olay kaydının tüm sisteme yayılması anlamına gelmektedir). Bu modeli toplumsal yapılarda (mesela bir ofis ortamında) herhangi bir dedikodunun yayılma modeline benzetebiliriz.

Hashgraph üzerinde bir katılımcının olay kaydı oluşturması temel olarak başka bir katılımcının kendisi ile irtibata geçmesi ile olur. Bundan dolayı oluşan her olay kaydı üzerinde:

  • kaydı yaratan katılımcının bir önceki olay kaydını gösteren özet değeri (self-parent)
  • irtibata geçen katılımcının ilettiği son olay kaydını gösteren özet değeri (other-parent)

bulunur (Bu yapının “hashgraph” olarak adlandırılmasının temel nedeni tüm olay kayıtlarının kriptografik özet değerleri ile birbirilerine bağlı olmasıdır). Bu şekilde bir olay kaydının geçmiş olay kayıtlarına dair referans içeriyor olması ve bu bilginin de diğer katılımcılara iletilmesinden dolayı Hashgraph içerisindeki iletişim yapısı aynı zamanda “gossip about gossip” olarak nitelendirilmektedir.

Hashgraph üzerindeki mutabakat yapısı temel olarak olay kayıtlarının sırası (order) ve zaman bilgisi (timestamp) üzerinde gerçekleşmektedir. Bu mutabakatı gerçekleştirmek için:

  • Hashgraph yapısı olay kayıtlarının gruplandırıldığı turlara (round) bölünür. Bu turlara “yaratım turu” (round created) denir.
  • Bir tur içerisinde bir katılımcı tarafından yaratılan ilk olay kaydı “tanık” (witness) olarak adlandırılır (her katılımcının bir tur içerisinde bir tanık kaydı olmasına gerek bulunmamaktadır).
  • Her “tanık”, kendinden sonra gelen turlardaki tanık özelliğine sahip olay kayıtları tarafından değerlendirilir. Bu değerlendirme olay kayıtları arasında bir yol olup olmamasına göre (Hashgraph bir “Yönlü Çevrimsiz Çizge“/”Directed Acyclic Graph” yapısıdır) yapılır. “a” turundaki bir tanık kaydı için:
  • “a + 1” turundaki tanık kayıtlarından ilgili kayda bir yol olup olmaması değerlendirilir (buna “oy verme” denir, yol varsa “evet” yoksa “hayır” olarak tanımlanır).
  • “a + 2” turundaki tanık kayıtlarından “a + 1” turundaki tanık kayıtlarına olan yollar incelerek bu yollar üzerinde sistem katılımcılarının çoğunluğunun (tüm katılımcıların 2/3’den fazlasının) kullanılıp kullanılmadığı değerlendirilir (buna “oyların sayılması” denir, “a+1” turundaki tanık kaydının oyunun geçerli kabul edilmesi için bu koşulun sağlanması gerekir).
  • Oyların sayılması sonucunda bu tanık kaydı “evet” oyları çoğunlukta ise “tanınmış tanık” (famous witness), “hayır” oyları çoğunlukta ise “tanınmamış tanık” (infamous witness) olarak adlandırılır (buna “karar verme” denir). Sadece bir sayım yapılması yeterlidir, “a + 2” turundaki tüm tanık kayıtlarının sayım yapmasına gerek bulunmamaktadır.
  • Bir tur içerisindeki tanık kayıtlar ile ilgili karar verildikten sonra önceki olay kayıtları için sıralama ve zaman bilgisi mutabakat yapısı çalıştırılır. Burada önemli olan incelenen olay kaydı için bir sonraki tur kapsamında tüm tanınmış tanıklardan bir yol olmasıdır (bir sonraki tur kapsamında bu sağlanamazsa sonraki tura ait tanınmış tanıklar incelenir). Bu şekilde bir yol bulunduğu zaman tanık kayıtlarının yaratım turu değeri bu olay kaydı için “geçerli tur” (round received) değeri olarak kabul edilir ve mutabakat yapısında olay kaydının geçerli olduğu sırayı (order) belirler. Zaman bilgisi konusundaki mutabakat ise bu olay kayıdına bağlı geçmiş olay kayıtlarının zaman bilgilerinin medyan değerinin hesaplanması ile belirlenir.
Hashgraph Mutabakat Akışı

Hashgraph içerisindeki mutabakat akışı karmaşık görünüyor olsa da asıl kaynak gerektiren işlemlerin sadece belirli olay kayıtları için (tanık kayıtlar) için gerçekleştiriliyor olması ve karar yapılarında ilgili tüm kayıtlar için kontrol etmeden sadece bir kayıdın sonucuna göre hareket edebilmesi sayesinde (matematiksel olarak diğer tüm kayıtlar aynı sonucu oluşturacağından dolayı) günümüz blockchain platformlarına kıyasla çok daha yüksek bir performans vaat etmektedir. Bu konuda yapılan bazı çalışmalarda saniyede 250.000 işlem gibi yüksek rakamların görüldüğü belirtilmiş olsa da bu çalışmalar şu ana kadar hep özel, dışarıya kapalı ağ yapılarında gerçekleştirilmiştir. Yakın zamanda duyurusu yapılan ve açık bir platform olan Hedera platformu bu anlamda gerçek bir deneme ortamı olacaktır.

Umarım faydalı (ve keyifli) bir yazı olmuştur, bir sonraki yazıda - iş değişikliğinden dolayı bir süre ara vermem gerekebilir - görüşmek üzere :)

--

--

Serkan Dogantekin
Serkan Dogantekin

Written by Serkan Dogantekin

product leader, addicted to mobile, fintech, blockchain, ux, trends, startup ecosystem, cyberpunk and wonders of the universe

No responses yet