Smart Contracts per il Popolo

This page is machine-translated.
Alex Chepurnoy

19 ottobre 2018

Molte notizie legate alla blockchain in questi giorni ci dicono che una banca X o una corporazione Y
utilizzerà una "blockchain" per "ridurre i costi". Fondamentalmente significa che solo un altro termine alla moda è
considerato dai grandi banchieri come solo un altro strumento per estrarre valore da ovunque in modo più efficiente,
e anche per risparmiare sui posti di lavoro.

Mentre evito di dire qualsiasi cosa sulla "visione di Satoshi" (nulla che non siano speculazioni potrebbe essere scavato lì dopo
la sua uscita), una visione ampia che ho testimoniato nei primi anni nei forum online è che una criptovaluta
dovrebbe fornire strumenti per arricchire le persone comuni dietro le loro piccole imprese che forniscono poco più che il necessario per sbarcare il lunario, non un grande capitale finanziario depersonalizzato. Gli strumenti di
una criptovaluta, agli occhi della visione originale della comunità, dovrebbero consentire alle persone di svolgere attività economiche indipendentemente dalla dimensione dell'azienda, dalla posizione geografica, dai tassi di interesse stabiliti dai grandi attori, e così via.
Gli strumenti dovrebbero consentire alle persone di stipulare contratti (non contratti cartacei, ma contratti digitali, auto-esecutivi e ragionevolmente intelligenti) indipendentemente dalle differenze nelle giurisdizioni, tradizioni, pratiche commerciali seguite, ecc.

Spero che Ergo possa essere utile qui. Migliaia di piccole cooperative e imprenditori individuali sono più importanti per una crescita della ricchezza sana e sostenibile in tutto il mondo rispetto a un paio di corporazioni che nascondono profitti in paradisi fiscali offshore.

Come esempio, consideriamo una federazione cooperativa (come Radical Routes) disposta a fornire aiuto finanziario a un imprenditore a migliaia di chilometri di distanza (diciamo, in Rojava).

Dobbiamo assumere alcuni dettagli ora. In primo luogo, assumiamo che ci siano quattro cooperative nella rete. Esse bloccano collettivamente 10.000 Ergs (in parti uguali, quindi 2.500 Ergs ciascuna) in un contratto, che dice quanto segue:

  1. Le cooperative sono associate a chiavi pubbliche pubkeyA, pubkeyB, pubkeyC, pubkeyD. L'imprenditore è associato a una chiave pubblica businessKey.
  2. Le cooperative bloccano denaro in una moneta protetta da un contratto di finanziamento, quindi effettuano la dovuta diligenza e votano se finanziare l'imprenditore o meno. Tutto il fondo del contratto (10.000 Ergs) andrà all'imprenditore se 3 voti su 4 sono favorevoli. Tecnologicamente, il voto avviene tramite una firma a soglia di 3 su 4. Se il voto non ha successo (3 su 4 firme non vengono raccolte) prima del numero di blocco 1.000, qualsiasi cooperativa (in realtà, chiunque) può presentare una transazione di prelievo, che restituisce 2.500 Ergs (almeno) a ogni cooperativa. Inoltre, il contratto di finanziamento sarà anche chiamato contratto di voto.
  3. Gli investimenti potrebbero essere spesi per tre obiettivi, con alcuni limiti rigorosi. In particolare, l'imprenditore deve spendere almeno 5.000 Ergs per attrezzature, almeno 2.000 Ergs per la costruzione di un edificio necessario, altri fondi l'imprenditore può spendere arbitrariamente.
  4. Per essere sicuri che il denaro per le attrezzature venga speso per le attrezzature, la federazione cooperativa utilizza le chiavi pubbliche di venditori di attrezzature noti nell'area dell'imprenditore. Ad esempio, considera che ci sono venditori di attrezzature con chiavi pubbliche pubkeyTool1, pubkeyTool2, pubkeyTool3, pubkeyTool4 nell'area. Tecnologicamente, il trasferimento è organizzato come una firma collettiva di uno dei venditori di attrezzature (quindi firma ad anello dai venditori di attrezzature E firma dell'imprenditore)
  5. Allo stesso modo, assumiamo che ci siano 3 costruttori nella federazione cooperativa che viene riconosciuta, associati a chiavi pubbliche pubkeyConstr1, pubkeyConstr2, e pubkeyConstr3.
  6. Analogamente al contratto di voto, se i contratti per attrezzature e costruzione non sono co-firmati prima del numero di blocco 5000, le cooperative della federazione potrebbero ritirare fondi.

