SlideShare a Scribd company logo
BLOCKCHAIN E SMART CONTRACT
LORENZO PIATTI
GIURISTA
CULTORE DELLA MATERIA IN UNIMI
CONSULENTE IN INFOCERT
ENTUSIASTA DI BLOCKCHAIN & IOT
SMART CONTRACT B
C
NORMATIVA
BITCOIN E DLT A
AGENDA
GDPR D
ETHEREUM
E
CODING
D
ETHEREUM
E
CODING
A BITCOIN E DLT
Questa parte analizza molto brevemente cos’è Bitcoin e
perché è una tecnologia rilevante per comprendere
appieno il funzionamento e il potenziale della Blockchain o
– più in generale – delle Decentralized Ledger
Technologies (da qui in avanti DLT).
In primo luogo si cerca di mettere a fuoco gli aspetti che
stanno alla base della rivoluzione filosofica e tecnologica di
Bitcoin: sovranità monetaria, decentralizzazione e Web3.
L’analisi si focalizza successivamente sull’aspetto più
rilevante per la discussione sugli smart contract: il wallet.
SMART CONTRACT B
C
NORMATIVA
D
ETHEREUM
E
CODING
C
BITCOIN E DLT A
Cos’è uno smart contract? Questa sezione cerca di
rispondere a questa domanda, sia dal punto di vista
tecnologico sia da quello giuridico.
Questa sezione affronta anche brevemente l’evoluzione
del contratto informatico per arrivare a descrivere il
funzionamento e l’essenza – anche giuridica – degli smart
contracts.
Questa sezione è fortemente legata alla precedente: la
principale differenza tra gli smart contract e il contratto
informatico risiede nel fatto che il primo si appoggia a un
sistema decentralizzato per il proprio funzionamento.
B SMART CONTRACT
NORMATIVA
D
ETHEREUM
E
CODING
SMART CONTRACT B
A
In questa sezione analizziamo i pochi frammenti normativi
che il legislatore nazionale prevede in tema di smart
contract e DLT.
Seppur incompleto, l’apporto del legislatore nazionale è
essenziale per comprendere quali siano le intenzioni –
anche strategiche – del nostro Paese sulle nuove
tecnologie.
Il quadro normativo è importante per comprendere come
le prime due sezioni possano validamente calarsi nel
contesto giuridico nazionale.
C NORMATIVA
BITCOIN E DLT
C
NORMATIVA
E
CODING
SMART CONTRACT B
A
In questa sezione cominciamo a spostarci verso la parte
pratica dell’agenda: cominciamo a conoscere la
piattaforma che permette il funzionamento degli smart
contracts, Ethereum.
La parte di coding presuppone conoscere la piattaforma su
cui andremo a operare, le sue logiche, nonché la sua
semantica.
Ethereum non è l’unica Blockchain che permette di
scrivere e interagire con gli smart contract, ma risulta
essere la più utilizzata e malleabile: grazie alle sue funzioni
di test, in questa parte cominciamo a vedere qualche
esempio pratico di transazione e rapporto tra wallets.
BITCOIN E DLT
D ETHEREUM
C
NORMATIVA
D
ETHEREUM
SMART CONTRACT B
A
Cosa facciamo: proviamo il funzionamento di alcuni smart
contract contracts sfruttando la IDE remix, un tool che ci
permette di scrivere, compilare e deployare i nostri smart
contracts. Scriveremo e proveremo a interagire con due
diverse tipologie di smart contract. Impariamo ad usare
Solidity, senza entrare nel dettaglio di ogni aspetto di
questo linguaggio.
Cosa NON facciamo: remix ci permette di fare pratica in un
ambiente di test, replicando – con ETH fittizi – il
funzionamento di Ethereum. Non affronteremo aspetti
legati alla sicurezza o alla pulizia del codice: argomenti
fondamentali un programmatore, ma non essenziali per
toccare con mano il funzionamento di uno smart contract.
E CODING
BITCOIN E DLT
BITCOIN E DLT
ISTITUZIONALE DECENTRALIZZATA
LOCALE
UNA PRIMA DEFINIZIONE
Protocollo aperto, interoperabile, non controllato
da un soggetto centrale (decentralizzato), le cui
componenti tecnologiche sono già presenti in modo
non articolato in ambito accademico negli anni 80-
90. I concetti principali sono transazioni, nodi e
rete.
VALIDAZIONE
Permissioned Permissionless
ACCESSO
Pubblic
Private
BITCOIN BLOCKCHAIN
Open source
Permissionless e public
Pseudonima e
trasparente
Abilita la scarsità
digitale
Disintermediata
grazie al consenso
decentralizzato
(Immutabile)
Globale
Wallet
BITCOIN WALLET
Il portafoglio (o wallet) è lo strumento tecnologico che permette
ai partecipanti della rete di scambiare bitcoin, o - in generale -
una criptomoneta, altro tipo di valore o informazione.
online mobile desktop hardware
paper
Wallet
BITCOIN WALLET
Il portafoglio (o wallet) è lo strumento tecnologico che permette
ai partecipanti della rete di scambiare bitcoin, o - in generale -
una criptomoneta, altro tipo di valore o informazione.
online mobile desktop hardware
paper
SMART CONTRACT
1980-2001
strumentale
EVOLUZIONE DEL CONTRATTO INFORMATICO
telematica autómata
2002-2019 2020-…
STRUMENTALE
Il computer è una tecnologia di
supporto: chi lo utilizza si limita a
redigere i contratti su applicativi di
video-scrittura per poi stamparli.
novità
stampa carta
parti
Questa fase segna il passaggio dalla
meccanica all’elettronica: aziende e
professionisti approcciano al computer
come un mero assistente operativo.
Il mezzo utilizzato per concludere i
contratti è la carta: il supporto è
ancora un aspetto centrale delle
trattative.
Le parti non hanno modo di
concludere contratti a distanza: le reti
e la comunicazione sono appannaggio
di applicazioni industriali e finanziarie.
TELEMATICA
Il legislatore (italiano prima ed europeo
dopo) permettono la digitalizzazione
dei rapporti contrattuali con strumenti
come PEC e Firma Digitale.
invio
firma online
PCT
Le comunicazione sono per la maggior
parte dematerializzate: il mercato
finanziario prima e quello giuridico poi
sviluppano strumenti sicuri di invio
documentazione digitale.
Le parti si incontrano, dialogano,
negoziano e concludono i contratti
online: l’esecuzione delle obbligazioni
è spesso ancora offline.
Le procedure vengono digitalizzate: per
primo il Processo Civile Telematico
(PCT) a seguire quello amministrativo e
quello penale.
Nick Szabo è il tecnico-giurista che –
nel 1998 – ha teorizzato l’esecuzione
automatica dei rapporti obbligatori tra
le parti.
AUTÓMATA
ERC-20
Szabo
?
cos’è?
Ethereum Request for Comment n. 20
è il primo standard di smart contract su
cui si sono sviluppi i concetti di
tokenizzazione e automazione
contrattuale diffusa.
Uno smart contract è un insieme di
istruzioni informatiche, la cui
esecuzione dipende dall’avverarsi di
determinate condizioni.
Quando uno smart contract soddisfa i
requisiti di cui all’art. 1321 c.c. (o altra
normativa di riferimento), si parla di
smart legal contract.
1321c.c.
TOKEN
usage vs work tokens
valore
unità minima di diritto
smart contract
ICO
ORACOLO
Reintroduce il concetto di terza parte fidata: lo smart contract si relaziona
con un’entità esterna di cui si fida nel rispetto di determinate logiche
Oracoli decentralizzati?
Persona fisica, persona giuridica o oggetto
Fonte di informazioni che servono allo smart-contract per funzionare
ORACOLO
CODICE
NORMATIVA
LEGGE DI CONVERSIONE DEL D.L. N. 135/2018
definizione valore giuridico linee guida
(11 febbraio 2019)
DEFINIZIONE SMART CONTRACT
2. Si definisce "smart contract" un programma
per elaboratore che opera su tecnologie basate
su registri distribuiti e la cui esecuzione
vincola automaticamente due o più parti sulla
base di effetti predefiniti dalle stesse.
Gli smart contract soddisfano il requisito
della forma scritta previa identificazione
informatica delle parti interessate, attraverso
un processo avente i requisiti fissati
dall'Agenzia per l'Italia digitale con linee
guida da adottare entro novanta giorni dalla
data di entrata in vigore della legge di
conversione del presente decreto.
DEFINIZIONE SMART CONTRACT
2. Si definisce "smart contract" un programma
per elaboratore che opera su tecnologie basate
su registri distribuiti e la cui esecuzione
vincola automaticamente due o più parti sulla
base di effetti predefiniti dalle stesse.
Gli smart contract soddisfano il requisito
della forma scritta previa identificazione
informatica delle parti interessate, attraverso
un processo avente i requisiti fissati
dall'Agenzia per l'Italia digitale con linee
guida da adottare entro novanta giorni dalla
data di entrata in vigore della legge di
conversione del presente decreto.
TOO LONG: DIDN’T READ
- Bitcoin whitepaper: reso pubblico nel 2008, da Satoshi
Nakatomoto, un personaggio misterioso che l’anno
successivo trasmette la prima transazione.
- Da allora, Bitcoin è stato dichiarato morto 389 volte,
diventando la prima e più longeva criptomoneta e
aumentandone incredibilmente il valore.
- Bitcoin è un’applicazione che poggia su un registro
decentralizzato: la Blockchain, un particolare tipo di DLT.
- Nel contesto delle DLT sono nati gli smart contract: un
particolare tipo di software che può assumere rilevanza
legale (in questo caso si parla di smart legal contract).
- Lo smart legal contract è il picco dell’evoluzione del
contratto informatico e formalizza la fase autómata, che
segue quella telematica e quella strumentale.
- Il legislatore italiano regola in parte la materia degli
smart contract: il meglio deve ancora venire.
- Perché dovrebbe interessarmi?
ETHEREUM
ETHEREUM BLOCKCHAIN
Abilita le dApp e
DAO
EVM & fees
Ether
Token e ICO
Solidity
Simile alla Bitcoin
Blockchain
Smart
contracts
Ethereum Virtual Machine (EVM): un computer
virtuale globale, il cui stato è registrato da
ogni nodo che compone la Blockchain di
Ethereum.
Transaction: una transazione è una richiesta
inviata da un account verso la EVM per compiere
del lavoro computazionale. Una volta che la
transazione è verificata, validata e eseguita
dalla rete, questa modifica lo stato della EVM.
Ethereum, quindi, è semplicemente un database
decentralizzato su una determinata rete che
registra le transazioni che alterano il suo
stato.
DEFINIZIONE
Wallet
Questi concetti sono comuni a diverse soluzioni DLT, ma nella
Blockchain Ethereum hanno un ruolo fondamentale ed è
importante definirne correttamente il perimetro.
nodo smart contract
account
transazione gas
SEI CONCETTI CHIAVE
rete
Un Account Ethereum è un oggetto informatico
con un saldo in Ether (ETH) che può fare
transazioni sulla Rete Ethereum. Un Account
può:
- Ricevere ETH.
- Trattenere ETH.
- Inviare ETH.
- Interagire con uno smart contract.
Un Account si differenzia dal Wallet perché
quest’ultimo è lo strumento che permette
all’utente di interagire con il proprio
Account.
ACCOUNT 1/2
Ci sono due diversi tipi di account:
a) Account Esterno (externally-owned account),
la cui creazione è gratuita. Le transazioni
tra Account Esterni possono essere solo
transazioni di ETH.
b) Account Contratto (contract account), la cui
creazione ha un costo, in considerazione del
fatto che viene utilizzato dello spazio
nella EVM. Questo account può compiere
transazioni solo se a sua volta ha ricevuto
una transazione: questa operazione può
generare diverse conseguenze, come la
creazione di token, di un altro Account
Contratto o qualsiasi cosa sia prevista
dalle istruzioni che contiene.
ACCOUNT 2/2
Insieme di hardware e software (c.d. client)
che ha lo scopo di verificare i blocchi e i
dati delle transazioni, nonché di firmare le
transazioni.
Esistono tre diversi tipi di nodi:
a) Full node: partecipa alla validazione dei
blocchi, verifica tutti i blocchi e gli
stati, nonché archivia l’intera Blockchain.
b) Light node: archivia la catena degli headers
e può verificare la validità dei dati
rispetto a quanto contenuto nei block
headers (identificativo del blocco).
c) Archive: archivia tutti gli stati di un full
node.
NODO
Quando un account (c.d. «esterno») intende
modificare lo stato della EVM, emette e firma
crittograficamente un’istruzione, più o meno
complessa. L’account non parla direttamente con
la rete: ha bisogno di un nodo che trasmetta la
sua richiesta.
La transazione, oltre ad essere trasmessa deve:
- Essere minata all’interno di un blocco, e
- Contenere una gas fee.
TRANSAZIONE 1/2
La transazione ha i seguenti requisiti:
1) recipient: l'indirizzo del destinatario,
qualora si tratti di un account esterno
(externally-owned account) la transazione
trasferirà il valore della transazione. Se
si tratta di un account contratto (contract
account), la transazione eseguirà il codice
del contratto.
2) signature: l'identificativo del mittente.
Questo viene generato quando la chiave
privata del mittente firma la transazione e
conferma che il mittente ha autorizzato la
transazione.
3) value: importo di ETH da trasferire dal
mittente al destinatario.
4) data: campo opzionale per includere dati.
5) gasLimit: a quantità massima di unità di gas
che può essere consumata dalla transazione.
6) gasPrice: prezzo per unità di gas.
TRANSAZIONE 2/2
CICLO VITA DELLA TRANSAZIONE
INVIO DELLA
TRANSAZIONE
1
CICLO VITA DELLA TRANSAZIONE
INVIO DELLA
TRANSAZIONE
TRASMISSIONE E
POOL
1 2
CICLO VITA DELLA TRANSAZIONE
INVIO DELLA
TRANSAZIONE
TRASMISSIONE E
POOL
VERIFICA DELLA
TRANSAZIONE
1 2 3
CICLO VITA DELLA TRANSAZIONE
INVIO DELLA
TRANSAZIONE
TRASMISSIONE E
POOL
VERIFICA DELLA
TRANSAZIONE
INSERIMENTO IN UN
BLOCCO
1 2 3 4
CICLO VITA DELLA TRANSAZIONE
INVIO DELLA
TRANSAZIONE
TRASMISSIONE E
POOL
VERIFICA DELLA
TRANSAZIONE
INSERIMENTO IN UN
BLOCCO
FASE DI CONFERMA
1 2 3 4 5
Unità che misura lo sforzo computazionale
richiesto per le operazioni all’interno della
EVM e retribuisce i miners. Ogni transazione
richiede risorse computazionali, quindi ogni
transazione richiede un certo ammontare di gas.
Il gas abilita la scarsità su Ethereum e
permette di evitare inefficienze, come spam,
codice eccessivamente dispendioso oppure cicli
malevoli.
il gas ha un prezzo (gas price) espresso in
Gwei e valutato in base ad un’unità minima: per
ciascuna transazione viene calcolata la
relativa gas fee e un gas limit.
GAS
L’insieme dei nodi che compone l’ecosistema
Ethereum crea diverse reti su cui è possibile
scambiare transazioni.
Queste reti sono pubbliche e si differenziano
per nome e caratteristiche:
a) Mainnet: rete Ethereum «di produzione». Su
questa rete ci sono veri.
b) Testnets: Ropsten, Kovan, Görli e Rinkeby.
reti «di collaudo» che permettono di provare
il funzionamento della EVM, ciascuna con
logiche di consenso differenti. Su queste
reti ci sono soldi finti.
Gli ETH per le Testnets vengono generati da
apposite «Faucets».
RETE
Un programma eseguito sulla Blockchain di
Ethereum. Uno smart contract è composto di:
1) codice: le istruzioni per il suo
funzionamento, e
2) dati: lo stato del contratto stesso.
Ciascuno smart contract ha un suo specifico
indirizzo, il c.d. «contract account»: ha,
quindi, anche un saldo in ETH.
SMART CONTRACT
contratto
esecuzione immediata
disintermediazione
transazione
registro
SCRITTURA IN
LINGUAGGIO
CICLO VITA DELLO SMART CONTRACT
1
SCRITTURA IN
LINGUAGGIO
CICLO VITA DELLO SMART CONTRACT
COMPILAZIONE
(BYTECODE E ABI)
1 2
SCRITTURA IN
LINGUAGGIO
CICLO VITA DELLO SMART CONTRACT
COMPILAZIONE
(BYTECODE E ABI)
DEPLOY
1 2 3
SCRITTURA IN
LINGUAGGIO
CICLO VITA DELLO SMART CONTRACT
COMPILAZIONE
(BYTECODE E ABI)
DEPLOY
UTILIZZO
1 2 3 4
SCRITTURA IN
LINGUAGGIO
CICLO VITA DELLO SMART CONTRACT
COMPILAZIONE
(BYTECODE E ABI)
DEPLOY
UTILIZZO
DISTRUZIONE
1 2 3 4 5
ERC-20 e ERC-721
METAMASK
CODING
// SPDX-License-Identifier: UNLICENSED
//definisce la versione di solidity utilizzata
pragma solidity ^0.7.0;
// contenuto del contratto "HelloWorld"
contract HelloWorld {
string variabile;
// costrutto, un particolare tipo di funzione, che definisce un valore di default per la variabile "variabile"
constructor() {
variabile = "legalCoders";
}
// funzione che permette di leggere il valore della variabile "variabile"
function get() public view returns(string memory) {
return variabile;
}
//funzione che permette di definire un valore per la variabile "variabile"
function set(string memory _variabileCheVaria) public {
variabile = _variabileCheVaria;
}
}
TESTO PRIMO CONTRATTO
La EVM ha tre luoghi dove archiviare i dati,
ciascuno con differenti funzioni e limiti.
Storage (costoso): sulla Blockchain, per il
tempo in cui la stessa è accessibile. Ogni
contratto ha un proprio storage, dove salvare
gli elementi necessari al suo funzionamento.
Paragonabile al concetto di hard disk in un
computer.
Memory (meno costoso): nel contratto stesso,
per il tempo della sua durata. Viene assegnato
a un contratto ogni volta che invia una
transazione, paragonabile al concetto di RAM in
un computer.
Stack: dove avvengono i calcoli computazionali.
MEMORIZZAZIONE DI CONTENUTO
Solidity ammette tre diversi tipologie di
variabile (da non confondere con il tipo, c.d.
«type»).
Local: variabili il cui valore è presente solo
finché viene eseguita la funzione.
State: variabili il cui valore è presente nello
«storage» del contratto.
Global: variabili che prescindono dalla singola
funzione o contratto, e restituiscono
informazioni rispetto alle transazioni o alla
Blockchain.
ATTENZIONE quando scegliamo il nome di una
variabile: case sensitive, global e numeri non
sono ammessi come valori iniziali.
VARIABILE
Codice eseguibile contenuto nel contratto. Le
funzioni accettano Parametri e ritornano
Variabili.
La sintassi base di una funzione è la seguente:
function nomeDellaFunzione(listaDeiParametri)
visibilità pagabilità {
contenuto;
}
FUNZIONE
VISIBILITÀ DI UNA FUNZIONE
public
possono essere chiamate sia
internamente da altre funzioni
sia esternamente da altre
transazioni.
private
possono essere chiamate solo
all’interno del contratto in
cui sono presenti.
internal
visibili solo all’interno e
non all’esterno del contratto.
Queste funzioni non eseguono
una chiamata alla EVM.
external
visibili solo all’esterno e
non all’interno del contratto.
Queste funzioni eseguono una
chiamata alla EVM.
Una funzione può avere diversi comportamenti:
tra gli altri si distinguono le funzione pure
da quelle view.
Una funzione view può essere usata per leggere
un determinato stato del contratto ma non può
in alcun modo modificarlo.
Una funzione pure non può essere usata né per
leggere né per modificare uno stato del
contratto.
COMPORTAMENTO DI UNA FUNZIONE
Il costrutto (o costruttore) è una speciale
categoria di Funzione che viene definito con la
sintassi seguente:
constructor() visibilità {
contenuto;
}
La particolarità di questa funzione è che viene
eseguita al momento della creazione/deploy del
contratto: è, quindi, particolarmente utile per
eseguire il codice che sia necessario al buon
funzionamento dello stesso.
COSTRUTTO
TESTO SECONDO CONTRATTO
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;
contract Macchinetta {
// PREMESSE
// dichiariamo due variabili (state) del contratto:
// 1) carofiglio, che rappresenta un determinato address
// 2) saldoLibri che tiene conto dei libri disponibili nella macchinetta
address payable public carofiglio;
mapping (address => uint) public saldoLibri;
// INSTALLAZIONE
// quando il contratto Macchinetta è deployato, compie le seguenti operazioni:
// 1) imposta l'address del proprietario: chi ha deployato il contratto ne diventa proprietario
// 2) definisce un numero di libri per iniziare l'attività
constructor() {
carofiglio = msg.sender;
saldoLibri[address(this)] = 170;
}
// ACQUISTO
// una funzione che permette a chiunque di acquistare dei libri
function acquistare(uint ammontare) public payable {
require(msg.value == ammontare * 1 ether, "Necessario inserire 1 ETH per ciascuno libro acquistato!"); // prezzo
require(saldoLibri[address(this)] >= ammontare, "Non ci sono abbastanza libri per completare l'acquisto."); // giacenza di libri
saldoLibri[msg.sender] += ammontare; // aumenta il numero di libri nell'account utente
saldoLibri[address(this)] -= ammontare; // riduce il numero di libri nell'account contratto della Macchinetta
}
// RIFORNIMENTO
// peremette a Carofiglio di aumentare il numero di libri disponibili
function rifornire(uint quantitativo) public {
require(msg.sender == carofiglio, unicode"Solo il proprietario è autorizzato a rifornire la macchinetta.");
saldoLibri[address(this)] += quantitativo; }
}
La variabile di type address è particolarmente
importante perché permette di archiviare un
valore di 20 bytes, pari alla grandezza di un
account Ethereum.
Un address per essere abilitato alla ricezione
di ETH deve essere essere payable.
Il ruolo degli address è fondamentale nel
contesto Ethereum, trattandosi del riferimento
agli account che eseguono una determinate
transazione o interazione sul ledger.
ADDRESS
Mapping è un type che permette di associare
determinati valori ad una parola chiave, la
sintassi relativa, infatti, è:
mapping_(_KeyType => _ValueType)
Un mapping memorizza i dati in modalità
storage.
MAPPING
msg.sender è una variabile global che
restituisce l’indirizzo dell’indirizzo che
effettua una determinate azione.
Al momento del deploy del contratto, il
msg.sender è l’indirizzo che ha effettuato il
deploy.
msg.value è una variabile global che
restituisce il valore (in wei!) inviati in un
determinate messaggio.
msg.sender & msg.value
È una convenience function, che può essere
utilizzata per verificare una condizione
restituire un messaggio se la condizione non è
soddisfatta.
La funzione require permette di garantire la
presenza di condizioni valide rilevabili solo
al momento dell’esecuzione del contratto.
REQUIRE
Assignment oeprators, ad esempio: += oppure -=.
Questi operatori permettono di incrementare o
diminuire di un dato valore ciascun operand. Ad
esempio X += Y aggiunge il valore X al valore
Y.
Comparison operators, ad esempio: >= oppure <=.
Questi operatori permettono di verificare che
due determinati valori abbiano un certo
rapporto predefinito. Ad esempio X >= Y: X è
maggiore o uguale a Y.
OPERATORS
Quando una funzione o un address devono essere
in grado ricevere una somma ETH, è necessario
dichiararli payable.
il compiler che incontri delle istruzioni tali
per cui una determina funzione o un address
ricevono una somma di ETH senza che vi sia la
suddetta dichiarazione, impedirà di compilare
il contratto.
PAYABLE
TOO LONG: DIDN’T READ
- Ethereum è una Blockchain che molto simile a quella di
Bitcoin.
- Oltre a semplici transazioni, Ethereum – attraverso la
EVM – permette di abilitare l’utilizzo di smart contract e
applicazioni decentralizzate, attraverso l’uso di token e
linguaggi di programmazione specifici.
- La EVM funziona grazie ai full nodes che ne
garantiscono la sicurezza e la resilienza, questi vengono
remunerati da una gas fee, pagata dagli account esterni
che intendono fare una transazione.
- Gli smart contract sono account contratto che hanno
caratteristiche molto simili a quelle di una macchinetta
de caffè.
- Esistono diversi linguaggi per scrivere gli smart contract,
quello più utilizzato è Solidity, che deriva parte del suo
funzionamento e della sua sintassi da Javascript.
- Il giurista ha un ruolo fondamentale in questo contesto:
capire il funzionamento delle transazioni e l’interazione
degli address permette di comprendere il corretto
approccio normativo.
ASK ME ANYTHING

