logoDeveloper Hub

Avalanche Konsensüsü

Çığır açan Avalanche Konsensüs algoritmaları hakkında bilgi edinin.

Konsensüs, bir grup bilgisayarın (yani düğümlerin) bir karar üzerinde anlaşmaya varma görevidir. Blockchain'de bu, bir ağdaki tüm katılımcıların paylaşılan defterde yapılan değişiklikler üzerinde hemfikir olmaları gerektiği anlamına gelir.

Bu anlaşma, herkesin aynı bilgileri görmesini ve bilgilerin doğru ve güvenilir olmasını sağlayan belirli bir süreç, bir konsensüs protokolü aracılığıyla sağlanır.

Avalanche Konsensüsü

Avalanche Konsensüsü, ölçeklenebilir, sağlam ve merkeziyetsiz bir konsensüs protokolüdür. Yüksek verim, hızlı kesinlik ve enerji verimliliği sağlamak için hem klasik hem de Nakamoto konsensüs mekanizmalarının özelliklerini birleştirir. Beyaz bülten için buraya bakın.

Anahtar Özellikler:

  • Hız: Avalanche konsensüsü, işlemlerin hızlı bir şekilde onaylandığı ve geri alınamaz olduğu, alt saniyelik, değişmez kesinlik sağlar.
  • Ölçeklenebilirlik: Avalanche konsensüsü, düşük gecikme ile yüksek ağ verimliliği sağlar.
  • Enerji Verimliliği: Diğer popüler konsensüs protokollerinin aksine, Avalanche konsensüsüne katılım ne hesaplama açısından yoğun ne de pahalıdır.
  • Adaptif Güvenlik: Avalanche konsensüsü, sybil saldırıları, dağıtılmış hizmet reddi (DDoS) saldırıları ve işbirliği saldırıları gibi çeşitli saldırılara karşı dirençli olacak şekilde tasarlanmıştır. Olasılıksal doğası, konsensüs sonucunun istenen duruma yakınsamasını sağlar, hatta ağ saldırı altındayken bile.

Kavramsal Genel Bakış

Avalanche ailesindeki konsensüs protokolleri, tekrar eden alt örnekleme oylaması yoluyla çalışır. Bir düğüm, bir işlemin kabul edilip edilmeyeceğini belirlerken, küçük, rastgele bir doğrulayıcı düğüm alt kümesine tercihlerini sorar. Her sorgulanan doğrulayıcı, tercih ettiği veya kabul edilmesi gerektiğini düşündüğü işlemi yanıtlar.

Not

Konsensüs, geçersiz olduğu belirlenen bir işlemi asla içermeyecektir. Örneğin, 100 AVAX'ı bir arkadaşınıza göndermek için bir işlem gönderirseniz, ancak cüzdanınızda yalnızca 2 AVAX varsa, bu işlem geçersiz olarak kabul edilir ve konsensüse katılmaz.

Eğer örneklenen doğrulayıcıların yeterli bir çoğunluğu aynı tercih edilen işlemle yanıt verirse, bu, sorgulayan doğrulayıcının tercih edilen seçeneği olur.

Gelecekte, bu düğüm, çoğunluğun tercih ettiği işlemi yanıtlayacaktır.

Düğüm, sorgulanan doğrulayıcıların yeterli sayıda ardışık tur boyunca aynı yanıtı vermesi için bu örnekleme sürecini tekrarlar.

  • "Yeterli çoğunluk" olarak kabul edilen doğrulayıcı sayısı "α" (alpha) olarak adlandırılır.
  • Konsensüse ulaşmak için gereken ardışık tur sayısı, yani "Güven Eşiği", "β" (beta) olarak adlandırılır.
  • Hem α hem de β yapılandırılabilir.

Bir işlemde çelişki yoksa, kesinlik çok hızlı gerçekleşir. Çelişkiler mevcut olduğunda, dürüst doğrulayıcılar çelişkili işlemler etrafında hızla kümelenir ve tüm doğru doğrulayıcılar o işlemi tercih edene kadar olumlu bir geri bildirim döngüsüne girer. Bu, çelişkisiz işlemlerin kabul edilmesine ve çelişkili işlemlerin reddedilmesine yol açar.

Avalanche Konsensüsünün Çalışma Şekli

Avalanche Konsensüsü, herhangi bir dürüst doğrulayıcı bir işlemi kabul ederse, tüm dürüst doğrulayıcıların aynı sonuca ulaşacağını garanti eder.

Not

Harika bir görselleştirme için bu demoya göz atın.

Avalanche Konsensüsüne Derin Dalış

