Smart Contract Design in Times of Congested Networks

Updated on: August 12th, 2020
This content has been Fact-Checked.
Smart Contract Design in Times of Congested Networks

Bu yazıda, Ethereum gazının ne anlama geldiğini ve son zamanlarda neden fırladığını anlayalım. Bundan sonra, Akıllı Sözleşme Tasarımı söz konusu olduğunda RSK ve EOS gibi diğer akıllı sözleşme platformlarının gaz fiyatlarıyla nasıl başa çıktığını göreceğiz.

Ethereum'un gaz sorunu var. Kulağa ne kadar komik gelse de, geliştiricilerin bu ifadeye gülmekten başka bir şey yaptıklarını garanti edebiliriz.

DeFi (merkezi olmayan finans) uygulamalarına yönelik artan talep, ana Ethereum blok zincirindeki tıkanıklığı artırdı. Bu da, ana zincirinde gaz fiyatları kadar vurdu vardır. Bitinfocharts'a göre medyan işlem ücretleri 2018'in başından beri en yüksek seviyelere ulaştı.

Akıllı sözleşme ve Ethereum Sanal Makinesi (EVM)

Akıllı sözleşmeler otomatik sözleşmelerdir. Belirli koşullar yapıldığında yürütülen kodunda yazılı belirli talimatlarla kendi kendine yürütülürler.

Akıllı sözleşmeler hakkında daha fazla bilgiyi buradan ayrıntılı kılavuzumuzda bulabilirsiniz.

Akıllı sözleşmeler, Ethereum ekosisteminde işlerin nasıl yapıldığıdır. Birisi Ethereum'da belirli bir görevi yapmak istediğinde, bir veya daha fazla kişiyle akıllı bir sözleşme başlatırlar.

Akıllı sözleşmeler, IFTTT mantığına dayalı olarak çalışan programlama dili “sağlamlık” kullanılarak yazılmış bir dizi talimattır, aka IF-THIS-THEN-THEN-THAT mantığı. Temel olarak, ilk talimat seti yapılırsa, bir sonraki işlevi yerine getirin ve bundan sonra bir sonraki işlemi gerçekleştirin ve sözleşmenin sonuna gelene kadar tekrarlamaya devam edin.

Akıllı sözleşmelerin arkasındaki temel ilke budur. Avukat gibi üçüncü taraf yerine kod tarafından denetlenen birden fazla taraf arasında bağlayıcı bir anlaşmaya sahip olmamızı sağlayan şey budur.

Ethereum Sanal Makinesi nedir?

Ethereum sanal makineleri, akıllı sözleşmeleri yürüttüğünüz ekosistemlerdir. Uygun akıllı sözleşme işlevselliği üç önemli şey gerektirir:

Deterministik.

Sonlandırılabilir.

İzole edilmiş.

Özellik #1: Deterministik

Bir program, belirli bir girişe her seferinde aynı çıktıyı verirse belirleyicidir. Örneğin. Eğer 3+1 = 4 o zaman 3+1 HER ZAMAN 4 (aynı tabanı varsayarak) olacaktır. Bu nedenle, bir program aynı çıktıyı farklı bilgisayarlardaki giriş kümesine verdiğinde, buna deterministik denir.

Özellik #2: Sonlandırılabilir

Matematiksel mantıkta “durdurma problemi” denen bir hatamız var. Temel olarak, belirli bir programın işlevini bir zaman sınırında yürütip yürütemeyeceğini bilmek için bir yetersizlik olduğunu belirtir. Bu açıkça akıllı sözleşmelerle ilgili bir sorundur, çünkü sözleşmeler, tanım gereği, belirli bir zaman sınırında fesih yeteneğine sahip olmalıdır. Akıllı sözleşmeler, bir durdurma mekanizmasını entegre edebilecekleri bir ortama ihtiyaç duyar.

Özellik #3: İzole

Bir blok zincirinde, herkes ve herkes akıllı bir sözleşme yükleyebilir. Bununla birlikte, bu nedenle, sözleşmeler bilerek ve bilmeden virüs ve hatalar içerebilir. Sözleşme izole değilse, bu tüm sistemi engelleyebilir. Bu nedenle, bir sözleşmenin tüm ekosistemi olumsuz etkilerden korumak için bir kum havuzunda izole edilmesi kritik önem taşır.

Ethereum tüm bu işlevleri EVM aracılığıyla sağlar. Basit ama güçlü bir Turing Complete 256 bit sanal makinedir.

Ethereum Gaz Nedir?