More Related Content

What's hot

Smau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICToSmau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICTo
SMAU
 
Smau Padova 2019 Giovanni Brancalion Spadon
Smau Padova 2019 Giovanni Brancalion SpadonSmau Padova 2019 Giovanni Brancalion Spadon
Smau Padova 2019 Giovanni Brancalion Spadon
SMAU
 
Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset  Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset
Giulia Aranguena
 
Workshop 20092019 Lisi - Creazione di uno smart contract
Workshop 20092019 Lisi - Creazione di uno smart contractWorkshop 20092019 Lisi - Creazione di uno smart contract
Workshop 20092019 Lisi - Creazione di uno smart contract
Rocco Baccelliere
 
Firme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazione Firme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazione
Digital Law Communication
 
Blockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuitaBlockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuita
Mario Gentili
 
Firme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazioneFirme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazioneSMAU
 
Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...
Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...
Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...
GiovanniRinaldi12
 
Luca Scotto - SMAU Napoli 2017
Luca Scotto - SMAU Napoli 2017Luca Scotto - SMAU Napoli 2017
Luca Scotto - SMAU Napoli 2017
SMAU
 
Paolo Lessio, Processo Civile Telematico 2
Paolo Lessio, Processo Civile Telematico 2Paolo Lessio, Processo Civile Telematico 2
Paolo Lessio, Processo Civile Telematico 2
Andrea Rossetti
 