Sezgi

Öncelikle, protokol hakkında bazı sezgiler geliştirelim. Bir odada, ne yiyecekleri konusunda anlaşmaya çalışmaya çalışan insanlar olduğunu hayal edin. Varsayılan olarak, pizza ve barbekü arasında bir seçim yapılıyor. Bazı insanlar başlangıçta pizzayı tercih ederken, diğerleri barbeküyü tercih edebilir. Ancak nihayetinde herkesin amacı konsensüs elde etmektir.

Herkes odadaki rastgele bir alt kümeden yemek tercihlerini sorar. Eğer yarısından fazlası pizzayı tercih ederse, kişi "Tamam, görünüşe göre pizza tarafında bir eğilim var. Artık pizzayı tercih ediyorum." der. Yani, çoğunluğun tercihini benimser. Benzer şekilde, eğer çoğunluk barbekü derse, kişi barbeküyü tercih eder.

Herkes bu süreci tekrarlar. Her turda, daha fazla insan aynı tercihe sahip olur. Bu, bir seçeneği tercih eden daha fazla insan olduğunda, birinin çoğunluk yanıtı alması ve o seçeneği tercih olarak benimseme olasılığının artmasından kaynaklanır. Yeterince turdan sonra, konsensüse ulaşır ve herkesin tercih ettiği bir seçeneği belirlerler.

Snowball

Yukarıdaki sezgi, Avalanche konsensüsünün bir yapı taşı olan Snowball Algoritmasını özetler. Şimdi Snowball algoritmasını gözden geçirelim.

Parametreler

  • n: katılımcı sayısı
  • k (örnek boyutu): 1 ile n arasında
  • α (quorum boyutu): 1 ile k arasında
  • β (karar eşiği): >= 1

Algoritma

tercih := pizza
ardışıkBaşarılar := 0
karar verilmediği sürece:
  k rastgele kişiye tercihlerini sor
  eğer >= α aynı yanıtı verirse:
    tercih := >= α olan yanıt
    eğer tercih == eski tercih:
      ardışıkBaşarılar++
    else:
      ardışıkBaşarılar = 1
  else:
    ardışıkBaşarılar = 0
  eğer ardışıkBaşarılar > β:
    karar ver(tercih)

Algoritmanın Açıklaması

Herkesin pizza veya barbekü için bir başlangıç tercihi vardır. Birisi karar vermediği sürece, k kişiyi (örnek boyutu) sorgular ve neyi tercih ettiklerini sorar. Eğer α veya daha fazla kişi aynı yanıtı verirse, o yanıt yeni tercih olarak benimsenir. α, quorum boyutu olarak adlandırılır. Yeni tercih eski tercihle aynıysa, ardışıkBaşarılar sayacı artırılır. Yeni tercih eski tercihten farklıysa, ardışıkBaşarılar sayacı 1 olarak ayarlanır. Eğer hiçbir yanıt bir quorum (α çoğunluğu) elde edemezse, ardışıkBaşarılar sayacı 0 olarak ayarlanır.

Herkes, aynı yanıt için β kez ardışık bir quorum elde edene kadar bu süreci tekrarlar. Eğer bir kişi pizzayı karar verirse, o zaman protokolü takip eden diğer herkes de sonunda pizzayı karar verecektir.

Rastgele örnekleme nedeniyle oluşan tercih değişiklikleri, bir seçim için ağ tercihi oluşturur, bu da o seçeneğe daha fazla ağ tercihi kazandırır ve bu tercih geri döndürülemez hale gelene kadar devam eder ve düğümler karar verebilir.

Örneğimizde, pizza veya barbekü arasında ikili bir seçim var, ancak Snowball, birçok olası seçimde konsensüs elde etmek için uyarlanabilir.

Canlılık ve güvenlik eşikleri parametreleştirilebilir. Quorum boyutu α arttıkça, güvenlik eşiği artar ve canlılık eşiği azalır. Bu, ağın daha fazla byzantine (kasıtlı yanlış, kötü niyetli) düğümü tolere edebilmesi ve güvenli kalması anlamına gelir; yani tüm düğümler, bir şeyin kabul edilip edilmeyeceği konusunda sonunda hemfikir olacaktır. Canlılık eşiği, protokolün ilerleme kaydedememesi için tolere edilebilecek kötü niyetli katılımcı sayısıdır.