Gaz, belirli işlemleri gerçekleştirmek için gereken hesaplama çabasının miktarını ölçen bir birimdir. EVM'de çalışan tüm akıllı sözleşmeler sağlamlık kullanılarak kodlanır (Ethereum gelecekte Solidite'den Viper'a geçmeyi planlıyor.) Sağlamlık içindeki her kod satırı hesaplanmak için belirli bir miktarda gaz gerektirir.

Aşağıdaki görüntü Ethereum Yellowpage'den alınmıştır ve ne kadar özel talimatların gaz açısından maliyeti hakkında kaba bir fikir edinmek için kullanılabilir.

Görüntü Nezaketi: Ethereum Sarı Kağıt

Ethereum'da gazın nasıl çalıştığını daha iyi anlamak için bir benzetme kullanalım. Bir yolculuğa çıkacağını varsayalım. Bunu yapmadan önce şu adımları uygulayabilirsiniz:

Benzin istasyonuna gidin ve arabanızda ne kadar gaz doldurmak istediğinizi belirtin.

Arabandaki benzini doldurursun.

Benzin istasyonuna benzin için borcun olan parayı ödersin.

Şimdi Ethereum ile paralellikler çizelim.

Araba, gaz veya akıllı bir sözleşme gibi yürütmek istediğiniz işlemdir.

Gaz iyi... gaz.

Benzin istasyonu sizin madenciniz.

Onlara ödediğin para madenci ücretleri.

Kullanıcıların ethereum'da yürütmek istediği tüm işlemler aşağıdakiler için gaz sağlamalıdır:

Verileri kapsayacak şekilde içsel gaz.

Tüm hesaplamasını kapsayacak şekilde.

Şimdi çıplak temelleri ele aldığımıza göre, belki şu soruyu soruyorsunuz.

Neden bu gaz sistemimiz var?

Cevap basit... teşvik etmek.

Herhangi bir iş kanıtı eşler arası sistem gibi, Ethereum madencilerinin hashrate bağlıdır. Daha fazla madenci, daha fazla hashrate, daha güvenli ve hızlı sistem.

Sisteme daha fazla madenci çekmek için, sistemi madenciler için mümkün olduğunca karlı ve çekici hale getirmeleri gerekir. Ethereum'da, madencilerin para kazanabilmesinin iki yolu vardır:

Madencilik blokları ve blok ödülleri alarak.

Mayınlı bloklarının geçici diktatörleri haline gelerek.

İkinci noktayı keşfedelim.

Madenciler, işlemlerin bloklarının içine yerleştirilmesinden sorumludur. Bunu yapmak için, akıllı sözleşmeleri doğrulamak için hesaplama gücünü kullanmaları gerekir. Gaz sistemi, bunun için belirli bir ücret talep etmelerini sağlar.

Bu ücret madencinin ücreti olarak bilinir ve ekosistemde aktif olarak yer almak için onları teşvik etmeye yardımcı olur.

Peki, ne kadar ücret alabilirler? Hesaplamadan önce gazı nasıl ölçtüğümüzü anlayalım.

Gaz ölçümünün en küçük birimi wei'dir. Yani, bir operasyon sırasında 1 gaz ünitesi harcarsak, buna 1 wei deriz.

Ölçüm birimleri şu şekilde artar:

Görüntü Kredisi: Steemit

Daha ileri gitmeden önce Gaz Limiti kavramını bilmek önemlidir.

Gaz Limiti Nedir?

Ethereum'da bir işlem yapmak için, işlem jeneratörü (yani işlemi başlatan kişi veya akıllı sözleşme yaratıcısı) madencilere göndermeden önce bir gaz sınırı belirtmelidir. Bir gaz limiti tanımlandığında, ancak o zaman madenciler işlemi yürütmeye başlar.

Gaz limiti gönderirken, aşağıdaki noktalar dikkate alınmalıdır:

Farklı işlemler farklı gaz maliyetlerine sahip olacaktır (daha önce gösterildiği gibi).

Madenciler gaz bittiği anda infaz etmeyi bırakacaklar.

Eğer herhangi bir gaz kaldıysa, derhal operasyon jeneratörüne iade edilecektir.

Bunu varsayımsal bir senaryoda görelim.

Diyelim ki, iki sayı ekliyoruz ve bunun için sözleşmenin aşağıdaki işlemleri yapması gerekir:

10 bir değişkende depolanıyor. Diyelim ki bu operasyon 45 wei'ye mal oluyor.

İki değişken ekleyerek, bunun 10 wei gazı olduğunu varsayalım.

Yine 45 wei gazına mal olan sonucun depolanması.

Diyelim ki gaz limiti 120 wei.

