Halk için Akıllı Sözleşmeler

This page is machine-translated.
Alex Chepurnoy

19 Ekim 2018

Son günlerde blockchain ile ilgili birçok haber, bir banka X veya bir şirket Y‘nin "maliyetleri azaltmak" için bir "blockchain" kullanacağını söylüyor. Temelde bu, büyük bankacıların her yerden değer çıkarmak için daha verimli bir araç olarak başka bir moda kelimeyi değerlendirdiği ve aynı zamanda iş pozisyonlarını keserek tasarruf etmeyi amaçladığı anlamına geliyor.

"Satoshi'nin vizyonu" hakkında bir şey söylemekten kaçınırken (onun göçünden sonra orada kazılacak hiçbir şey yok), erken yıllarda çevrimiçi forum kullanıcıları arasında tanık olduğum geniş bir görüş, bir kripto paranın, küçük işletmelerinin arkasındaki sıradan insanları zenginleştirmek için araçlar sağlaması gerektiğidir; bu insanlar, büyük finansal sermayeden çok daha fazlasını sağlamadan geçimlerini sağlıyorlar. Bir kripto paranın araçları, orijinal geniş topluluk vizyonu gözünde, insanların ekonomik faaliyetlerini iş büyüklüğüne, coğrafi konuma, büyük oyuncular tarafından belirlenen faiz oranlarına vb. bağımsız olarak gerçekleştirmelerine olanak tanımalıdır. Araçlar, insanların yargı farklılıklarına, geleneklere, izlenen iş uygulamalarına vb. bağımsız olarak sözleşmeler yapmalarına olanak tanımalıdır (kağıt sözleşmeler değil, dijital, kendiliğinden uygulanan ve makul derecede akıllı sözleşmeler).

Umarım Ergo burada faydalı olur. Küresel ölçekte sağlıklı ve sürdürülebilir zenginlik büyümesi için binlerce küçük kooperatif ve bireysel girişimci, karlarını offshore cennetlerde gizleyen birkaç şirketten daha önemlidir.

