Ante bir Ethereum akıllı sözleşme test protokolüdür. Herkes, bir hedef protokolün değişmezlerinin geçerliliğini doğrulayan canlı, zincir üzerinde testler olan Ante Testlerini oluşturmak ve çalıştırmak için Ante’yi kullanabilir. DeFi protokolü programcıları ve proje destekçileri (kullanıcılar veya yatırımcılar gibi), bu testlerle eşleşen Ante Havuzlarına stake ederek protokolün istikrarına olan inançlarını gösterebilir. Güvenlik uzmanları, ilgili Ante Havuzlarına meydan okuyarak ve Ante Testinin durumunu onaylayarak, kusurlu Ante Testlerini veya ihlal edilen değişmezleri tespit ederek para kazanabilirler. Bir Ante Havuzuna yatırılan para, Ante Testinin bir başarısızlığı doğrulaması durumunda havuza meydan okuyanlara orantılı olarak dağıtılır, ayrıca testi başlatan meydan okuyucuya bir bonus verilir.
Toplam bahis sermayesi miktarı ve bunun meydan okuma sermayesiyle ilişkisi, bir protokolün algılanan istikrarını gösterir çünkü bahis parası, testlerin başarısız olması durumunda kayba karşı savunmasızdır. Bu, kullanıcıların karşılaştırılabilir protokollerin arkasına yatırılan sermaye miktarını değerlendirmesine olanak tanıyarak DeFi protokollerinin güvenilir olup olmadığı konusunda onlara ekstra bir sinyal sağlar. Kullanıcılar ayrıca protokollerin etik bir şekilde geliştirilip geliştirilmediğini ve güvenli akıllı sözleşme sistemlerine standart zincir dışı statik testlerin ötesinde ekstra bir güvenlik katmanı sunan canlı testler uygulayıp uygulamadığını da doğrulayabilir. Ante, DeFi protokol geliştiricilerinin protokollerinde güvenilirlik ve güven tesis etme sürecini kolaylaştırır.
Ante Protokol Sistem Tasarımı
Ante Protokolü sayesinde Ethereum’daki protokoller, sözleşme durumunun programlı olarak doğrulanmış özelliklerinin veya zincir içi değişmezler olarak bilinen özelliklerin arkasına “oyunda deri” yerleştirerek kodlarına olan güvenlerini gösterebilirler. Bu bölümün geri kalanı, aşağıda kısaca açıklanan mekanizmanın tam bir tanımına ayrılmıştır. Ante’yi belirli bir protokolde kullanmak için, geliştiricilerin bir akıllı sözleşmede AnteTest arayüzünü kullanarak bir değişmezi kodlamaları gerekir. Bu akıllı sözleşme, değişmezin hala geçerli olup olmadığını görmek için zincir üzerinde kontrol yapan bir fonksiyona sahip olmalıdır. Ardından, AntePoolFactory ve IAnteTest arayüzünü kullanarak, bu Ante Testi için bir Ante Havuzu örneği oluştururlar.
Herhangi bir meydan okuyucu, Ante Testinin hala geçip geçmediğini görmek için herhangi bir anda zincir üzerinde kontrol edebilir. Stakerlara ait fonlar dondurulur ve böyle bir kontrolün başarısız olması durumunda meydan okuyanlara ve test doğrulayıcısına verilir. Bu arada, meydan okuyanlar Ante Havuzunu kullanarak stakerları sürekli olarak bozulma için ödüllendirir.
Ante testleri ve zincir üstü değişmezler. Zincir üstü değişmezler ya da Ethereum’un o anki durumundaki herhangi bir veriye atıfta bulunabilen boolean ifadeler, ante testleri tarafından test edilir. Bu ifadenin Ante Testleri tarafından arayüzlerinin checkTestPasses() işlevinde uygulanması gerekir. Ante Testlerinin, genellikle tek bir protokolden akıllı sözleşmelere uygulansa bile, birkaç farklı akıllı sözleşmeden veri kullanmasına izin verilir.
Ante Havuzlarını kullanarak stake edin, test edin ve onaylayın. Geliştiriciler bir Ante Testini, başlatıldıktan sonra kullanıcıların testi stake etmesini, test etmesini ya da doğrulamasını sağlayan bir akıllı sözleşme olan Ante Pool ile birleştirebilir. Her bir prosedürün üzerinden tek tek geçiyoruz.
Stake etme: Bir Ante Testini stake etmek ve geçmeye devam edeceğine dair inançlarını iletmek için, stake edenlerin Ante Havuzuna ETH yatırması gerekir. Meydan okuyanlardan gelen çürüme ödüllerini orantılı olarak bölerek, kazananlar blok blok verim alırlar; ancak, Ante Testi doğrulanmazsa, kazananlar depozitolarını kaybederler.
Meydan Okuma: Bir Ante Testine meydan okumak ve sonunda başarısız olacağına inandıklarını belirtmek için, meydan okuyanlar Ante Havuzuna Ethereum koymalıdır. AnteTest’in zincir üzerindeki doğrulamasının herhangi bir noktada başarısız olması durumunda, meydan okuyanlar depozitolarını geri alacak ve stakerların depozitoları, doğrulayıcı için %5’lik bir ödül düşülerek bölünecektir. Stakerların bozunma ödülünü karşılamak için, meydan okuyanların depozitoları blok başına 100 gwei/ETH veya yıllık yaklaşık %20 oranında azalır.
Doğrulama: checkTestPasses() yöntemini kullanarak, en az 12 blok boyunca para yatırmış olan bir meydan okuyucu, Ante Testinin mevcut zincir içi durum için geçtiğini doğrulayabilir. Fonksiyonun değeri true olarak dönerse hiçbir şey olmaz, yani test başarılıdır. Doğrulayıcı, işlevin yanlış dönmesi, yani testin başarısız olması durumunda, stake sahiplerinin yatırdıkları tutarın %5’i kadar bir ödül alır. Kalan staker depozitoları her bir challenger’a orantılı olarak dağıtılır.
Uygulama detayları. Aşağıda Ante’nin tam uygulaması üzerinde etkisi olan birkaç teknik husus ana hatlarıyla açıklanacak ve netleştirilecektir.
Para çekme ve yatırma işlemleri için bekleme süreleri: Challenger’lar, bir doğrulamanın önüne geçmek ve bir Ante Testinin başarısız olmasına neden olmak için para yatırmalarını caydırmak amacıyla, mevduatları en az 12 blok boyunca bir Ante Havuzunda kalana kadar ödeme almaya uygun değildir. Ethereum’da bu aralık yaklaşık kesinlik eşiği olarak seçilmiştir.
Staker’ların, zincir dışında bilinen ancak henüz ilgili Ante Testinin zincir üzerinde başarısız olmasıyla sonuçlanmayan bir istismara tepki olarak para çekebilmeleri için 6000 blok ya da yaklaşık bir gün beklemeleri gerekmektedir. Bu zaman dilimi, doğrulayıcılara, stakerlar tarafından fon çekilmeden önce bir Ante Testini onaylamaları için yeterli zaman vermek üzere seçilmiştir.
Ante Testi Geri Dönüşleri: İlgili Ante Testinin başarısızlıkları checkTestPasses() yönteminin tersine çevrilmesi olarak yorumlanır. Bu nedenle paydaşlar, bahis oynadıkları her testin düzgün bir şekilde gerçekleştirilebildiğinden emin olmalıdır.
Yükseltilebilirliğe sahip sözleşmeler: Ante Testler değiştirilemez. Bu nedenle, checkTestPasses() işlevi geri dönecek ve Ante Testinin referans aldığı bir sözleşme uyumsuz bir şekilde yükseltilirse Ante Testi her zaman başarısız olacaktır. Ante kullanan projelerin ya yükseltilmemiş Ante Testindeki tüm paydaşlar için zincir dışı bir geçiş ayarlaması ya da uyumlu bir şekilde yükseltme yapması önerilir.