Okos szerződések az emberekért

This page is machine-translated.
Alex Chepurnoy

2018. október 19.

Manapság sok blockchain-nal kapcsolatos hír azt mondja nekünk, hogy egy X bank vagy egy Y vállalat "blockchain-t" fog használni a "költségek csökkentésére". Alapvetően ez azt jelenti, hogy egy újabb buzzword-öt tekintenek a nagy bankárok csak egy eszköznek, hogy hatékonyabban vonjanak ki értéket mindenhol, és hogy megtakarítsanak a munkahelyek megszüntetésével.

Míg elkerülöm, hogy bármit is mondjak "Satoshi víziójáról" (ott csak spekulációk ásására van lehetőség a távozása után), egy széleskörű nézet, amit a korai években tapasztaltam az online fórumok felhasználói körében, az az, hogy egy kriptovalutának eszközöket kell biztosítania az átlagemberek számára, akik a kisvállalkozásaik mögött állnak, anélkül, hogy sokkal többet tennének, mint a megélhetés biztosítása, nem pedig a depersonalizált nagy pénzügyi tőke. A kriptovaluta eszközeinek az eredeti széles közösségi vízió szemében lehetővé kell tenniük az emberek számára, hogy gazdasági tevékenységet folytassanak, függetlenül a vállalkozás méretétől, földrajzi elhelyezkedésétől, a nagy szereplők által meghatározott kamatlábaktól stb. Az eszközöknek lehetővé kell tenniük az emberek számára, hogy szerződéseket kössenek (nem papíralapú szerződéseket, hanem digitális, önérvényesítő és ésszerűen okos szerződéseket) függetlenül a joghatóságok, hagyományok, követett üzleti gyakorlatok stb. közötti különbségektől.

Remélem, hogy az Ergo hasznos lesz itt. Ezrek kis szövetkezetei és egyéni vállalkozói fontosabbak az egészséges és fenntartható gazdagság növekedéséhez világszerte, mint néhány vállalat, amely offshore paradicsomokban rejti el a profitját.

Példaként vegyünk egy szövetkezeti szövetséget (például a Radical Routes), amely pénzügyi segítséget kíván nyújtani egy vállalkozónak, aki több ezer kilométerre van (mondjuk, Rojavában).

Most néhány részletet feltételeznünk kell. Először is, tegyük fel, hogy négy szövetkezet van a hálózatban. Ezek összesen 10,000 Ergot (egyenlő részekben, tehát 2,500 Ergot mindegyik) zárnak le egy szerződésben, amely a következőket mondja:

  1. A szövetkezetek a pubkeyA, pubkeyB, pubkeyC, pubkeyD nyilvános kulcsokkal vannak társítva. A vállalkozó egy businessKey nyilvános kulccsal van társítva.
  2. A szövetkezetek pénzt zárnak le egy, a finanszírozási szerződés által védett érme formájában, majd elvégzik a megfelelő ellenőrzést és szavaznak arról, hogy finanszírozzák-e a vállalkozót vagy sem. Az összes szerződéses alap (10,000 Ergot) a vállalkozóhoz kerül, ha 3 szavazat 4-ből mellette szól. Technikai szempontból a szavazás 3-ból 4 küszöb aláírás útján történik. Ha a szavazás nem sikeres (3 a 4-ből aláírás nem gyűlik össze) az 1,000-es blokk szám előtt, bármely szövetkezet (valójában bárki) benyújthatja a visszavonási tranzakciót, amely 2,500 Ergot (legalább) visszatérít minden szövetkezetnek. Továbbá, a finanszírozási szerződést szavazási szerződésnek is nevezik.
  3. A befektetéseket három célra lehet költeni, szigorú határok mellett. Nevezetesen, a vállalkozónak legalább 5,000 Ergot kell költenie felszerelésre, legalább 2,000 Ergotot egy szükséges épület építésére, a többi alapot a vállalkozó tetszés szerint költheti el.
  4. Annak érdekében, hogy biztosak legyünk abban, hogy a felszerelésre szánt pénzt valóban felszerelésre költik, a szövetkezeti szövetség a vállalkozó területén ismert felszereléseladók nyilvános kulcsait használja. Például vegyük figyelembe, hogy a területen vannak felszereléseladók pubkeyTool1, pubkeyTool2, pubkeyTool3, pubkeyTool4 nyilvános kulcsokkal. Technikai szempontból az átutalás egy felszereléseladó kollektív aláírásaként van megszervezve (így gyűrűs aláírás a felszereléseladók gyűrűjéből ÉS a vállalkozó aláírása)
  5. Hasonlóan, tegyük fel, hogy 3 építőt ismer el a szövetkezeti szövetség, akik pubkeyConstr1, pubkeyConstr2 és pubkeyConstr3 nyilvános kulcsokkal vannak társítva.
  6. Hasonlóan a szavazási szerződéshez, ha a felszerelési és építési szerződéseket nem közösen írják alá az 5000-es blokk szám előtt, a szövetkezeti szövetkezetek visszavonhatják a pénzeszközöket.

Különböző módok vannak a szerződések definiálására az Ergóban. Egy alacsony szintű nyelvben, ErgoTree, egy (egyes) logikai feltételt ír le arról, hogy egy érme költhető-e ennek megfelelően, és egy költési bizonyítékot, amelyet egy költési tranzakció biztosít. Belsőleg a feltétel egy típusos szintaxisfaként van ábrázolva, így a neve. A struktúra lehetővé teszi számunkra, hogy előre költségelemzést végezzünk stb. A ErgoScript nevű magasabb szintű nyelv lehetővé teszi a hagyományosabb és olvashatóbb leírást, változók használatát és a logika alprogramokra bontását.

