DAG (Yönlü düz ağaç) Nedir

Blok Zincir

DAG, farklı bir tür veri yapısıdır – DAG’yi farklı veri parçalarını bir araya getiren bir veritabanı olarak düşünebilirsiniz. “Yönlü düz ağaç”

Kripto paraları düşündüğünüzde muhtemelen aklınıza “blockchain” ya da “dağıtılmış kayıt defteri teknolojisi” kavramları geliyordur. Bitcoin‘in kullanıma sunulduğu günden bu yana yüzlerce başka kripto para yaratılmıştır. Bunların çoğu, benzer ağ mimarilerine dayanır. Veri yapıları, kullanıcıların değer transferi yapmasına ya da merkeziyetsiz uygulamalarla etkileşim kurmasına imkan tanır.

Bir blockchainde, gitgide büyüyen blok zincirine düzenli aralıklarla yeni bir blok eklenir. Her blok, bir tür kriptografik bağlantıyla (yani bir hash’le) kendisinden önce gelen bloğa bağlanır. Bu blokların her biri, kullanıcıların kısa süre önce gerçekleştirdiği ve yayınladığı işlemlerdir.

Fakat, işlemin yayınlanması ve bir bloğa eklenmesi arasında genellikle bir bekleme dönemi olur. Bunu bir istasyonda tren beklemek gibi düşünebilirsiniz. Vagonların büyüklüğüne (blok büyüklüğü) ve bekleyen diğer kişilerin sayısına (beklemedeki işlemler) bağlı olarak bir sonraki trene binme şansınız bile olmayabilir. Ve hatta daha sonrakine. İşlemin onaylanması için birkaç saniyeden birkaç saate kadar beklemeniz gerekebilir.

Birçok kişi için bu durum kabul edilebilir bir kar zarar dengesidir. En nihayetinde, merkezi bir koordinatöre bağlı olmak zorunda kalmadan çok yüksek seviyede güvenlik sunar. Diğerleri içinse, blockchain teknolojisinin bir son kullanım süresi vardır. Bu kişiler, blockchain teknolojisinin karşı karşıya olduğu ölçeklenebilirlik sorunlarının uzun vadede geniş çaplı benimsenmeyi engelleyeceğine inanır.

Bazı kişiler, kripto para ödeme ağlarının geleceğinin tamamen farklı bir mimaride yattığına inanır – yönlü düz ağaçlar (directed acyclic graphs – DAG’ler).

DAG nedir

DAG kavramsal olarak yukarıdaki gibi gözükür. Düğümler (küreler) ve kenarlardan (küreleri bağlayan çizgiler) meydana gelir. DAG’ler yönlüdür çünkü bir yöne doğru ilerler (yukarıdaki oklardan görebilirsiniz). Düzdür (yani döngüsel değildir) çünkü kenarlar dönerek ilk noktaya geri gelmez – bir noktadan başlar ve grafiği takip ederseniz aynı noktaya geri dönemezsiniz. Birazdan bu kavramlar daha açık hale gelecek.

Böyle veri yapıları genellikle veri modellemek için kullanılır. DAG’den, bilimsel ya da tıbbi alanlarda değişkenler arasındaki ilişkileri gözlemlemek ve bunların birbirlerini nasıl etkilediğini belirlemek için faydalanabilirsiniz. Örneğin, beslenme, uyku döngüleri ve fiziksel semptomlar gibi değişkenlerin bir hastayı nasıl etkilediğini belirlemek için bunlar arasında bağlantılar çizebilirsiniz.

DAG nasıl çalışır

DAG temelli bir kripto parada, yapıdaki her düğüm bir işlemi temsil eder. Burada blok kavramı bulunmaz ya da veritabanını büyütmek için madencilik gerekli değildir. Yani, işlemlerin bloklar halinde bir araya getirilmesi yerine, her işlem bir diğerinin üzerine inşa edilir. Fakat, node bir işlem gönderdiğinde küçük bir Proof of Work (PoW) sürecinin tamamlanması gerekir. Bu PoW süreci, ağın spam’lenmediğini garanti altına alır ve daha önceki işlemleri doğrular.

Yeni bir işlem, daha eski işlemlerin üzerine inşa edilerek eklenebilir. Alice’in yeni bir işlem yarattığını varsayalım. Bu işlemin kabul edilmesi için önceki işlemlere referans vermesi gerekir. Bu durum, Bitcoin’deki bir bloğun kendisinden önce gelen bloğa referans vermesine benzer, fakat burada birden fazla işleme referans verilir.

Bazı sistemlerde, yeni işlemin hangi işlemler (ya da “uçlar”) üzerine inşa edileceği bir algoritma tarafından seçilir. Seçilme ihtimali daha yüksek olan uçlar daha fazla ağırlık biriktirmiş olanlardır – uca giden yolda kaç doğrulama olduğunun bir ölçütü.