Bu değerler, Avalanche Ağı'nda sabitlerdir ve oldukça küçüktür. Örnek boyutu k, 20'dir. Yani bir düğüm, düğümlerin görüşünü sorduğunda, yalnızca ağdaki 20 düğümü sorgular. Quorum boyutu α, 14'tür. Yani, 14 veya daha fazla düğüm aynı yanıtı verirse, o yanıt sorgulayan düğümün tercihi olarak benimsenir. Karar eşiği β, 20'dir. Bir düğüm, 20 ardışık quorum (α çoğunluğu) yanıtı aldıktan sonra bir seçim yapar.

Snowball, ağdaki düğüm sayısı n arttıkça çok ölçeklenebilir. Ağdaki katılımcı sayısından bağımsız olarak, gönderilen konsensüs mesajlarının sayısı aynı kalır çünkü bir sorguda bir düğüm yalnızca 20 düğümü sorgular, ağda binlerce düğüm olsa bile.

Bu noktaya kadar tartışılan her şey, Avalanche'ın Avalanche beyaz bülteninde nasıl tanımlandığıdır. Ava Labs tarafından Avalanche konsensüs protokolünün uygulanması (özellikle AvalancheGo'da) gecikme ve verimlilik için bazı optimizasyonlara sahiptir.

Bloklar

Bir blok, bir blockchain'in yapısını oluşturan temel bir bileşendir. Bir dizi işlem veya diğer ilgili bilgileri tutan bir kapsayıcı veya veri yapısı olarak hizmet eder. Her blok, bir önceki bloğa kriptografik olarak bağlıdır ve bu da blokların bir zincirini oluşturur; bu nedenle "blockchain" terimi kullanılır.

Bir blok, ebeveyninin referansını saklamanın yanı sıra, bir dizi işlem içerir. Bu işlemler, finansal işlemler, akıllı sözleşme işlemleri veya veri depolama talepleri gibi çeşitli bilgi türlerini temsil edebilir.

Bir düğüm bir blok için oy aldığında, bu aynı zamanda blokun tüm atalarının (ebeveyninin, ebeveyninin ebeveyni vb.) oyları için de bir oy sayılır.

Kesinlik

