• Non ci sono risultati.

Ethereum e Smart Contract

N/A
N/A
Protected

Academic year: 2021

Condividi "Ethereum e Smart Contract"

Copied!
27
0
0

Testo completo

(1)

Ethereum e Smart Contract

Francesco Santini

Dipartimento di Matematica e Informatica Università di Perugia

(2)

Ethereum

È definito come il “world computer”

Una infrastruttura decentralizzata di calcolo che esegue programmi, chiamati smart contract

La blockchain serve per memorizare e sincronizzare i cambiamenti di stato dovuti all’esecuzione

La criptovaluta (Ether, Ξ) serve a misurare e limitare i costi dovuti alla computazione

(3)

Comparato a Bitcoin

Molto in comune: è una blockchain, quindi rete P2P, un

algoritmo di consenso per sincronizzare lo stato, incentivi come PoW, l’uso funzioni criptografiche e di funzioni di hash, una criptovaluta

Differenze sostanziali

• Ethereum NON è pensato per pagamenti

• È una piattaforma di calcolo decentralizzato

• La criptovaluta serve solo per utilizzare la piattaforma di calcolo

• Valutazione vero/falso di condizione di spesa (Bitcoin) contro un linguaggio Turing completo (Ethereum)

(4)

Nascita e vita

Vitalik Buterin: fine 2013, quattro anni dopo Bitcoin (3/1/2009) Proposta come sostituzione di un overlay che implementava

smart contract sopra Bitcoin

Frontier

Luglio 2015 Ice Age Homestead

Marzo 2016 DAO

Tangerine Whistle Spurious

Dragon

Metropolis October 2017

Constanti nopole

Serenity October 2019 Feb 2019

Ethereum 2.0

(5)

Bianco contro giallo

(6)

Vitalik vs Satoshi

(7)

Prezzo

21 Marzo, 1 ether = 140 dollari

1385$ 13/1/18

(8)

Bitcoin e BlockChain, conosciamoli meglio

Testnet (MetaMask)

(9)

Bitcoin e BlockChain, conosciamoli meglio

1. Open-source 2. Pubblica

3. Globale

4. Decentralizzata

5. Resistente alle modifiche (immodificabile)

…piattaforma di calcolo

Caratteristiche blockchain

(10)

Bitcoin e BlockChain, conosciamoli meglio

Ogni 10-20 secondi

Node Node Node

Node

Node Node

1. Verifica le transazioni, eseguendo codice 2. Colleziona le transazioni in un blocco

3. Proof-of-work

4. Broadcast gli altri nodi della rete

Block 0 Block 1 Block n

...

Block-chain

miner

(11)

Bitcoin e BlockChain, conosciamoli meglio

Externally Owned Contracts (EOA): sono associati ad una chiave privata, con la quale è possibile accedere al conto

Contract Account: associati ad un contract code (che un EOA non può avere) e non ad una chiave privata. Sono

controllati esclusivamente dalla logica del programma a cui corrispondono.

Tipi di contratti

Contract account EOA esegui(fuzione1,dati)

+ commissione

(12)

Bitcoin e BlockChain, conosciamoli meglio

Basta una transazione ad all’indirizzo 0, ed il campo dati della transazione contiene il contratto

Caricare un contratto

(13)

Bitcoin e BlockChain, conosciamoli meglio

(14)

Bitcoin e BlockChain, conosciamoli meglio

(15)

Bitcoin e BlockChain, conosciamoli meglio

Serve a disaccoppiare le unità di Ether ed il suo valore di

mercato dall’unità per misurare l’uso computazionale (gas).

Una differenza rispetto l’attuale mercato energetico è che

colui che effettua una transazione imposta il prezzo di gas e il minatore può accettare o meno.

L’uso della rete si basa sul Gas che si paga in ETH

Gas Cost: quante unità di gas costa una operazione

Gas Limit: La quantità di Gas massima che siamo disposti a pagare Gas Price: quanto sono disposto a pagare il gas

La commissione è Gas Price * Gas Consumed

Gas

(16)

Bitcoin e BlockChain, conosciamoli meglio

Ethereum è Turing-complete: possono essere eseguiti anche contratti che non terminano

Turing ci dice che non è possibile calcolare se un programma termina oppure no

Il gas serve per proteggere la rete

Prevenire attacchi Denial of Service (DoS)

Perché il gas è importante

(17)

Bitcoin e BlockChain, conosciamoli meglio

Quanto costa un’op?

(18)

Bitcoin e BlockChain, conosciamoli meglio

Stato

Un indirizzo serve a trovare l’account nel World State

0xbfb2e296d9cf3e593e79981235aed29ab9984c0f

Codice

Nonce Stato

Bilancio

Account EOA o contract

clienti = 2 clienti = clienti + 1

1 eth 1

(19)