Noonic Guides - Tecnologia Blockchain
Noonic Guides - Tecnologia BlockchainNoonic Guides - Tecnologia Blockchain
Noonic Guides - Tecnologia Blockchain
Noonic Agency
 
02 - Paolo Lessio, Processo civile telematico
02 - Paolo Lessio, Processo civile telematico02 - Paolo Lessio, Processo civile telematico
02 - Paolo Lessio, Processo civile telematicoAndrea Rossetti
 
SMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitali
SMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitaliSMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitali
SMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitali
Gianluca Satta
 
Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...
Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...
Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...
Digital Law Communication
 
White paper smart contracts 3
White paper smart contracts 3White paper smart contracts 3
White paper smart contracts 3
Vincenzo Rocco
 
Infografica Blockchain for Business
Infografica Blockchain for BusinessInfografica Blockchain for Business
Infografica Blockchain for Business
Casaleggio Associati
 
La dematerializzazione dell'assegno bancario
La dematerializzazione dell'assegno bancarioLa dematerializzazione dell'assegno bancario
La dematerializzazione dell'assegno bancario
Digital Law Communication
 

What's hot (17)

Smau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICToSmau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICTo
 
Smau Padova 2019 Giovanni Brancalion Spadon
Smau Padova 2019 Giovanni Brancalion SpadonSmau Padova 2019 Giovanni Brancalion Spadon
Smau Padova 2019 Giovanni Brancalion Spadon
 
Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset  Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset
 
