Zoe “Ellerinizin Boş Kalmamasını” Nasıl Sağlıyor?

Onur Sarayli
4 min readJun 26, 2021

--

Zoe, akıllı sözleşmeler oluşturmak ve bunlarla etkileşim kurmak için yenilikçi, çok daha güvenli bir yaklaşım sağlayan yeni platformumuzdur. Başka bir yerde Zoe’de “güvenlik teklifi” hakkında konuşuyoruz: ödeme sırasında, bir sözleşmenin müşterisinin ya istediğini alacağı ya da geri ödeme alacağı güvencesi. Burada, Zoe’nin başka bir özelliği olan “ödeme canlılığı”nı (erken sunumlarda “çıkış güvenliği” olarak da anılır) inceleyeceğim; burada sistem, diğer müşterilerin veya diğer müşterilerin yanlış davranışlarından bağımsız olarak bir ödemenin gerçekleşmesini sağlar. sözleşmenin kendisi.

Teklif çıktıktan sonra Zoe bir teklif ödeyecek . Her biri rollerine göre farklı şekillerde bir çıkışı tetikleyen üç katılımcı vardır:

  • Sözleşme Out istiyor : sözleşme memnun veya teklifi reddetti.
  • Müşteri Çıkmak İstiyor : Teklifi gönderen müşteri çıkmak istiyor.
  • Sistem Hatası : Sistem , örneğin bir hata nedeniyle hedef sözleşmesini sona erer.

Ödeme canlılığı güvencesi, bir teklifin çıkışı tetiklendiğinde, Zoe’nin o noktada sözleşme kodu ne yaparsa yapsın o teklifin ödemesinin derhal yapılmasını sağlamasıdır. Bir sözleşmenin hiçbir yanlış davranışı, çökmesi vb., sözleşme katılımcılarına ödeme yapılmasını engelleyemez.

Sözleşme İstiyor

Bir tekliften çıkmak için en basit senaryo, sözleşmenin onu tetiklemesidir: sözleşme, her zaman ve herhangi bir nedenle, herhangi bir teklifin sözleşmeden çıkışını tetikleyebilir. Örneğin, bir açık artırma, satıcının ve en yüksek teklifi verenin tekliflerini doğrudan tatmin edebilir ve diğer tüm teklifleri iade edebilir. Bunu başarmak için, en yüksek teklifi verenden (yeniden tahsis kullanarak) malları ve uygun fonları takas eder ve ardından tüm tekliflerin çıkışını tetikler. Zoe daha sonra ödemelerin (kazançlar ve geri ödemeler) iletilmesini sağlayacaktır.

Zoe ödemenin canlı kalmasını sağlar: sözleşme bir teklifin çıkışını tetiklediğinde, Zoe teklifin varlıklarının daha fazla yeniden tahsisine izin vermeyecek ve sözleşme kodunun gelecekteki herhangi bir davranışından bağımsız olarak teklif ödenecektir. Zoe teklifin varlıklarının yalnızca teklifin kısıtlamalarıyla tutarlı olarak yeniden tahsis edilmesine izin verdiğinden, teklif ödemesi mutlaka teklif güvenliğini koruyacaktır.

Müşteri Çıkmak İstiyor

Bir müşterinin bir tekliften çıkma isteğinin daha fazla seçeneği vardır. Her teklif, müşterinin tekliften çıkabileceği koşulları içerir. Bir teklifte bulunan bir müşteri, dahil edilen şartlara tabi olarak bu tekliften çıkma yetkisini alır. Geniş bir kullanım senaryosu yelpazesini destekleyen, başlangıçta desteklenen üç vaka vardır:

  • onDemand: Müşteri dilediği zaman tekliften çıkabilir.
  • afterDeadline: Teklif, bir son tarihten sonra otomatik olarak çıkar.
  • feragat edildi: Müşteri tekliften çıkamaz.

İsteğe Bağlı Durum

Gelen OnDemand o çıkıldı Bu bir teklif isteklerini yapılan istemci, bu istek gider durumda, doğrudan Zoe sözleşme altyapısı ve hiç değil sözleşme koduna. Zoe altyapısı, istek üzerine derhal harekete geçer ve sözleşme kodu, bunun yürütülmesini asla engelleyemez.

Müşterinin çıkış talebinin sözleşmenin normal seyri ile yarıştığını belirtmek önemlidir. Örnek bir müzayedede, teklif sahibi, tokmak aşağı inerken teklifini geri çekmeye çalışabilir. Yukarıda belirtildiği gibi, Zoe yalnızca teklifin kısıtlamalarıyla tutarlı olarak teklifin varlıklarının yeniden tahsisine izin verir, bu nedenle teklif ödemesi ya tam bir geri ödemeyi veya başarılı yeniden tahsisten kaynaklanan kazançları içerecektir.