Madencinin kullandığı toplam gaz (45+10+45) 100 wei'dir.

1 wei'nin 0,02 mikro ETH (100*0,02 mikro ETH) = 0.000002 ETH olduğunu varsayarsak onlara borçlu olan ücretler.

Şimdi, ne kadar benzin kaldı?

120 - 100 = 20 wei.

20 Wei operasyon jeneratörüne geri iade edilir.

Yani, bunu belirttikten sonra, birinin göz önünde bulundurması gereken iki senaryo vardır:

Gaz Limiti çok düşük.

Gaz Limiti çok yüksek.

Senaryo #1: Gaz Limiti çok düşük

Bir işlem gazı biterse, hiçbir şey olmamış gibi orijinal durumuna geri döndürülür, ancak operasyon jeneratörü hala madencilere hesaplama maliyetleri için ücret ödemelidir ve işlem blok zincirine eklenir (idam edilmemiş olsa bile).

Arabanızda yeterince benzin doldurmadıysanız, yolculuğa benzetme dönecek olursanız, hedefinize ulaşamayacaksınız, ancak o zaman bile benzin istasyonuna yakıt hakkı için para ödediniz mi?

Varsayımsal ekleme akıllı sözleşmemizde bunun nasıl çalıştığını görelim. Adım şunlardı:

10 bir değişkende depolanıyor. Diyelim ki bu operasyon 45 wei'ye mal oluyor.

İki değişken ekleyerek, bunun 10 wei gazı olduğunu varsayalım.

Yine 45 wei gazına mal olan sonucun depolanması.

Ancak, bu sefer, gaz limiti 90 wei'dir.

Sözleşmeyi yerine getirmek için gerekli olan gazın 100 wei olduğunu biliyoruz ama sadece 90 limitimiz var.

Bu senaryoda, madenci hesaplamanın 90 wei değerinde yapacak ve daha sonra 90 wei için operasyon jeneratör ücretlerini şarj edecek (90 * 0.02 mikro ETH) 0.000018 ETH.

Ayrıca, sözleşme orijinal durumuna geri döner ve blok zincirine eklenir.

Senaryo #2: Gaz Limiti çok yüksek

Peki ya gaz limitini çok yüksek ayarlarsak?

Doğru olanı yapmak mantıklı mı? Her şeyden sonra kalan her neyse, operasyon jeneratörüne iade edilir, değil mi?

Kağıt üzerinde kulağa hoş geliyor ama gerçekte pek işe yaramıyor. Ethereum'daki her bloğun genel bir gaz limitine sahip olduğunu unutmamanız gerekir. Madenciler sadece blok gaz limitine eşit veya daha az olan işlemleri ekleyebilir.

Görüntü nezaket: Hackernoon

Varsayalım ki, 42,000 gaz limiti olan bir A işlemi ve 21,000 normal limitleri olan iki işlem B ve C olduğunu varsayalım.

Bir madencinin kendi bloğuna koyması daha mantıklı olur mu?

A işlemine koyup büyük miktarda gaz iade edecekler mi?

Ya da B ve C işlemlerini koyacaklar ve geri hiçbir şey için az para iadesi yapacaklar?

İkinci nokta ekonomik olarak onlara daha mantıklı değil mi?

Şişirilmiş bir gaz limitine sahip olmanın mantıklı bir yolu olmamasının nedeni tam da budur.

Yüksek ve Düşük Gaz ile Yüksek ve Düşük Ücret

Şu ana kadar gaz ve eterin aynı şey olmadığı belli olmalı. Eter bir gaz için ödemek zorundadır FEES aka fiyat iken Gaz gerekli hesaplama gücü miktarıdır.

Şimdi şimdiye kadar elde ettiğimiz her şeyin bilgisiyle, bazı gaz ve ücretler senaryolarından geçelim.

Eğer bir operasyonda DÜŞÜK gaz varsa, madenciler bile almazlar çünkü hesaplamayı bitirmek için yeterli gazı yoktur.

Eğer bir operasyonda DÜŞÜK ücretler varsa, o zaman bunu karşılamak için yeterli gazı olabilir, ancak yine de madenciler bunu almak için bitleri karıştırmayacaktır, çünkü düşük ücretli bir operasyon onlar için ekonomik olarak uygun değildir.

Bir operasyonda YÜKSEK gaz varsa, operasyonun yüksek bir gaz limiti ile şiştiği ve dolayısıyla madencilerin onu almayacağı anlamına gelir.

Bir operasyonun YÜKSEK ücretleri varsa, madenciler çok para kazanacaklarını ve anında alacaklarını bilirler.