Workshop 20092019 Lisi - Creazione di uno smart contract
Workshop 20092019 Lisi - Creazione di uno smart contractWorkshop 20092019 Lisi - Creazione di uno smart contract
Workshop 20092019 Lisi - Creazione di uno smart contract
 
Firme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazione Firme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazione
 
Blockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuitaBlockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuita
 
Firme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazioneFirme elettroniche, grafometria e processi di conservazione
Firme elettroniche, grafometria e processi di conservazione
 
Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...
Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...
Giovanni Rinaldi - Smart contract:meccanizzazione del contratto nel paradigma...
 
Luca Scotto - SMAU Napoli 2017
Luca Scotto - SMAU Napoli 2017Luca Scotto - SMAU Napoli 2017
Luca Scotto - SMAU Napoli 2017
 
Paolo Lessio, Processo Civile Telematico 2
Paolo Lessio, Processo Civile Telematico 2Paolo Lessio, Processo Civile Telematico 2
Paolo Lessio, Processo Civile Telematico 2
 
Noonic Guides - Tecnologia Blockchain
Noonic Guides - Tecnologia BlockchainNoonic Guides - Tecnologia Blockchain
Noonic Guides - Tecnologia Blockchain
 
02 - Paolo Lessio, Processo civile telematico
02 - Paolo Lessio, Processo civile telematico02 - Paolo Lessio, Processo civile telematico
02 - Paolo Lessio, Processo civile telematico
 
SMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitali
SMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitaliSMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitali
SMAU Torino 2016 - SPID: Le nuove frontiere delle identità digitali
 
Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...
Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...
Il progetto di dematerializzazione degli assegni: contenuti, profili di atten...
 
White paper smart contracts 3
White paper smart contracts 3White paper smart contracts 3
White paper smart contracts 3
 
Infografica Blockchain for Business
Infografica Blockchain for BusinessInfografica Blockchain for Business
Infografica Blockchain for Business
 
La dematerializzazione dell'assegno bancario
La dematerializzazione dell'assegno bancarioLa dematerializzazione dell'assegno bancario
La dematerializzazione dell'assegno bancario
 

Similar to Blockchain e smart contract (Lorenzo Piatti, feb.2021)

BLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdf
BLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdfBLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdf
BLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdf
MattiaFranzoni2
 
BlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuitoBlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuito
Ninja Academy
 
Progetto CASCO.pdf
Progetto CASCO.pdfProgetto CASCO.pdf
Progetto CASCO.pdf
Sardegna Ricerche
 
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
Giulia Aranguena
 
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Stefano Saladino
 
Smart contract
Smart contractSmart contract
Smart contract
Maria Giovanna Ruscito
 
Cryptoasset compliance blockchain month 2021
Cryptoasset compliance blockchain month 2021Cryptoasset compliance blockchain month 2021
Cryptoasset compliance blockchain month 2021
Giulia Aranguena
 
La mia tesi di laurea triennale - Beato Gianmarco
La mia tesi di laurea triennale  - Beato GianmarcoLa mia tesi di laurea triennale  - Beato Gianmarco
La mia tesi di laurea triennale - Beato Gianmarco
Gianmarco Beato
 
Blockchain per la PA
Blockchain per la PABlockchain per la PA
Blockchain per la PA
Manuel Rafeli
 
Come la Blockchain rivoluzionerà il turismo
Come la Blockchain rivoluzionerà il turismoCome la Blockchain rivoluzionerà il turismo
Come la Blockchain rivoluzionerà il turismo
Domenico Palladino
 
Blockchain essenziale
Blockchain essenzialeBlockchain essenziale
Blockchain essenziale
Federico Bo
 
Blockchain for Business Innova4_
Blockchain for Business Innova4_Blockchain for Business Innova4_
Blockchain for Business Innova4_
Massimo Formica
 
Incontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChainIncontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChain
mobi-TECH
 
Professor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - BlockchainProfessor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - Blockchain
Marco Turolla
 
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Roberta De Matteo
 
Touchatag un&#039;applicazione di internet delle cose 2010-11-10
Touchatag  un&#039;applicazione di internet delle cose   2010-11-10Touchatag  un&#039;applicazione di internet delle cose   2010-11-10
Touchatag un&#039;applicazione di internet delle cose 2010-11-10Ionela
 
Blockchain meets business: applications, problems and solutions - Stefano Cap...
Blockchain meets business: applications, problems and solutions - Stefano Cap...Blockchain meets business: applications, problems and solutions - Stefano Cap...
Blockchain meets business: applications, problems and solutions - Stefano Cap...
Data Driven Innovation
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di Milano
Donato Faioli
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di Milano
Donato Faioli
 
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
MOCA Interactive
 