Bitcoin e BlockChain, conosciamoli meglio

The ima The

image part

World state

clientCount = 2

Balance[cliente1]= 10

clientCount = 3

Balance[cliente1] = 8

1. Iscrizione terzo cliente 2. Cliente 1 ritira 2 ether

(20)

Bitcoin e BlockChain, conosciamoli meglio

World state

Codice

Nonce Stato

Bilancio

Codice

Nonce Stato

Bilancio

Codice

Nonce Stato

Bilancio

. . .

Codice

Nonce Stato

Bilancio

0xbfb2e296d9cf3e593e79981235aed29ab9984c0f 0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7

0x0472ec0185ebb8202f3d4ddb0226998889663cf2

0x123f681646d4a755815f9cb19e1acc8565a0c2ac

(21)

Bitcoin e BlockChain, conosciamoli meglio

Coin e token

Un token è tipicamente un asset che viene ospitato da un’altra blockchain: un esempio sono i token erc20 ospitati dalla

blockchain di Ethereum

Attraverso Smart Contract ognuno può creare e scambiare il proprio token

(22)

Bitcoin e BlockChain, conosciamoli meglio

Una Initial Coin Offer non è nient'altro che una promessa, possibile tramite gli smart contract, di restituire i capitali raccolti tramite dei token. Io, azienda, rilascio

un whitepaper contente il mio business plan e chiedo di essere finanziato, in cambio del finanziamento rilascerò agli investitori dei tokens.

La parola dApp è un acronimo per indicare una applicazione decentralizzata: un software creato attraverso smart

contracts che collegano la blockchain di Ethereum - o di

qualsiasi altra piattaforma idonea - alla back-end di una app.

Social network o advertising su dApp?

ICO e dApp

(23)

Bitcoin e BlockChain, conosciamoli meglio

Videogame basato su blockchain: comprare, collezionare, allevare, vendere gatti virtuali

La sua popolarità ha congesitonato la rete Ethereum: picco per le commissioni e rallentamenti (Dicembre 2017)

Gatto venduto per 117 mila dollari…

Cryptokitties

(24)

Conclusioni

(25)

Bitcoin e BlockChain, conosciamoli meglio

Futuro di Bitcoin, verso reti di secondo livello, come Lightning

Buterin: scalabilità, privacy, e usabilità

Sharding (partizionamento delal blockchain)

Proof of Stake invece che Proof of Work (Casper)

Futuro

Bitcoin: tra 3 e 7 transazioni al secondo Ethereum: 15

Visa: 24K (~1700 in pratica)

(26)

Bitcoin e BlockChain, conosciamoli meglio

Grazie per l’attenzione

Contacts:

francesco.santini@unipg.it

(27)

Bitcoin e BlockChain, conosciamoli meglio

Gli smart contract sono scritti in linguaggi ad alto livello:

Serpent e Vyper (Python), Solidity (Javascript, C++, Java)

Solidity (0.5.x)

pragma solidity ^0.5.6;

contract MyContract { uint i = (10 + 2) * 2;

}

{ "linkReferences": {}, "object":

"60806040526018600055348015601457600080fd5b5060358060226000396000f3fe608060405 2600080fdfea165627a7a7230582026fcdfc358df94bc086b3be715b45b17eba5545e5c957776ba 553e21731913a80029", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x18 PUSH1 0x0 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x22 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 0x26 0xfc 0xdf 0xc3 PC 0xdf SWAP5 0xbc ADDMOD PUSH12 0x3BE715B45B17EBA5545E5C95 PUSH24

0x76BA553E21731913A8002900000000000000000000000000 ", "sourceMap": "24:50:0:-

;;;59:12;50:21;;24:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;24:50:0;;;;;;;"}

Riferimenti

Documenti correlati

[r]

Ma soprattutto continua la rivoluzione digitale del settore: su soluzioni come Smart glass, Workflow scheduling, Load building, RFId, Sensoristica, Dematerializzazione e

The contractor shall provide to the contracting authority a list of pre-existing rights and third parties' rights including its personnel, creators or other right

Results: The acute BCCAO/R procedure is followed by increased brain tissue levels of the eCBs 2-arachidonoylglycerol and anandamide, palmitoylethanolamide, an avid ligand of

” ” The parties hereby agree to modify clause XX The parties hereby agree to modify clause XX of the contract entered into by and between the of the contract entered into by

n.41/2022 Facility Management Italia Smart Contract e Blockchain Gli elementi alla base della gestione intelligente degli edifici sono due, lo Smart Contract e la Blockchain.

In the European lifelong guidance strategy, Career Management Skills (CMS) is the term used to describe the skills, attributes, attitudes and knowledge that individuals

Aspetti gius-economici della comunicazione e distribuzione del vino online, a cura di Oreste Calliano, Torino, 2018. 13 marzo 2019,