Etgasstation göre farklı işlem ücretleri için önerilen gaz fiyatları şunlardır:

Yükselen Ethereum Gaz Fiyatları

Ethereum blok zinciri son zamanlarda artan kullanım gördü. Bunun nedeni, daha karmaşık akıllı sözleşmelerin kullanımındaki artıştır.

Ethereum benzin istasyonuna göre, USDT ve Uniswap gibi merkezi olmayan borsalar gibi istikrarlı paralar, uzayda daha fazla gaz aç akıllı sözleşmelerdir. Bu artan kullanım, kullanıcıların işlemlerinin daha hızlı işlenmesini sağlamak için daha yüksek ücretler ödemelerini ister. Bu nedenle, çok sayıda faaliyet olduğunda, ücret oranları hızla yukarı doğru ilerleyebilir.

Durumun ne kadar sert olduğunu anlamak için bunu göz önünde bulundurun. Madeni Para Metriklerine göre, bir noktada, işlem başına ortalama maliyet, 2020'nin başında yaklaşık 8 sentten 7 günlük bir ortalamaya ulaştı. Digital Assets Data'nın Connor Abendschein notları:

“Şu andan itibaren, yüksek gaz ücretleri küçük oyuncuların DeFi'nin Synthetix gibi en ilginç protokollerine katılmalarını engelliyor.”

Bu mutlak bir utançtır, çünkü Ethereum ve DeFi açık ve kolay erişilebilir küresel bir finansal sistem inşa etmektir.

Daha da kötüsü, bu sorunun daha karmaşık DeFi protokolleri ve kullanıcılar ekosisteme girdikçe daha da kötüye gitmesidir.

Peki, Ethereum'un rakipleri gaz sorunuyla nasıl başa çıkıyorlar? Bir göz atalım..

EOS Akıllı Sözleşme Tasarımı: Mülkiyet Modeli

Ethereum gaz sistemi kiralık bir model olarak düşünülebiliyor. Ethereum, uygulamanızı oluşturmak ve çalıştırmak için kaynak (gaz) kiraladığınız küresel bir süper bilgisayardır.

Öte yandan EOS, bir sahiplik modeli kullanıyor. EOS, merkezi olmayan bir süper bilgisayar olmak yerine, Dapp geliştiricilerinin çeşitli Dapps oluşturmak ve kodlamak için kullanabileceği merkezi olmayan bir işletim sistemi olmayı planlıyor. EOS belirteçleri bir geçiş ücreti standı olarak işlev görür ve bunları tutmak, Bant Genişliği, Hesaplama ve RAM gibi çeşitli kaynaklara erişmenizi sağlar.

Bu kaynaklar az olduğu için EOS, belirteçlerini çok uzun süre tutmanızı istemiyor. EOS, Block.one arkasındaki şirket, platform anayasasında, üç yıl boyunca belirteçlerini kullanmayan EOS üyelerinin hesaplarının sonlandırılacağını açıkça belirtti.

EOS belirteçlerini yığınlayarak ve kilitleyerek, karşılığında ağ ve CPU bant genişliğinde eşdeğer miktarda kaynak sağlanır. Ancak, RAM kıt bir kaynak olduğundan, kazıklayarak otomatik olarak almazsınız. Bu nedenle, bunları elde etmek için, doğrudan RAM pazarından satın almanız gerekecektir.

Birisi her RAM satın aldığında veya sattığı zaman, hem alıcının tarafına hem de satıcının tarafına (toplam%1) %0.5 ücret uygulanır. Bu aslında kullanıcılara RAM'lerini satmak için ekonomik bir teşvik verir ve toplanan ücretler derhal yakıldıkça spekülatif pazarlama ve enflasyon cesaretini kırmaktadır (ekosistemden kaldırılır).

Bu dahili RAM pazarı, sabit bir RAM kullanılabilirliği olduğundan ve gelecekte tahmin edilen sıkıntıların dengelendiğinden emin olacaktır. Sistemin şu anda mevcut RAM kaynağına göre ayarladığı fiyata göre RAM satın alabileceksiniz.

Bu kaynakları satın alarak ve kullanarak, geliştiriciler daha sonra merkezi olmayan uygulamalar oluşturabilir.

EOS Geliştirme Maliyetleri

Ethereum'un aksine, EOS'ta gaz fiyatları ödemeniz gerekmez. Akıllı sözleşmeniz için Bant Genişliği, CPU ve depolama alanı almak için EOS belirteçlerinizi bahis tutmanız gerekir. Tüm bunlarla birlikte, yine de RAM'e ihtiyacınız olacak. RAM nadir bir kaynak olduğundan, dahili bir RAM pazarından satın almanız gerekir. EOS kaynak planlayıcısına göre, RAM'in maliyeti KiB başına 0,154 ABD doları