Avalanche konsensüsü, bir güvenlik eşiğine kadar olasılıksal olarak güvenlidir. Yani, doğru bir düğümün, başka bir doğru düğümün reddettiği bir işlemi kabul etme olasılığı, sistem parametrelerini ayarlayarak son derece düşük hale getirilebilir. Nakamoto konsensüs protokolünde (örneğin Bitcoin ve Ethereum'da kullanılan), bir blok zincire dahil edilebilir ancak daha sonra çıkarılabilir ve kanonik zincirde yer almayabilir. Bu, işlem yerleşimi için bir saat beklemek anlamına gelir. Avalanche'da kabul/reddetme işlemleri kesin ve geri alınamazdır ve yalnızca birkaç saniye sürer.

Optimizasyonlar

Düğümlerin doğrulayıcılara "Bu bloğu tercih ediyor musunuz?" diye sorması güvenli değildir. Ava Labs'ın uygulamasında, bir sorgu sırasında bir düğüm "Bu blok mevcut olduğunda, hangi bloğu tercih edersiniz?" diye sorar. Evet/hayır şeklinde bir yanıt almak yerine, düğüm diğer düğümün tercih ettiği bloğu alır.

Düğümler yalnızca yeni bir blok duyduklarında sorgulamazlar; diğer düğümleri sorgulamaya devam ederler, ta ki işlenmekte olan hiçbir blok kalmayana kadar.

Düğümler, bir anketin sonucunu kaydetmek için tüm k sorgu yanıtlarını almalarını beklemek zorunda olmayabilirler. Eğer bir blok zaten alpha oy almışsa, o zaman geri kalan yanıtları beklemeye gerek yoktur.

Doğrulayıcılar

Eğer Avalanche ağında bir doğrulayıcı olmak ücretsiz olsaydı, bu sorunlu olurdu çünkü kötü niyetli bir aktör birçok, birçok düğüm başlatabilir ve bunlar çok sık sorgulanabilir. Kötü niyetli aktör, düğümü kötü bir şekilde hareket ettirebilir ve bir güvenlik veya canlılık hatasına neden olabilir. Konsensüsün bir parçası olarak sorgulanan düğümler, ağ üzerinde etkiye sahiptir. Bu tür bir oy pusulası doldurmayı önlemek için bu etki için gerçek dünya değeri ile ödeme yapmaları gerekir. Gerçek dünya değerini kullanarak ağ üzerinde etki satın alma fikri, Hisse Kanıtı (Proof of Stake) olarak adlandırılır.

Bir doğrulayıcı olmak için, bir düğüm değerli bir şeyi (AVAX) bağlamalıdır (stake). Bir düğüm ne kadar çok AVAX bağlarsa, diğer düğümler tarafından o kadar sık sorgulanır. Bir düğüm ağı örneklediğinde, bu rastgele değildir. Aksine, stake miktarına göre ağırlıklandırılmıştır. Düğümler, doğrulayıcı olmaya teşvik edilir çünkü doğrulama sırasında yeterince doğru ve yanıt verici olduklarında ödül alırlar.

Avalanche'da kesme (slashing) yoktur. Eğer bir düğüm doğrulama sırasında iyi davranmazsa, yanlış yanıtlar verirse veya hiç yanıt vermezse, stake'i tamamen geri alınır, ancak ödül verilmez. Bağlı AVAX'ın yeterli bir kısmı doğru düğümler tarafından tutulduğunda, ağ güvenli ve erdemli işlemler için canlıdır.

Büyük Fikirler

Avalanche'daki iki büyük fikir alt örnekleme ve geçişli oylamadır.

Alt örnekleme, düşük mesaj yüküne sahiptir. Yirmi doğrulayıcı veya iki bin doğrulayıcı olması fark etmez; bir düğüm bir sorgu sırasında gönderdiği konsensüs mesajlarının sayısı sabit kalır.

Geçişli oylama, bir blok için verilen bir oy, tüm ataları için bir oy olduğu anlamına gelir ve işlem verimliliğine yardımcı olur. Her oy, aslında birden fazla oy demektir.

Gevşek Uçlar

İşlemler, kullanıcıların bir AvalancheGo tam düğümüne bir API çağrısı yaparak veya AvalancheJS gibi bir kütüphane kullanarak oluşturmalarıyla meydana gelir.

Diğer Gözlemler

Çelişkili işlemlerin canlı olması garanti edilmez. Bu gerçekten bir sorun değildir çünkü işleminizin canlı olmasını istiyorsanız, çelişkili bir işlem göndermemelisiniz.

Snowman, Ava Labs'ın lineer zincirler için Avalanche konsensüs protokolünün uygulamasının adıdır.

Eğer kararsız işlemler yoksa, Avalanche konsensüs protokolü quiesces olur. Yani, yapılacak iş yoksa hiçbir şey yapmaz. Bu, Avalanche'ı sürekli çalışmak zorunda olan İş Kanıtı (Proof-of-work) sistemlerinden daha sürdürülebilir hale getirir.

Avalanche'ın bir lideri yoktur. Herhangi bir düğüm bir işlem önerebilir ve AVAX stake eden herhangi bir düğüm her işlem üzerinde oy kullanabilir, bu da ağı daha sağlam ve merkeziyetsiz hale getirir.

Neden Önemli?

Avalanche, genel bir konsensüs motorudur. Üzerine hangi tür uygulamanın konulduğu önemli değildir. Protokol, uygulama katmanını konsensüs katmanından ayırmayı sağlar. Eğer Avalanche üzerinde bir dapp geliştiriyorsanız, yalnızca bazı şeyleri tanımlamanız gerekir, örneğin çelişkilerin nasıl tanımlandığı ve bir işlemde ne olduğu. Düğümlerin nasıl anlaşmaya vardığı konusunda endişelenmenize gerek yoktur. Konsensüs protokolü, içine bir şey koyduğunuz ve kabul edilmiş veya reddedilmiş olarak geri dönen bir kara kutudur.

Avalanche, yalnızca P2P ödeme ağları için değil, her türlü uygulama için kullanılabilir. Avalanche'ın Ana Ağı, mevcut Ethereum Dapp'leri ve geliştirici araçlarıyla geriye dönük uyumlu olan Ethereum Sanal Makinesi'nin bir örneğine sahiptir. Ethereum konsensüs protokolü, daha düşük blok gecikmesi ve daha yüksek verimlilik sağlamak için Avalanche konsensüsü ile değiştirilmiştir.

Avalanche çok performanslıdır. Bir ila iki saniye kabul gecikmesi ile binlerce işlemi işleyebilir.

Özet

Avalanche konsensüsü, dağıtık sistemlerde radikal bir atılımdır. Klasik ve Nakamoto konsensüs protokollerinden önce gelen büyük bir sıçrama temsil eder. Artık nasıl çalıştığına dair daha iyi bir anlayışa sahip olduğunuzda, Avalanche üzerinde devrim niteliğinde Dapp'ler ve finansal araçlar oluşturmak için diğer belgeleri kontrol edin.

Last updated on

On this page

Edit on Github