Örnek olarak, finansal yardım sağlamak isteyen bir kooperatif federasyonunu (örneğin, Radical Routes) düşünelim; bu federasyon, binlerce kilometre uzaktaki bir girişimciye (örneğin, Rojava'da) yardım etmek istiyor.

Şimdi bazı detayları varsaymalıyız. İlk olarak, ağda dört kooperatif olduğunu varsayalım. Bunlar, bir sözleşmede 10,000 Erg (eşit parçalara, yani her biri 2,500 Erg) kilitliyor ve bu sözleşme şu şekilde ifade ediliyor:

  1. Kooperatifler, pubkeyA, pubkeyB, pubkeyC, pubkeyD ile ilişkili kamu anahtarlarıdır. Girişimci, bir kamu anahtarı businessKey ile ilişkilidir.
  2. Kooperatifler, bir fonlama sözleşmesiyle korunan bir madeni paraya para kilitliyor, ardından girişimciyi finanse edip etmeme konusunda gerekli incelemeyi yapıyor ve oylama yapıyor. Eğer 4 oydan 3’ü bu yöndeyse, tüm sözleşme fonu (10,000 Erg) girişimciye gidecektir. Teknik olarak, oylama, 3’te 4 eşik imzası ile yapılır. Eğer oylama başarılı olmazsa (4’te 3 imza toplanmazsa) ve blok numarası 1,000’den önce, herhangi bir kooperatif (aslında, herkes) bir çekim işlemi sunabilir; bu işlem her kooperatife en az 2,500 Erg iade eder. Ayrıca, fonlama sözleşmesi oylama sözleşmesi olarak da adlandırılacaktır.
  3. Yatırımlar, bazı katı sınırlamalarla üç hedefe harcanabilir. Yani, girişimci en az 5,000 Erg’yi ekipmana, en az 2,000 Erg’yi gerekli bir binanın inşasına harcamalıdır; girişimcinin diğer fonları keyfi olarak harcayabilir.
  4. Ekipman paralarının ekipmana harcanacağından emin olmak için, kooperatif federasyonu girişimcinin bulunduğu alandaki tanınmış ekipman satıcılarının kamu anahtarlarını kullanmaktadır. Örneğin, alanda pubkeyTool1, pubkeyTool2, pubkeyTool3, pubkeyTool4 ile ilişkili ekipman satıcıları olduğunu varsayalım. Teknik olarak, transfer, bir ekipman satıcısının kolektif imzası olarak düzenlenir (böylece ekipman satıcıları halkasından ve girişimcinin imzasından oluşan halka imzası)
  5. Benzer şekilde, kooperatif federasyonunun tanıdığı 3 inşaatçı olduğunu varsayalım; bunlar pubkeyConstr1, pubkeyConstr2 ve pubkeyConstr3 ile ilişkili kamu anahtarlarıdır.
  6. Oylama sözleşmesine benzer şekilde, eğer ekipman ve inşaat sözleşmeleri blok numarası 5000’den önce eş imzalanmazsa, federasyon kooperatifleri fonları çekebilir.

Ergo'da sözleşmeleri tanımlamanın farklı yolları vardır. Düşük seviyeli dilde bir betik, bir madeni paranın buna göre harcanıp harcanamayacağına dair (tekil) mantıksal bir koşulu tanımlar ve ayrıca bir harcama işlemi tarafından sağlanan bir harcama kanıtı içerir. İçsel olarak, koşul, bir türlendirilmiş sözdizim ağacı olarak temsil edilir; bu nedenle adı. Yapı, önceden maliyet analizi yapmamıza vb. olanak tanır. ErgoScript adı verilen daha yüksek seviyeli bir dil, daha geleneksel ve okunabilir bir tanım yapmamıza, değişkenler kullanmamıza ve mantığı alt rutinlere ayırmamıza olanak tanır.

Yukarıda (1-3) tanımlanan ana sözleşmeyle başlayalım:

{
 val votingSuccess  = atLeast(3, Array(pubkeyA, pubkeyB, pubkeyC, pubkeyD))
 val properSpending = OUTPUTS(0).value >= 5000L &&
                      blake2b256(OUTPUTS(0).propositionBytes) == spendingContract1Hash &&
                      OUTPUTS(1).value >= 2000L &&
                      blake2b256(OUTPUTS(1).propositionBytes) == spendingContract2Hash

 val withdrawCondition = HEIGHT >= 1000L &&
                         OUTPUTS(0).value >= 2500L && OUTPUTS(0).propositionBytes == pubkeyA.propBytes &&
                         OUTPUTS(1).value >= 2500L && OUTPUTS(1).propositionBytes == pubkeyB.propBytes &&
                         OUTPUTS(2).value >= 2500L && OUTPUTS(2).propositionBytes == pubkeyC.propBytes &&
                         OUTPUTS(3).value >= 2500L && OUTPUTS(3).propositionBytes == pubkeyD.propBytes 

 (votingSuccess && properSpending) || withdrawCondition
}

Bu ErgoScript içindeki betik, değişkenler için somut değerlerle bağlanarak ( pubkeyA, pubkeyB, pubkeyC, pubkeyD, spendingContract1Hash, spendingContract2Hash ) bir sözdizim ağacına derlenecektir (bu, blok zincirine serileştirilmiş bir biçimde yazılacaktır). spendingContract1Hash, aşağıda sağlanacak olan (serileştirilmiş) ekipman harcama betiğinin bir hash’idir; spendingContract2Hash, inşaat harcama betiğinin bir hash’idir.

Ekipman harcama betiği aşağıdadır:

{
 val spendingSuccess = (pubkeyTool1 || pubkeyTool2 || pubkeyTool3 || pubkeyTool4) && businessKey

 val withdrawCondition = HEIGHT > 5000L &&
                         OUTPUTS(0).value >= 1250L && OUTPUTS(0).propositionBytes == pubkeyA.propBytes &&
                         OUTPUTS(1).value >= 1250L && OUTPUTS(1).propositionBytes == pubkeyB.propBytes &&
                         OUTPUTS(2).value >= 1250L && OUTPUTS(2).propositionBytes == pubkeyC.propBytes &&
                         OUTPUTS(3).value >= 1250L && OUTPUTS(3).propositionBytes == pubkeyD.propBytes 

 spendingSuccess || withdrawCondition
}

Ve inşaat betiği:

{
 val spendingSuccess = (pubkeyConstr1 || pubkeyConstr2 || pubkeyConstr3) && businessKey

 val withdrawCondition = HEIGHT > 5000L &&
                         OUTPUTS(0).value >= 500L && OUTPUTS(0).propositionBytes == pubkeyA.propBytes &&
                         OUTPUTS(1).value >= 500L && OUTPUTS(1).propositionBytes == pubkeyB.propBytes &&
                         OUTPUTS(2).value >= 500L && OUTPUTS(2).propositionBytes == pubkeyC.propBytes &&
                         OUTPUTS(3).value >= 500L && OUTPUTS(3).propositionBytes == pubkeyD.propBytes 

 spendingSuccess || withdrawCondition
}

Şimdi kooperatif federasyonunun oylama sözleşmesiyle korunan bir madeni para oluşturduğunu varsayalım. Aşağıda girişimcinin işini nasıl yapabileceği açıklanmaktadır:

  1. Madeni parayı tüketen ve en az üç madeni para oluşturan bir işlem oluşturun; biri ekipman harcama sözleşmesi ile, diğeri inşaat harcama sözleşmesi ile, üçüncüsü girişimcinin kamu anahtarı ile korunan bir madeni para oluşturmaktadır.
  2. İşlemi kooperatiflere gönderin, eşik imzalı girdinin blok zincirinde yayınlanmasını bekleyin.
  3. Bir ekipman satıcısıyla bir sözleşme düşünün, bir harcama işlemini eş imzalayın.
  4. Bir inşaatçıyla bir sözleşme düşünün, bir harcama işlemini eş imzalayın.

Girişimci, herhangi bir iş yapmadan kolayca kaçabilir, ancak en fazla 3,000 Erg ile. Bu düzeltilebilir; örneğin, bu para yalnızca blok numarası 5,000’den sonra harcanabilir hale getirilebilir ve bu süre zarfında kooperatifler tarafından çekilebilir. Ekipman ve inşaat harcamaları için girişimci, bazı, muhtemelen zaten saygın, işletmelerle çalışmaktadır. Böylece yatırımcı risklerini azaltmaktadır.

Kod ve örnek işlemleri çevrimiçi bulabilirsiniz. Lütfen daha karmaşık imza şemaları, çok aşamalı sözleşmeler (Bitcoin'deki MAST gibi, ancak döngülere izin veren, yürütme yollarını açığa çıkaran), oracle'lar, kitle fonlaması vb. ile ilgili daha fazla örneğimiz olduğunu unutmayın. Lütfen örnekler deposunu kontrol edin.

Share post

Ergo Altyapı DAO: Ergo Ekosisteminin Omurgasını Merkeziyetsizleştirmek

Ergo Altyapı DAO: Ergo Ekosisteminin Omurgasını Merkeziyetsizleştirmek

Ergo’nun misyonu her zaman merkeziyetsizlikte kök salmıştır, sadece konsensüs katmanında değil, tüm yığın boyunca.

Ergo Platform

13 Ağustos 2025

Mew Finance: Ergo Ekosistemi için Eğlenceli Bir DeFi Araç Seti

Mew Finance: Ergo Ekosistemi için Eğlenceli Bir DeFi Araç Seti

Mew Finance, Ergo Blockchain üzerinde merkeziyetsiz bir uygulama setidir.

Ergo Platform

12 Ağustos 2025

Lithos: Madenciliği On-Chain Havuzlarla Merkeziyetsizleştirmek

Lithos: Madenciliği On-Chain Havuzlarla Merkeziyetsizleştirmek

Lithos, madencilik havuzlarının nasıl çalıştığını köklü bir şekilde değiştirmek için tasarlanmış yeni bir protokoldür; havuzları o.

Ergo Platform

24 Temmuz 2025

Sigma 6.0: Daha Akıllı, Daha Esnek Ergo

Sigma 6.0: Daha Akıllı, Daha Esnek Ergo

Sigma 6.0 Ergo blockchain için önerilen büyük bir güncellemedir.

Ergo Platform

23 Temmuz 2025

Rosen'ın Geleceğini Şekillendirmek: Beş Ana Hazine Teklifi Üzerine Topluluk Çağrısı

Rosen'ın Geleceğini Şekillendirmek: Beş Ana Hazine Teklifi Üzerine Topluluk Çağrısı

Rosen kurucu ortağı Armeanio, Rosen Hazine'sine beş yeni teklif sunmuştur.

Ergo Platform

9 Temmuz 2025

Ergo'nun Genişletilmiş UTXO'su ve Yapay Ekonomik Zekanın Yükselişi

Ergo'nun Genişletilmiş UTXO'su ve Yapay Ekonomik Zekanın Yükselişi

Otonom Ekonomik Ajanlar için Pratik Bir Vizyon Otonom ekonomik ajanlar, Ergo blok zincirinde gerçek bir dijital ekonomide faydalı.

Ergo Platform

12 Mayıs 2025

ErgoHACK X: Ergo Blok Zincirinde Yapay Zeka

ErgoHACK X: Ergo Blok Zincirinde Yapay Zeka

Dağıtık İnovasyonun Onuncu Yılı yıl dönümü ErgoHACK'e katılın ve Ergo blok zincirindeki AI devriminin ön saflarında yer alın! Yara.

Ergo Platform

10 Nisan 2025