Yani, tüm bu bilgileri göz önünde bulundurarak, bir uygulamayı çalıştırmak için ne kadar EOS'un kazık atmanız gerektiğini görelim. 1000 kullanıcı için bir uygulama yapacağımızı varsayalım. Aşağıdaki metrikleri göz önünde bulundurmanız gerekir:

Her kullanıcı hesabı için ödeme yapın.

Onların depolama için ödeme yapmanız gerekecek

Ayrıca ihtiyacınız olacak ağ bant genişliği ve CPU bant genişliğini de hesaba katmanız gerekecektir.

RSK - Bitcoin ve Ethereum Arasındaki Köprü - Akıllı Sözleşme Tasarımı

Rootstock (RSK), yan zincir teknolojisi aracılığıyla Bitcoin blok zincirine bağlı akıllı bir sözleşme platformudur. Rootstock, Ethereum'un uygulamaları (web3/EVM/Solidity modeli) ve bitcoin ile uyumlu olmak için doğmuştur. RSK'nın yaratılmasının arkasındaki fikir, Bitcoin blok zincirine akıllı sözleşme işlevlerini vermekti. Özünde, Rootstock aşağıdakilerin bir kombinasyonudur:

Ethereum'un EVM'si ile uyumlu bir Turing komple kaynak hesaplı deterministik sanal makine (akıllı sözleşmeler için).

Güçlü bir federasyona dayanan iki yönlü bir Bitcoin yan zinciri (BTC cinsinden ticaret için)

30 saniyelik blok aralığına sahip SHA256D birleştirme madenciliği konsensüs protokolü (Bitcoin madencilerine güvenerek uzlaşma güvenliği için). (hızlı ödemeler için).

RSK, doğrudan Ethereum blok zincirine bağlanan simge köprüleri oluşturmanıza olanak tanır. Bu, sözleşme yaratıcısının her iki blok zincirin avantajlarından yararlanmasına izin verir, ancak ikisi arasında gelişen, birlikte çalışabilir bir ekosistemin oluşturulmasına da izin verir.

Peki, bu benzin fiyatlarına nasıl çevriliyor? RSK, gaz maliyetleri söz konusu olduğunda Ethereum'dan tarihsel olarak daha ucuz olmuştur.

Yukarıdaki mavi çizgi Ethereum'un gaz fiyatıdır, aşağıdaki yeşil hat ise RSK'nın gaz fiyatıdır. Ethereum'a kıyasla RSK'nin ne kadar verimli olduğu konusunda daha fazla açıklığa ihtiyaç duyarsanız, şunu kontrol edin:

İşte ortalama. Ethereum ve RSK'nın son on gün içinde işlem ücretleri karşılaştırması. Yani, bunun anlamı sadece RSK'nın daha ucuz olması değil, aynı zamanda Bitcoin blok zincirinin genel güvenliğini de getiriyor ve hem Ethereum hem de EOS'a göre belirgin bir avantaj sağlıyor.

Sonuç

DeFi inovasyonunun yepyeni bir dönemine girdiğimizde geliştiricilerin uygulamalarını verimli bir şekilde geliştirebilecekleri bir platforma ihtiyacı olacak. Kimse Ethereum'un bir ilk taşıyıcı olduğunu inkar etmese de, RSK gibi diğer platformlar kesinlikle geleceğin potansiyel ağır vurucuları olarak güçlü vakalar oluşturmuştur. Akıllı sözleşmelerin ve her türlü fungible belirteçlerin ve fungible olmayan belirteçlerin geliştirilmesinin RSK'da sorunsuz bir süreç olduğu gerçeğini göz önüne alırsak, geliştiricilerin bu akıllı sözleşme platformunu test etmek için büyük teşvikler vardır.

Rajarshi Mitra
Rajarshi started writing in the blockchain space after listening to Andreas Antonopoulos’ podcast with Joe Rogan. A content generating machine, Rajarshi has been consistently producing high-quality guides and articles for us since late 2016. His articles have been shared extensively in social media and several start-ups have used his guide as learning material for their staff. He is continuously invited all over his country to give talks in various crypto seminars and conferences. He has gained a solid reputation as a speaker/educator on top of being one of the most promising writers in the crypto space. When he is not busy nerding out over the latest in the blockchain/crypto space, he is usually busy watching re-runs of top gear and MMA.

Like what you read? Give us one like or share it to your friends and get +16

1,102
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In