Kezdjük a fő szerződéssel, amelyet a fenti (1-3) pontokban definiáltunk:

{
 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
}

Ez a ErgoScript-ben írt szkript egy szintaxisfává lesz fordítva (amelyet a blokkláncra egy sorosított formában kell írni) azáltal, hogy konkrét értékekkel kötik össze a változókat (pubkeyA, pubkeyB, pubkeyC, pubkeyD, spendingContract1Hash, spendingContract2Hash). Az spendingContract1Hash egy (sorosított) felszerelési költési szkript hash-e, amelyet alább fogunk bemutatni, az spendingContract2Hash pedig egy építési költési szkript hash-e.

A felszerelési költési szkript a következő:

{
 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
}

És az építési szkript a következő:

{
 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
}

Most tegyük fel, hogy a szövetkezeti szövetség létrehozott egy érmét, amelyet a szavazási szerződés véd. Az alábbiakban bemutatjuk, hogyan végezheti el a vállalkozó az üzletét:

  1. Hozzon létre egy tranzakciót, amely felhasználja az érmét, és legalább három érmét hoz létre, egyet a felszerelési költési szerződéssel, egy másikat az építési költési szerződéssel, a harmadik pedig egy érmét, amelyet a vállalkozó nyilvános kulcsa véd.
  2. Küldje el a tranzakciót a szövetkezeteknek, várjon a tranzakcióra, amelynek a küszöb aláírásos bemenete közzétételre kerül a blokkláncon.
  3. Vegyen figyelembe egy szerződést egy felszereléseladóval, közösen írja alá a költési tranzakciót.
  4. Vegyen figyelembe egy szerződést egy építővel, közösen írja alá a költési tranzakciót.

A vállalkozó könnyen elmenekülhet anélkül, hogy bármilyen üzletet folytatna, de legfeljebb 3,000 Ergot. Ezt meg lehet oldani, például ezt a pénzt csak az 5,000-es blokk szám után lehetne költeni, és addig a pénzt a szövetkezetek visszavonhatják. A felszerelési és építési költések esetén a vállalkozó együtt dolgozik néhány, feltehetően már elismert üzlettel. Így a befektető csökkenti a kockázatait.

A kódot és példa tranzakciókat online találhat. Kérjük, vegye figyelembe, hogy több példánk van összetett aláírási sémákról, többlépéses szerződésekről (folyamatban lévő végrehajtási utakkal, mint a MAST a Bitcoinban, de ciklusok engedélyezésével), oracle-okról, közösségi finanszírozásról stb. Kérjük, ellenőrizze a példák tárolónkat.

Share post

Ergo Infrastructure DAO: Az Ergo Ökoszisztéma Gerincének Decentralizálása

Ergo Infrastructure DAO: Az Ergo Ökoszisztéma Gerincének Decentralizálása

Az Ergo küldetése mindig is a decentralizáción alapult, nemcsak a konszenzus rétegén, hanem az egész stack-en.

Ergo Platform

2025. augusztus 13.

Mew Finance: Egy Játékos DeFi Eszközkészlet az Ergo Ökoszisztémához

Mew Finance: Egy Játékos DeFi Eszközkészlet az Ergo Ökoszisztémához

A Mew Finance egy decentralizált alkalmazáscsomag az Ergo Blockchain-en.

Ergo Platform

2025. augusztus 12.

Lithos: A Bányászat Decentralizálása On-Chain Poolokkal

Lithos: A Bányászat Decentralizálása On-Chain Poolokkal

A Lithos egy új protokoll, amely a bányászati poolok működésének átalakítására készült azáltal, hogy azokat on-chain helyezi, telj.

Ergo Platform

2025. július 24.

Sigma 6.0: Egy Okosabb, Rugalmasabb Ergo

Sigma 6.0: Egy Okosabb, Rugalmasabb Ergo

Sigma 6.0 egy jelentős javasolt frissítés az Ergo blokklánc számára.

Ergo Platform

2025. július 23.

Rosen Jövőjének Formálása: Közösségi Felhívás Öt Kulcsfontosságú Kincstári Javaslatra

Rosen Jövőjének Formálása: Közösségi Felhívás Öt Kulcsfontosságú Kincstári Javaslatra

A Rosen társalapítója, Armeanio, öt új javaslatot nyújtott be a Rosen Kincstárhoz.

Ergo Platform

2025. július 9.

Ergo kibővített UTXO-ja és a mesterséges gazdasági intelligencia felemelkedése

Ergo kibővített UTXO-ja és a mesterséges gazdasági intelligencia felemelkedése

Gyakorlati vízió az autonóm gazdasági ügynökök számára Az autonóm gazdasági ügynökök az Ergo blokkláncon hasznos munkát végeznek .

Ergo Platform

2025. május 12.

ErgoHACK X: Mesterséges Intelligencia az Ergo Blockchain-en

ErgoHACK X: Mesterséges Intelligencia az Ergo Blockchain-en

Ünnepeljük a Decentralizált Innováció Egy Évtizedét Csatlakozz a 10.

Ergo Platform

2025. április 10.