Son Teslim Tarihi Vakası

AfterDeadline durumda, bir istemci ilişkili varlıklar tarihine kadar işlenen edildiği bir teklif yapabilir. Örneğin, bir satıcı gelecek Perşembe günü sona erme tarihi olan bir teminatlı alım opsiyonu (gelecekteki bir zamandan önce sabit bir fiyattan dayanak bir varlık satın alma hakkı) yapmak isterse, Zoe bu varlıkları gelecek Perşembeye kadar güvenilir bir şekilde kilitlemelidir — ancak gelecek Perşembe gününden sonra, kapalı arama fiilen uygulanmadığı sürece satıcı onları geri alır.

Benzer şekilde, bir açık artırma, satıcıların açık artırmalarını en az bir gün boyunca listelemeye istekli olmalarını gerektirebilir. Bu durumda, müzayededeki satıcılar bir günlük süre ile teklif vereceklerdir. Bu gibi durumlarda, sözleşmenin kendisi, yalnızca belirli bir tarihten sonra son teslim tarihi olan teklifleri kabul ettiğini belirtebilir ve süresi çok erken dolan tekliflerin çıkışını (ve dolayısıyla iadesini) otomatik olarak tetikleyebilir.

Zaman Referansları

Son teslim tarihlerini belirlemede çok önemli bir soru, “zaman kime göre?”dir. Zoe teslim tarihleri ​​her zaman bir zaman referansına göredir. Greenwich Ortalama Saati’ne göre bu gece yarısı olmak zorunda değil. Referans blok yüksekliği olabilir veya Uzun Şimdinin Saati’ndeki zaman olabilir; özel referans, sözleşmenin ve sözleşmedeki katılımcıların anladığı ve üzerinde anlaştıkları bir referans olduğu sürece önemli değildir. Açıklayıcı bir örnek, bir zincirdeki bir sözleşmenin farklı bir zincirin blok yüksekliğini zaman referansı olarak kullanabilmesidir (örneğin, işlem gören varlıklar o diğer zincirden geldiği için).

Etkinlikler

Şu anda desteklenmese de, bu durum olaylar üzerine çıkışı desteklemeye genelleşir. Örneğin, uygun olay referansı, bir jetonun fiyatı belirli bir borsada belirli bir dolar rakamını aştığında bir teklif için çıkışı tetikleyebilir. Bu tür olaylar, DeFi akıllı sözleşmeleri için çok faydalı olabilir.

Feragat Edilen Vaka

Üçüncüsü , müşterinin çıkış yeteneğinden gözle görülür bir şekilde vazgeçtiği Waived vakası var . Bu, bir rezerv fiyatı olmadan bir ürünü açık artırmaya göndermek gibidir: katılımcılar, sözleşme karşılanana veya reddedene kadar teklifin taahhüt edildiğini görebilir.

Sistem hatası

Son senaryo, sistemin düzeltilemez bir hata tespit etmesi ve sözleşmenin yürütülmesini sonlandırmasıdır, örneğin sözleşme sıfıra bölünürse, çok fazla kaynak kullanırsa, sonsuz döngüler vs. Zoe, bu aşırı durumda bile ödeme canlılığı sağlamak için tasarlanmıştır. Sözleşme aniden feshedildiğinde, Zoe feshi algılar ve çıkışı ve dolayısıyla tüm tekliflerin ödenmesini tetikler. Diğer senaryolarda olduğu gibi, Zoe yalnızca teklif kısıtlamalarıyla tutarlı olan yeniden tahsislere izin verir ve böylece teklif güvenliği korunur. Hepimiz eve gidiyoruz ve herkes mutlu. Ya da en azından tüm müşteriler, teklif güvenliği aldıkları için mutludurlar ve geri ödenmesini bekleyen bir belirsizlik içinde sıkışıp kalmak yerine, bir başarısızlık olduğunda bunu hemen yerine getirirler. (Not: Bu koruma özelliği tasarlanmış ancak henüz uygulamamızda uygulanmamıştır. test ağı .)

Gelecekte ne var?

Gelecekte Zoe’nin benzersiz özellikleriyle ilgili daha fazla ayrıntıyı vurgulayacağız. Daha sonra kodu ve belgeleri okumak ve hatta Zoe’yi kurmak isteyebilirsiniz : npm install @agoric/zoe

Büyük bir zevkle!

--

--

Onur Sarayli
Onur Sarayli

Written by Onur Sarayli

Community Manager | Entrepreneur | Crypto Investor | Interactive Marketing | Blockchain Enthusiast | Metaverse | Web3

No responses yet