Alice’in üzerine inşa edeceği işlemler doğrulanmamış olanlardır. Fakat Alice onlara referans verdiğinde doğrulanmış hale gelirler. Artık Alice’in işlemi doğrulanmamıştır ve bu işlemin kabul edilmesi için başka birinin onun üzerine inşa etmesi gerekir.

Kullanıcıların “daha ağır” işlemleri onaylaması daha olasıdır, böylece sistem büyümeye devam eder. Aksi takdirde kullanıcıları, daha eski işlemler üzerine inşa etmeye devam etmekten alıkoyan bir şey olmaz.

Blockchainlerde, çift harcama koruması oldukça kolaydır. Aynı fonlar bir blok içinde iki kere harcanamaz – node’lar böyle girişimleri kolayca fark eder ve çakışan işlemlere sahip tüm blokları reddeder. Madencilerin bir blok yaratmasının çok masraflı olması, onları hile yapmama yönünde teşvik eder.

DAG’ler de çift harcamayı engelleyen bir mekanizmaya sahiptir. Blockchaine bir derece benzerdir, fakat madencileri içermez. Node, eski bir işlemi onayladığında, göndericinin yeterli bakiyeye sahip olduğundan emin olmak için tüm yolu, DAG’nin ilk işlemine kadar geri giderek değerlendirir. Birden fazla yol olabilir, fakat yalnızca bir tanesinin onaylanması gerekir.

Kullanıcılar geçersiz bir yol üzerine inşa ederse, işlemlerinin göz ardı edilmesi riskiyle karşı karşıya kalır. Bu kişilerin işlemi meşru olabilir fakat kendilerinden önce gelenler meşru olmadığı için hiç kimse bu yolu uzatmak istemez.

Bu en başta sezgisel olmayan bir yöntem gibi gözükebilir – birbirinin varlığının farkında olmayan birden fazla dalın ortaya çıktığı bir durumla karşı karşıya kalınmaz mı? Daha sonra insanlar, aynı fonları bu farklı dallarda harcayamaz mı?

Evet, gerçekten de bu olasılık dahilindedir, fakat daha fazla ağırlık biriktirmiş uçları tercih eden bir seçim algoritması ile sorun çözülür. Bunun anlamı zamanla, diğerlerinden çok daha güçlü bir dalın ortaya çıkacağıdır. Zayıf olanlar terk edilir ve en ağır olan dalın üzerinde ağın inşasına devam edilir.

Blockchainlere benzer şekilde kati bir işlem sonlandırma yoktur – bir işlemin tersine çevrilmeyeceğinden %100 emin olmanız hiçbir zaman mümkün değildir. Son derece düşük olasılıklıdır, fakat teorik olarak bir Bitcoin ya da Ethereum bloğunu “geri alabilir”, bu bloğun içindeki tüm işlemleri tersine çevirebilirsiniz. Bir işlemin olduğu bloğun üzerine ne kadar çok blok eklenirse, bloğa olan güven de o kadar artar. Fonlarınızı harcamadan önce altı onaylamanın tamamlanmasını beklemeniz bu yüzden önerilir.

IOTA’nın Tangle’ı gibi bir DAG’de, onaylama güveni adlı bir kavram bulunur. Seçim algoritması 100 kere çalıştırılır ve bir işlemin seçilen uçlarda doğrudan ya da dolaylı olarak kaç kere onaylandığı sayılır. Yüzde ne kadar yüksekse işlemin “sabit” kalacağına yönelik güven de o kadar yüksek olur.

Bunun kötü bir kullanıcı deneyimi sunacağı düşünülebilir. Fakat aslında durum böyle değildir. Alice, Bob’a 10 MagicDAGToken gönderirse, ağacın doğru uçlarını seçme konusunda kaygılanmasına gerek olmaz. Cüzdanı arka planda şunu yapıyor olur:

  • Ağır uçları seçme (hatırlarsanız bunlar en fazla onaylama biriktirmiş olanlardır).
  • Uçların harcayacak yeterli bakiyeye sahip olduğundan emin olmak için yolu önceki işlemler boyunca takip etme.
  • Emin olduktan sonra işlemi DAG’ye ekleme ve yeni işlemin üzerine eklendiği işlemleri doğrulama.

Alice için bu süreç standart bir kripto para iş akışı gibi gözükecektir. Bob’un adresini ve göndermek istediği tutarı girer, daha sonra gönder tuşuna basar. Yukarıdaki liste, tüm katılımcıların işlem yaratırken gerçekleştirdiği Proof of Work’tür.

Exit mobile version