Ci sono diversi modi per definire contratti in Ergo. Uno script nel linguaggio a basso livello, ErgoTree, descrive una (singola) condizione logica su se una moneta possa essere spesa secondo essa, e anche una prova di spesa fornita da una transazione di spesa. Internamente, la condizione è rappresentata come un albero di sintassi tipizzato, da cui il nome. La struttura ci consente di fare analisi dei costi in anticipo, ecc. Un linguaggio di livello superiore chiamato ErgoScript consente di avere una descrizione più tradizionale e leggibile, utilizzare variabili e suddividere la logica in sottoprogrammi.

Iniziamo con il contratto principale definito in (1-3) sopra:

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

Questo script in ErgoScript deve essere compilato in un albero di sintassi (che deve essere scritto nella blockchain in una forma serializzata) legandolo a valori concreti per le variabili (pubkeyA, pubkeyB, pubkeyC, pubkeyD, spendingContract1Hash, spendingContract2Hash). spendingContract1Hash è un hash dello script di spesa per attrezzature (serializzato) che sarà fornito di seguito, spendingContract2Hash è un hash dello script di spesa per la costruzione.

Lo script di spesa per attrezzature è il seguente:

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

E lo script di costruzione è:

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

Ora assumiamo che la federazione cooperativa abbia creato una moneta protetta dal contratto di voto. Di seguito è riportato come l'imprenditore può svolgere la sua attività:

  1. Creare una transazione che consuma la moneta e crea almeno tre monete, una con il contratto di spesa per attrezzature, un'altra con il contratto di spesa per la costruzione, la terza crea una moneta protetta dalla chiave pubblica dell'imprenditore.
  2. Inviare la transazione alle cooperative, attendere che la transazione con l'input firmato a soglia venga pubblicata sulla blockchain.
  3. Considerare un contratto con un venditore di attrezzature, co-firmare una transazione di spesa.
  4. Considerare un contratto con un costruttore, co-firmare una transazione di spesa.

L'imprenditore può facilmente scappare senza fare alcun affare, ma con non più di 3.000 Ergs. Questo può essere corretto, ad esempio, questo denaro potrebbe essere reso spendibile solo dopo il numero di blocco 5.000, e prima di quel momento il denaro potrebbe essere ritirato dalle cooperative. Per le spese per attrezzature e costruzione, l'imprenditore sta lavorando insieme a qualche azienda, presumibilmente già rispettabile. Così l'investitore sta riducendo i suoi rischi.

Puoi trovare codice e transazioni di esempio online. Si prega di notare che abbiamo più esempi di schemi di firma complessi, contratti multi-step (con percorsi di esecuzione in corso che rivelano, come MAST in Bitcoin, ma con cicli consentiti), oracoli, crowdfunding e così via. Si prega di controllare il nostro repository di esempi.

Share post

Ergo Infrastructure DAO: Decentralizzare la Spina Dorsale dell'Ecosistema Ergo

Ergo Infrastructure DAO: Decentralizzare la Spina Dorsale dell'Ecosistema Ergo

La missione di Ergo è sempre stata radicata nella decentralizzazione, non solo a livello di consenso, ma in tutto lo stack.

Ergo Platform

13 agosto 2025

Mew Finance: Un Toolkit DeFi Giocoso per l'Ecosistema Ergo

Mew Finance: Un Toolkit DeFi Giocoso per l'Ecosistema Ergo

Mew Finance è una suite di applicazioni decentralizzate sulla Blockchain Ergo.

Ergo Platform

12 agosto 2025

Lithos: Decentralizzare il Mining con Pool On-Chain

Lithos: Decentralizzare il Mining con Pool On-Chain

Lithos è un nuovo protocollo progettato per ristrutturare il funzionamento delle pool di mining spostandole on-chain, dando ai min.

Ergo Platform

24 luglio 2025

Sigma 6.0: Un Ergo più Intelligente e Flessibile

Sigma 6.0: Un Ergo più Intelligente e Flessibile

Sigma 6.0 è un importante aggiornamento proposto per la blockchain Ergo.

Ergo Platform

23 luglio 2025

Plasmare il Futuro di Rosen: Una Chiamata della Comunità su Cinque Proposte Chiave del Tesoro

Plasmare il Futuro di Rosen: Una Chiamata della Comunità su Cinque Proposte Chiave del Tesoro

Il co-fondatore di Rosen, Armeanio, ha presentato cinque nuove proposte al Tesoro di Rosen.

Ergo Platform

9 luglio 2025