Similar to Blockchain e smart contract (Lorenzo Piatti, feb.2021) (20)

BLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdf
BLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdfBLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdf
BLOCKCHAIN-CRIPTOVALUTE-E-DIRITTO-Validita-legale.pdf
 
BlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuitoBlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuito
 
Progetto CASCO.pdf
Progetto CASCO.pdfProgetto CASCO.pdf
Progetto CASCO.pdf
 
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
 
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
 
Smart contract
Smart contractSmart contract
Smart contract
 
Cryptoasset compliance blockchain month 2021
Cryptoasset compliance blockchain month 2021Cryptoasset compliance blockchain month 2021
Cryptoasset compliance blockchain month 2021
 
La mia tesi di laurea triennale - Beato Gianmarco
La mia tesi di laurea triennale  - Beato GianmarcoLa mia tesi di laurea triennale  - Beato Gianmarco
La mia tesi di laurea triennale - Beato Gianmarco
 
Blockchain per la PA
Blockchain per la PABlockchain per la PA
Blockchain per la PA
 
Come la Blockchain rivoluzionerà il turismo
Come la Blockchain rivoluzionerà il turismoCome la Blockchain rivoluzionerà il turismo
Come la Blockchain rivoluzionerà il turismo
 
Blockchain essenziale
Blockchain essenzialeBlockchain essenziale
Blockchain essenziale
 
Blockchain for Business Innova4_
Blockchain for Business Innova4_Blockchain for Business Innova4_
Blockchain for Business Innova4_
 
Incontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChainIncontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChain
 
Professor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - BlockchainProfessor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - Blockchain
 
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
 
Touchatag un&#039;applicazione di internet delle cose 2010-11-10
Touchatag  un&#039;applicazione di internet delle cose   2010-11-10Touchatag  un&#039;applicazione di internet delle cose   2010-11-10
Touchatag un&#039;applicazione di internet delle cose 2010-11-10
 
Blockchain meets business: applications, problems and solutions - Stefano Cap...
Blockchain meets business: applications, problems and solutions - Stefano Cap...Blockchain meets business: applications, problems and solutions - Stefano Cap...
Blockchain meets business: applications, problems and solutions - Stefano Cap...
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di Milano
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di Milano
 
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
 

More from Simone Aliprandi

Domande e risposte su AI (Commissione Europea, 12 dic 2023)
Domande e risposte su AI (Commissione Europea, 12 dic 2023)Domande e risposte su AI (Commissione Europea, 12 dic 2023)
Domande e risposte su AI (Commissione Europea, 12 dic 2023)
Simone Aliprandi
 
Order on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AI
Order on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AIOrder on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AI
Order on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AI
Simone Aliprandi
 
A new concept of creativity: intellectual property issues around generative A...
A new concept of creativity: intellectual property issues around generative A...A new concept of creativity: intellectual property issues around generative A...
A new concept of creativity: intellectual property issues around generative A...
Simone Aliprandi
 
Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...
Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...
Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...
Simone Aliprandi
 
Errata corrige per il libro "L'autore artificiale" di Simone Aliprandi
Errata corrige per il libro "L'autore artificiale" di Simone AliprandiErrata corrige per il libro "L'autore artificiale" di Simone Aliprandi
Errata corrige per il libro "L'autore artificiale" di Simone Aliprandi
Simone Aliprandi
 
Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)
Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)
Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)
Simone Aliprandi
 
Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...
Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...
Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...
Simone Aliprandi
 
AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)
AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)
AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)
Simone Aliprandi
 
Trasformazione digitale e open government: una panoramica delle questioni giu...
Trasformazione digitale e open government: una panoramica delle questioni giu...Trasformazione digitale e open government: una panoramica delle questioni giu...
Trasformazione digitale e open government: una panoramica delle questioni giu...
Simone Aliprandi
 
AI copyright notice by USA Copyright Office (March 10, 2023)
AI copyright notice by USA Copyright Office (March 10, 2023)AI copyright notice by USA Copyright Office (March 10, 2023)
AI copyright notice by USA Copyright Office (March 10, 2023)
Simone Aliprandi
 
Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...
Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...
Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...
Simone Aliprandi
 
Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...
Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...
Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...
Simone Aliprandi
 
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Simone Aliprandi
 
La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...
La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...
La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...
Simone Aliprandi
 
Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...
Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...
Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...
Simone Aliprandi
 
Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...
Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...
Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...
Simone Aliprandi
 
Diritto d’autore e licenze open (Università di Urbino, giugno 2022)
Diritto d’autore e licenze open (Università di Urbino, giugno 2022)Diritto d’autore e licenze open (Università di Urbino, giugno 2022)
Diritto d’autore e licenze open (Università di Urbino, giugno 2022)
Simone Aliprandi
 
Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)
Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)
Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)
Simone Aliprandi
 
A guidebook to the metaverse (by Bitkom, 2022)
A guidebook to the metaverse (by Bitkom, 2022)A guidebook to the metaverse (by Bitkom, 2022)
A guidebook to the metaverse (by Bitkom, 2022)
Simone Aliprandi
 
Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...
Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...
Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...
Simone Aliprandi
 

More from Simone Aliprandi (20)

Domande e risposte su AI (Commissione Europea, 12 dic 2023)
Domande e risposte su AI (Commissione Europea, 12 dic 2023)Domande e risposte su AI (Commissione Europea, 12 dic 2023)
Domande e risposte su AI (Commissione Europea, 12 dic 2023)
 
Order on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AI
Order on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AIOrder on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AI
Order on motion to dismiss and strike | 30 Oct. 2023 | Andersen vs Stablity AI
 
A new concept of creativity: intellectual property issues around generative A...
A new concept of creativity: intellectual property issues around generative A...A new concept of creativity: intellectual property issues around generative A...
A new concept of creativity: intellectual property issues around generative A...
 
Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...
Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...
Intelligenza artificiale generativa e diritto autore (Open Science Cafè, sett...
 
Errata corrige per il libro "L'autore artificiale" di Simone Aliprandi
Errata corrige per il libro "L'autore artificiale" di Simone AliprandiErrata corrige per il libro "L'autore artificiale" di Simone Aliprandi
Errata corrige per il libro "L'autore artificiale" di Simone Aliprandi
 
Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)
Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)
Anteprima del libro "L'autore artificiale" di Simone Aliprandi (2023)
 
Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...
Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...
Il robot artista: quali rapporti tra intelligenza artificiale proprietà intel...
 
AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)
AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)
AI e diritti d’autore nel giornalismo (Firenze, marzo 2023)
 
Trasformazione digitale e open government: una panoramica delle questioni giu...
Trasformazione digitale e open government: una panoramica delle questioni giu...Trasformazione digitale e open government: una panoramica delle questioni giu...
Trasformazione digitale e open government: una panoramica delle questioni giu...
 
AI copyright notice by USA Copyright Office (March 10, 2023)
AI copyright notice by USA Copyright Office (March 10, 2023)AI copyright notice by USA Copyright Office (March 10, 2023)
AI copyright notice by USA Copyright Office (March 10, 2023)
 
Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...
Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...
Corso di formazione su diritto d'autore, copyright e licenze aperte per il pe...
 
Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...
Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...
Tutela dei beni culturali e lo strano caso Studi d'Arte Cave Michelangelo (ap...
 
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
 
La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...
La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...
La nuova direttiva copyright e le novità in materia di ricerca (Open Science ...
 
Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...
Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...
Questioni di diritto d'autore e Digital Library (Università di Bologna - Sede...
 
Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...
Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...
Il diritto d'autore sui beni culturali: le norme, le licenze e la gestione de...
 
Diritto d’autore e licenze open (Università di Urbino, giugno 2022)
Diritto d’autore e licenze open (Università di Urbino, giugno 2022)Diritto d’autore e licenze open (Università di Urbino, giugno 2022)
Diritto d’autore e licenze open (Università di Urbino, giugno 2022)
 
Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)
Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)
Gli ambiti giuridici correlati alla trasformazione digitale (TSM, ottobre 2022)
 