L'Extended UTXO di Ergo e l'Ascesa dell'Intelligenza Economica Artificiale

L'Extended UTXO di Ergo e l'Ascesa dell'Intelligenza Economica Artificiale

Una Visione Pratica per Agenti Economici Autonomi Gli agenti economici autonomi sulla blockchain di Ergo svolgono un lavoro utile.

Ergo Platform

12 maggio 2025

ErgoHACK X: Intelligenza Artificiale sulla Blockchain di Ergo

ErgoHACK X: Intelligenza Artificiale sulla Blockchain di Ergo

Celebrare un Decennio di Innovazione Decentralizzata Unisciti al decimo anniversario di ErgoHACK e sii in prima linea nella rivolu.

Ergo Platform

10 aprile 2025

I partecipanti all'Hackaton V: mining and minting

I partecipanti all'Hackaton V: mining and minting

La registrazione per "ErgoHack V: Mining and Minting" è ufficialmente chiusa ed è tempo di esplorare ciò che i partecipanti hanno .

Ergo Platform

11 ottobre 2022

EIP37 Hardfork

EIP37 Hardfork

Dopo il merge di Ethereum, l'industria del mining di criptovalute ha assistito a un impressionante riorientamento del potere di ha.

Ergo Platform

3 ottobre 2022

ErgoHack V: incontra i nostri giudici

ErgoHack V: incontra i nostri giudici

Con le iscrizioni ora aperte, ErgoHack V si sta avvicinando rapidamente.

Ergo Platform

25 settembre 2022

Ergo: Dopo il merge di Ethereum

Ergo: Dopo il merge di Ethereum

Una discussione per la comunità mineraria Sono state un paio di settimane vorticose per l'industria del mining di criptovalute.

Ergo Platform

25 settembre 2022

La tabella di marcia di Ergo: cosa succederà. Parte 1

La tabella di marcia di Ergo: cosa succederà. Parte 1

Dal lancio sulla rete principale di Ergo il 1 luglio 2019, la blockchain ha raggiunto molti traguardi importanti.

Ergo Platform

24 settembre 2022

I premi di ErgoHack V

I premi di ErgoHack V

Con la fusione di Ethereum, stiamo assistendo a un cambiamento sismico nel panorama degli hashrate per le blockchain Proof of Work.

Ergo platform

18 settembre 2022

EIP-0028 di Ergo: ErgoAuth

EIP-0028 di Ergo: ErgoAuth

Quando si parla di blockchain, è importante ricordare che i wallet sono completamente anonimi.

Ergoplatform

4 settembre 2022

The Ergo Manifesto

The Ergo Manifesto

Il Manifesto Ergo desidera educare e offrire una panoramica di ciò che la tecnologia blockchain può raggiungere.

Ergo Foundation

3 settembre 2022

Ergo e il meccanismo di consenso di Autolykos: parte I

Ergo e il meccanismo di consenso di Autolykos: parte I

Quello che segue è un'analisi tecnica approfondita del meccanismo di consenso di Ergo, Autolykos.

Ergo Platform

28 agosto 2022

Ergo e il meccanismo di consenso di Autolykos: parte II

Ergo e il meccanismo di consenso di Autolykos: parte II

La scorsa settimana abbiamo introdotto un'analisi approfondita del meccanismo di consenso Autolykos di Ergo.

Ergo Platform

28 agosto 2022

Come acquistare Ergo da Kucoin

Come acquistare Ergo da Kucoin

Tutti gli aspetti di questo articolo non sono consigli finanziari. Ricontrolla tutte le informazioni fornite da altre fonti.

Ergoplatform

7 agosto 2022

Ethereum Mining Community e GPU Miners: il caso di Ergo dopo la fusione

Ethereum Mining Community e GPU Miners: il caso di Ergo dopo la fusione

Un cambiamento epocale in arrivo nel campo delle blockchain minabili Il panorama del mining di criptovalute Proof of Work sta per.

Ergoplatform

7 agosto 2022

Ergo: una risposta ai fallimenti della teoria monetaria moderna

Ergo: una risposta ai fallimenti della teoria monetaria moderna

Nel 2008, un gruppo o una persona sconosciuta ha rilasciato una riserva di valore peer-to-peer e l’ha chiamata Bitcoin.

Ergo platform

9 febbraio 2022

E' nata Ergoitaly.it

E' nata Ergoitaly.it

La prima community ufficiale Ergo in Italia Ergo è nato l'8 aprile 2019. Alle 20:41.

ErGonario

27 gennaio 2022