A guidebook to the metaverse (by Bitkom, 2022)
A guidebook to the metaverse (by Bitkom, 2022)A guidebook to the metaverse (by Bitkom, 2022)
A guidebook to the metaverse (by Bitkom, 2022)
 
Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...
Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...
Ordinanza Tribunale di Firenze Ministero Cultura vs Cave Michelangelo (apr. 2...
 

Blockchain e smart contract (Lorenzo Piatti, feb.2021)

  • 2. LORENZO PIATTI GIURISTA CULTORE DELLA MATERIA IN UNIMI CONSULENTE IN INFOCERT ENTUSIASTA DI BLOCKCHAIN & IOT
  • 3. SMART CONTRACT B C NORMATIVA BITCOIN E DLT A AGENDA GDPR D ETHEREUM E CODING
  • 4. D ETHEREUM E CODING A BITCOIN E DLT Questa parte analizza molto brevemente cos’è Bitcoin e perché è una tecnologia rilevante per comprendere appieno il funzionamento e il potenziale della Blockchain o – più in generale – delle Decentralized Ledger Technologies (da qui in avanti DLT). In primo luogo si cerca di mettere a fuoco gli aspetti che stanno alla base della rivoluzione filosofica e tecnologica di Bitcoin: sovranità monetaria, decentralizzazione e Web3. L’analisi si focalizza successivamente sull’aspetto più rilevante per la discussione sugli smart contract: il wallet. SMART CONTRACT B C NORMATIVA
  • 5. D ETHEREUM E CODING C BITCOIN E DLT A Cos’è uno smart contract? Questa sezione cerca di rispondere a questa domanda, sia dal punto di vista tecnologico sia da quello giuridico. Questa sezione affronta anche brevemente l’evoluzione del contratto informatico per arrivare a descrivere il funzionamento e l’essenza – anche giuridica – degli smart contracts. Questa sezione è fortemente legata alla precedente: la principale differenza tra gli smart contract e il contratto informatico risiede nel fatto che il primo si appoggia a un sistema decentralizzato per il proprio funzionamento. B SMART CONTRACT NORMATIVA
  • 6. D ETHEREUM E CODING SMART CONTRACT B A In questa sezione analizziamo i pochi frammenti normativi che il legislatore nazionale prevede in tema di smart contract e DLT. Seppur incompleto, l’apporto del legislatore nazionale è essenziale per comprendere quali siano le intenzioni – anche strategiche – del nostro Paese sulle nuove tecnologie. Il quadro normativo è importante per comprendere come le prime due sezioni possano validamente calarsi nel contesto giuridico nazionale. C NORMATIVA BITCOIN E DLT
  • 7. C NORMATIVA E CODING SMART CONTRACT B A In questa sezione cominciamo a spostarci verso la parte pratica dell’agenda: cominciamo a conoscere la piattaforma che permette il funzionamento degli smart contracts, Ethereum. La parte di coding presuppone conoscere la piattaforma su cui andremo a operare, le sue logiche, nonché la sua semantica. Ethereum non è l’unica Blockchain che permette di scrivere e interagire con gli smart contract, ma risulta essere la più utilizzata e malleabile: grazie alle sue funzioni di test, in questa parte cominciamo a vedere qualche esempio pratico di transazione e rapporto tra wallets. BITCOIN E DLT D ETHEREUM
  • 8. C NORMATIVA D ETHEREUM SMART CONTRACT B A Cosa facciamo: proviamo il funzionamento di alcuni smart contract contracts sfruttando la IDE remix, un tool che ci permette di scrivere, compilare e deployare i nostri smart contracts. Scriveremo e proveremo a interagire con due diverse tipologie di smart contract. Impariamo ad usare Solidity, senza entrare nel dettaglio di ogni aspetto di questo linguaggio. Cosa NON facciamo: remix ci permette di fare pratica in un ambiente di test, replicando – con ETH fittizi – il funzionamento di Ethereum. Non affronteremo aspetti legati alla sicurezza o alla pulizia del codice: argomenti fondamentali un programmatore, ma non essenziali per toccare con mano il funzionamento di uno smart contract. E CODING BITCOIN E DLT
  • 11.
  • 12. UNA PRIMA DEFINIZIONE Protocollo aperto, interoperabile, non controllato da un soggetto centrale (decentralizzato), le cui componenti tecnologiche sono già presenti in modo non articolato in ambito accademico negli anni 80- 90. I concetti principali sono transazioni, nodi e rete.
  • 14. BITCOIN BLOCKCHAIN Open source Permissionless e public Pseudonima e trasparente Abilita la scarsità digitale Disintermediata grazie al consenso decentralizzato (Immutabile) Globale
  • 15. Wallet BITCOIN WALLET Il portafoglio (o wallet) è lo strumento tecnologico che permette ai partecipanti della rete di scambiare bitcoin, o - in generale - una criptomoneta, altro tipo di valore o informazione. online mobile desktop hardware paper
  • 16. Wallet BITCOIN WALLET Il portafoglio (o wallet) è lo strumento tecnologico che permette ai partecipanti della rete di scambiare bitcoin, o - in generale - una criptomoneta, altro tipo di valore o informazione. online mobile desktop hardware paper
  • 18. 1980-2001 strumentale EVOLUZIONE DEL CONTRATTO INFORMATICO telematica autómata 2002-2019 2020-…
  • 19. STRUMENTALE Il computer è una tecnologia di supporto: chi lo utilizza si limita a redigere i contratti su applicativi di video-scrittura per poi stamparli. novità stampa carta parti Questa fase segna il passaggio dalla meccanica all’elettronica: aziende e professionisti approcciano al computer come un mero assistente operativo. Il mezzo utilizzato per concludere i contratti è la carta: il supporto è ancora un aspetto centrale delle trattative. Le parti non hanno modo di concludere contratti a distanza: le reti e la comunicazione sono appannaggio di applicazioni industriali e finanziarie.
  • 20. TELEMATICA Il legislatore (italiano prima ed europeo dopo) permettono la digitalizzazione dei rapporti contrattuali con strumenti come PEC e Firma Digitale. invio firma online PCT Le comunicazione sono per la maggior parte dematerializzate: il mercato finanziario prima e quello giuridico poi sviluppano strumenti sicuri di invio documentazione digitale. Le parti si incontrano, dialogano, negoziano e concludono i contratti online: l’esecuzione delle obbligazioni è spesso ancora offline. Le procedure vengono digitalizzate: per primo il Processo Civile Telematico (PCT) a seguire quello amministrativo e quello penale.
  • 21. Nick Szabo è il tecnico-giurista che – nel 1998 – ha teorizzato l’esecuzione automatica dei rapporti obbligatori tra le parti. AUTÓMATA ERC-20 Szabo ? cos’è? Ethereum Request for Comment n. 20 è il primo standard di smart contract su cui si sono sviluppi i concetti di tokenizzazione e automazione contrattuale diffusa. Uno smart contract è un insieme di istruzioni informatiche, la cui esecuzione dipende dall’avverarsi di determinate condizioni. Quando uno smart contract soddisfa i requisiti di cui all’art. 1321 c.c. (o altra normativa di riferimento), si parla di smart legal contract. 1321c.c.
  • 22. TOKEN
  • 23. usage vs work tokens valore unità minima di diritto smart contract ICO
  • 25. Reintroduce il concetto di terza parte fidata: lo smart contract si relaziona con un’entità esterna di cui si fida nel rispetto di determinate logiche Oracoli decentralizzati? Persona fisica, persona giuridica o oggetto Fonte di informazioni che servono allo smart-contract per funzionare ORACOLO
  • 28. LEGGE DI CONVERSIONE DEL D.L. N. 135/2018 definizione valore giuridico linee guida (11 febbraio 2019)
  • 29. DEFINIZIONE SMART CONTRACT 2. Si definisce "smart contract" un programma per elaboratore che opera su tecnologie basate su registri distribuiti e la cui esecuzione vincola automaticamente due o più parti sulla base di effetti predefiniti dalle stesse. Gli smart contract soddisfano il requisito della forma scritta previa identificazione informatica delle parti interessate, attraverso un processo avente i requisiti fissati dall'Agenzia per l'Italia digitale con linee guida da adottare entro novanta giorni dalla data di entrata in vigore della legge di conversione del presente decreto.
  • 30. DEFINIZIONE SMART CONTRACT 2. Si definisce "smart contract" un programma per elaboratore che opera su tecnologie basate su registri distribuiti e la cui esecuzione vincola automaticamente due o più parti sulla base di effetti predefiniti dalle stesse. Gli smart contract soddisfano il requisito della forma scritta previa identificazione informatica delle parti interessate, attraverso un processo avente i requisiti fissati dall'Agenzia per l'Italia digitale con linee guida da adottare entro novanta giorni dalla data di entrata in vigore della legge di conversione del presente decreto.
  • 31. TOO LONG: DIDN’T READ - Bitcoin whitepaper: reso pubblico nel 2008, da Satoshi Nakatomoto, un personaggio misterioso che l’anno successivo trasmette la prima transazione. - Da allora, Bitcoin è stato dichiarato morto 389 volte, diventando la prima e più longeva criptomoneta e aumentandone incredibilmente il valore. - Bitcoin è un’applicazione che poggia su un registro decentralizzato: la Blockchain, un particolare tipo di DLT. - Nel contesto delle DLT sono nati gli smart contract: un particolare tipo di software che può assumere rilevanza legale (in questo caso si parla di smart legal contract). - Lo smart legal contract è il picco dell’evoluzione del contratto informatico e formalizza la fase autómata, che segue quella telematica e quella strumentale. - Il legislatore italiano regola in parte la materia degli smart contract: il meglio deve ancora venire. - Perché dovrebbe interessarmi?
  • 33. ETHEREUM BLOCKCHAIN Abilita le dApp e DAO EVM & fees Ether Token e ICO Solidity Simile alla Bitcoin Blockchain Smart contracts
  • 34. Ethereum Virtual Machine (EVM): un computer virtuale globale, il cui stato è registrato da ogni nodo che compone la Blockchain di Ethereum. Transaction: una transazione è una richiesta inviata da un account verso la EVM per compiere del lavoro computazionale. Una volta che la transazione è verificata, validata e eseguita dalla rete, questa modifica lo stato della EVM. Ethereum, quindi, è semplicemente un database decentralizzato su una determinata rete che registra le transazioni che alterano il suo stato. DEFINIZIONE
  • 35. Wallet Questi concetti sono comuni a diverse soluzioni DLT, ma nella Blockchain Ethereum hanno un ruolo fondamentale ed è importante definirne correttamente il perimetro. nodo smart contract account transazione gas SEI CONCETTI CHIAVE rete
  • 36. Un Account Ethereum è un oggetto informatico con un saldo in Ether (ETH) che può fare transazioni sulla Rete Ethereum. Un Account può: - Ricevere ETH. - Trattenere ETH. - Inviare ETH. - Interagire con uno smart contract. Un Account si differenzia dal Wallet perché quest’ultimo è lo strumento che permette all’utente di interagire con il proprio Account. ACCOUNT 1/2
  • 37. Ci sono due diversi tipi di account: a) Account Esterno (externally-owned account), la cui creazione è gratuita. Le transazioni tra Account Esterni possono essere solo transazioni di ETH. b) Account Contratto (contract account), la cui creazione ha un costo, in considerazione del fatto che viene utilizzato dello spazio nella EVM. Questo account può compiere transazioni solo se a sua volta ha ricevuto una transazione: questa operazione può generare diverse conseguenze, come la creazione di token, di un altro Account Contratto o qualsiasi cosa sia prevista dalle istruzioni che contiene. ACCOUNT 2/2
  • 38. Insieme di hardware e software (c.d. client) che ha lo scopo di verificare i blocchi e i dati delle transazioni, nonché di firmare le transazioni. Esistono tre diversi tipi di nodi: a) Full node: partecipa alla validazione dei blocchi, verifica tutti i blocchi e gli stati, nonché archivia l’intera Blockchain. b) Light node: archivia la catena degli headers e può verificare la validità dei dati rispetto a quanto contenuto nei block headers (identificativo del blocco). c) Archive: archivia tutti gli stati di un full node. NODO
  • 39. Quando un account (c.d. «esterno») intende modificare lo stato della EVM, emette e firma crittograficamente un’istruzione, più o meno complessa. L’account non parla direttamente con la rete: ha bisogno di un nodo che trasmetta la sua richiesta. La transazione, oltre ad essere trasmessa deve: - Essere minata all’interno di un blocco, e - Contenere una gas fee. TRANSAZIONE 1/2
  • 40. La transazione ha i seguenti requisiti: 1) recipient: l'indirizzo del destinatario, qualora si tratti di un account esterno (externally-owned account) la transazione trasferirà il valore della transazione. Se si tratta di un account contratto (contract account), la transazione eseguirà il codice del contratto. 2) signature: l'identificativo del mittente. Questo viene generato quando la chiave privata del mittente firma la transazione e conferma che il mittente ha autorizzato la transazione. 3) value: importo di ETH da trasferire dal mittente al destinatario. 4) data: campo opzionale per includere dati. 5) gasLimit: a quantità massima di unità di gas che può essere consumata dalla transazione. 6) gasPrice: prezzo per unità di gas. TRANSAZIONE 2/2
  • 41. CICLO VITA DELLA TRANSAZIONE INVIO DELLA TRANSAZIONE 1
  • 42. CICLO VITA DELLA TRANSAZIONE INVIO DELLA TRANSAZIONE TRASMISSIONE E POOL 1 2
  • 43. CICLO VITA DELLA TRANSAZIONE INVIO DELLA TRANSAZIONE TRASMISSIONE E POOL VERIFICA DELLA TRANSAZIONE 1 2 3
  • 44. CICLO VITA DELLA TRANSAZIONE INVIO DELLA TRANSAZIONE TRASMISSIONE E POOL VERIFICA DELLA TRANSAZIONE INSERIMENTO IN UN BLOCCO 1 2 3 4
  • 45. CICLO VITA DELLA TRANSAZIONE INVIO DELLA TRANSAZIONE TRASMISSIONE E POOL VERIFICA DELLA TRANSAZIONE INSERIMENTO IN UN BLOCCO FASE DI CONFERMA 1 2 3 4 5
  • 46. Unità che misura lo sforzo computazionale richiesto per le operazioni all’interno della EVM e retribuisce i miners. Ogni transazione richiede risorse computazionali, quindi ogni transazione richiede un certo ammontare di gas. Il gas abilita la scarsità su Ethereum e permette di evitare inefficienze, come spam, codice eccessivamente dispendioso oppure cicli malevoli. il gas ha un prezzo (gas price) espresso in Gwei e valutato in base ad un’unità minima: per ciascuna transazione viene calcolata la relativa gas fee e un gas limit. GAS
  • 47. L’insieme dei nodi che compone l’ecosistema Ethereum crea diverse reti su cui è possibile scambiare transazioni. Queste reti sono pubbliche e si differenziano per nome e caratteristiche: a) Mainnet: rete Ethereum «di produzione». Su questa rete ci sono veri. b) Testnets: Ropsten, Kovan, Görli e Rinkeby. reti «di collaudo» che permettono di provare il funzionamento della EVM, ciascuna con logiche di consenso differenti. Su queste reti ci sono soldi finti. Gli ETH per le Testnets vengono generati da apposite «Faucets». RETE
  • 48. Un programma eseguito sulla Blockchain di Ethereum. Uno smart contract è composto di: 1) codice: le istruzioni per il suo funzionamento, e 2) dati: lo stato del contratto stesso. Ciascuno smart contract ha un suo specifico indirizzo, il c.d. «contract account»: ha, quindi, anche un saldo in ETH. SMART CONTRACT
  • 50. SCRITTURA IN LINGUAGGIO CICLO VITA DELLO SMART CONTRACT 1
  • 51. SCRITTURA IN LINGUAGGIO CICLO VITA DELLO SMART CONTRACT COMPILAZIONE (BYTECODE E ABI) 1 2
  • 52. SCRITTURA IN LINGUAGGIO CICLO VITA DELLO SMART CONTRACT COMPILAZIONE (BYTECODE E ABI) DEPLOY 1 2 3
  • 53. SCRITTURA IN LINGUAGGIO CICLO VITA DELLO SMART CONTRACT COMPILAZIONE (BYTECODE E ABI) DEPLOY UTILIZZO 1 2 3 4
  • 54. SCRITTURA IN LINGUAGGIO CICLO VITA DELLO SMART CONTRACT COMPILAZIONE (BYTECODE E ABI) DEPLOY UTILIZZO DISTRUZIONE 1 2 3 4 5
  • 56.
  • 57.
  • 60. // SPDX-License-Identifier: UNLICENSED //definisce la versione di solidity utilizzata pragma solidity ^0.7.0; // contenuto del contratto "HelloWorld" contract HelloWorld { string variabile; // costrutto, un particolare tipo di funzione, che definisce un valore di default per la variabile "variabile" constructor() { variabile = "legalCoders"; } // funzione che permette di leggere il valore della variabile "variabile" function get() public view returns(string memory) { return variabile; } //funzione che permette di definire un valore per la variabile "variabile" function set(string memory _variabileCheVaria) public { variabile = _variabileCheVaria; } } TESTO PRIMO CONTRATTO
  • 61. La EVM ha tre luoghi dove archiviare i dati, ciascuno con differenti funzioni e limiti. Storage (costoso): sulla Blockchain, per il tempo in cui la stessa è accessibile. Ogni contratto ha un proprio storage, dove salvare gli elementi necessari al suo funzionamento. Paragonabile al concetto di hard disk in un computer. Memory (meno costoso): nel contratto stesso, per il tempo della sua durata. Viene assegnato a un contratto ogni volta che invia una transazione, paragonabile al concetto di RAM in un computer. Stack: dove avvengono i calcoli computazionali. MEMORIZZAZIONE DI CONTENUTO
  • 62. Solidity ammette tre diversi tipologie di variabile (da non confondere con il tipo, c.d. «type»). Local: variabili il cui valore è presente solo finché viene eseguita la funzione. State: variabili il cui valore è presente nello «storage» del contratto. Global: variabili che prescindono dalla singola funzione o contratto, e restituiscono informazioni rispetto alle transazioni o alla Blockchain. ATTENZIONE quando scegliamo il nome di una variabile: case sensitive, global e numeri non sono ammessi come valori iniziali. VARIABILE
  • 63. Codice eseguibile contenuto nel contratto. Le funzioni accettano Parametri e ritornano Variabili. La sintassi base di una funzione è la seguente: function nomeDellaFunzione(listaDeiParametri) visibilità pagabilità { contenuto; } FUNZIONE
  • 64. VISIBILITÀ DI UNA FUNZIONE public possono essere chiamate sia internamente da altre funzioni sia esternamente da altre transazioni. private possono essere chiamate solo all’interno del contratto in cui sono presenti. internal visibili solo all’interno e non all’esterno del contratto. Queste funzioni non eseguono una chiamata alla EVM. external visibili solo all’esterno e non all’interno del contratto. Queste funzioni eseguono una chiamata alla EVM.
  • 65. Una funzione può avere diversi comportamenti: tra gli altri si distinguono le funzione pure da quelle view. Una funzione view può essere usata per leggere un determinato stato del contratto ma non può in alcun modo modificarlo. Una funzione pure non può essere usata né per leggere né per modificare uno stato del contratto. COMPORTAMENTO DI UNA FUNZIONE
  • 66. Il costrutto (o costruttore) è una speciale categoria di Funzione che viene definito con la sintassi seguente: constructor() visibilità { contenuto; } La particolarità di questa funzione è che viene eseguita al momento della creazione/deploy del contratto: è, quindi, particolarmente utile per eseguire il codice che sia necessario al buon funzionamento dello stesso. COSTRUTTO
  • 67. TESTO SECONDO CONTRATTO // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; contract Macchinetta { // PREMESSE // dichiariamo due variabili (state) del contratto: // 1) carofiglio, che rappresenta un determinato address // 2) saldoLibri che tiene conto dei libri disponibili nella macchinetta address payable public carofiglio; mapping (address => uint) public saldoLibri; // INSTALLAZIONE // quando il contratto Macchinetta è deployato, compie le seguenti operazioni: // 1) imposta l'address del proprietario: chi ha deployato il contratto ne diventa proprietario // 2) definisce un numero di libri per iniziare l'attività constructor() { carofiglio = msg.sender; saldoLibri[address(this)] = 170; } // ACQUISTO // una funzione che permette a chiunque di acquistare dei libri function acquistare(uint ammontare) public payable { require(msg.value == ammontare * 1 ether, "Necessario inserire 1 ETH per ciascuno libro acquistato!"); // prezzo require(saldoLibri[address(this)] >= ammontare, "Non ci sono abbastanza libri per completare l'acquisto."); // giacenza di libri saldoLibri[msg.sender] += ammontare; // aumenta il numero di libri nell'account utente saldoLibri[address(this)] -= ammontare; // riduce il numero di libri nell'account contratto della Macchinetta } // RIFORNIMENTO // peremette a Carofiglio di aumentare il numero di libri disponibili function rifornire(uint quantitativo) public { require(msg.sender == carofiglio, unicode"Solo il proprietario è autorizzato a rifornire la macchinetta."); saldoLibri[address(this)] += quantitativo; } }
  • 68. La variabile di type address è particolarmente importante perché permette di archiviare un valore di 20 bytes, pari alla grandezza di un account Ethereum. Un address per essere abilitato alla ricezione di ETH deve essere essere payable. Il ruolo degli address è fondamentale nel contesto Ethereum, trattandosi del riferimento agli account che eseguono una determinate transazione o interazione sul ledger. ADDRESS
  • 69. Mapping è un type che permette di associare determinati valori ad una parola chiave, la sintassi relativa, infatti, è: mapping_(_KeyType => _ValueType) Un mapping memorizza i dati in modalità storage. MAPPING
  • 70. msg.sender è una variabile global che restituisce l’indirizzo dell’indirizzo che effettua una determinate azione. Al momento del deploy del contratto, il msg.sender è l’indirizzo che ha effettuato il deploy. msg.value è una variabile global che restituisce il valore (in wei!) inviati in un determinate messaggio. msg.sender & msg.value
  • 71. È una convenience function, che può essere utilizzata per verificare una condizione restituire un messaggio se la condizione non è soddisfatta. La funzione require permette di garantire la presenza di condizioni valide rilevabili solo al momento dell’esecuzione del contratto. REQUIRE
  • 72. Assignment oeprators, ad esempio: += oppure -=. Questi operatori permettono di incrementare o diminuire di un dato valore ciascun operand. Ad esempio X += Y aggiunge il valore X al valore Y. Comparison operators, ad esempio: >= oppure <=. Questi operatori permettono di verificare che due determinati valori abbiano un certo rapporto predefinito. Ad esempio X >= Y: X è maggiore o uguale a Y. OPERATORS
  • 73. Quando una funzione o un address devono essere in grado ricevere una somma ETH, è necessario dichiararli payable. il compiler che incontri delle istruzioni tali per cui una determina funzione o un address ricevono una somma di ETH senza che vi sia la suddetta dichiarazione, impedirà di compilare il contratto. PAYABLE
  • 74. TOO LONG: DIDN’T READ - Ethereum è una Blockchain che molto simile a quella di Bitcoin. - Oltre a semplici transazioni, Ethereum – attraverso la EVM – permette di abilitare l’utilizzo di smart contract e applicazioni decentralizzate, attraverso l’uso di token e linguaggi di programmazione specifici. - La EVM funziona grazie ai full nodes che ne garantiscono la sicurezza e la resilienza, questi vengono remunerati da una gas fee, pagata dagli account esterni che intendono fare una transazione. - Gli smart contract sono account contratto che hanno caratteristiche molto simili a quelle di una macchinetta de caffè. - Esistono diversi linguaggi per scrivere gli smart contract, quello più utilizzato è Solidity, che deriva parte del suo funzionamento e della sua sintassi da Javascript. - Il giurista ha un ruolo fondamentale in questo contesto: capire il funzionamento delle transazioni e l’interazione degli address permette di comprendere il corretto approccio normativo.