W01.05 – UNA SEMPLICE CRIPTOVALUTA


WEEK 1
Introduzione alla Crittografia e alle Criptovalute

Learn about cryptographic building blocks (“primitives”) and reason about their security. Work through how these primitives can be used to construct simple cryptocurrencies. Imparare a costruire blocchi di crittografici (“primitivi”) e la ragione dietro la loro sicurezza. Imparare come utilizzare questi “primitivi” per costruire semplici criptovalute.

Edward W. Felten
Professor of Computer Science and Public affairs – Princeton University

Sezione 01.05 – Una semplice criptovaluta
01.05.01
In segment 1.5, we’re going to move from talking about Cryptography and we’re going to move on to Cryptocurrencies. Now, I know that many of you showed up here for the Cryptocurrency stuff. And, trust me, there will be a lot more Cryptocurrency material in future lecture. Unfortunately we needed to eat some of our cryptographic vegetables in order to have the background to talk about Cryptocurrencies. And now you’ll see when I start talking about Cryptocurrencies how these pieces fit together and why the cryptographic operations like hash functions and digital signatures are actually useful.

All right, so in this section I want to talk about some simplified Cryptocurrencies that give us ideas about how systems like BitCoin work. Of course, it’s going to require about ten more lectures in order to really spell out all of the implications of how BitCoin works and what that means. But let me talk about some very simple Cryptocurrencies to get the discussion started.

And first let’s talk about GoofyCoin. GoofyCoin is about the simplest crypto currency we can imagine.
Nella sezione 1.5, passeremo dal parlare di Cryptography al parlare di Cryptomonete. Ora, so che molti di voi sono venuti qui per il materiale Cryptomonete. E, credimi, ci sarà molto più materiale in criptovaluta in futuro. Sfortunatamente dovevamo mangiare alcuni dei nostri ortaggi crittografici per avere lo sfondo per parlare di Cryptocurrencies. E ora vedrai quando comincerò a parlare di Cryptocurrencies come questi pezzi combaciano e perché le operazioni crittografiche come le funzioni di hash e le firme digitali sono effettivamente utili.

Va bene, quindi in questa sezione voglio parlare di alcune criptovalute semplificate che ci danno un’idea su come funzionano i sistemi come BitCoin. Ovviamente, richiederà circa dieci altre lezioni per chiarire tutte le implicazioni di come funziona BitCoin e cosa significa. Ma lasciatemi parlare di alcune criptovalute molto semplici per iniziare la discussione.

E prima parliamo di GoofyCoin. GoofyCoin è la più semplice valuta crittografica che possiamo immaginare.
01.05.02
And it works kinda like this, there are just a couple rules of GoofyCoin.
The first rule is that Goofy can create new coins. Goofy can make a new coin whenever he wants, and when he makes a new coin it belongs to him. So when Goofy makes a coin, it’s represented by a data structure like this. Here you have the CreateCoin operation, and there’s a uniqueCoinID that Goofy generated, and then there’s a digital signature that was put on it by Goofy, which anyone can verify. So anyone being given this can verify that the signature is valid and that it’s a signature of this statement. And new coins belong to Goofy by definition because those are the rules that Goofy made.

So that is the first rule, Goofy can create new coins.
E funziona in questo modo, ci sono solo un paio di regole di GoofyCoin.
La prima regola è che Pippo può creare nuove monete. Pippo può fare una nuova moneta ogni volta che vuole, e quando fa una nuova moneta appartiene a lui. Quindi, quando Pippo guadagna una moneta, è rappresentato da una struttura di dati come questa. Qui hai l’operazione CreateCoin, e c’è un uniqueCoinID generato da Pippo, e poi c’è una firma digitale che è stata messa da Pippo, che chiunque può verificare. Quindi chiunque venga dato questo può verificare che la firma sia valida e che sia una firma di questa affermazione. E le nuove monete appartengono a Pippo per definizione perché quelle sono le regole che ha fatto Goofy.

Quindi questa è la prima regola, Pippo può creare nuove monete.
01.05.03
The second rule of GoofyCoin is that whoever owns a coin can pass it on to someone else. They can spend it. So for example, here we have the coin that I showed before that Goofy created. And now we’re gonna take a hash pointer to that coin and then we’re gonna create a statement.

Goofy’s gonna make a statement that says pay this to Alice. Alice is being named by a public key here. Pay to public key Alice the coin that’s represented by this hash pointer and this is also signed by Goofy.

Now Goofy is the one who own that coin and so Goofy has to sign any transaction that spends the coin.
La seconda regola di GoofyCoin è che chiunque possieda una moneta può passarlo a qualcun altro. Possono spenderlo. Quindi, per esempio, qui abbiamo la moneta che ho mostrato prima creata da Goofy. E ora prenderemo un puntatore hash su quella moneta e poi creeremo una dichiarazione.

Goofy farà una dichiarazione che dice “paga ad Alice”. Alice viene chiamata con una chiave pubblica qui. Paga alla chiave pubblica Alice la moneta che è rappresentata da questo puntatore hash e questo è anche firmato da Pippo.

Pippo è colui che possiede quella moneta e quindi Pippo deve firmare qualsiasi transazione che spenda la moneta.
01.05.04
And once this has happen, now Alice owns the coin. Alice owns the coin and Alice can prove that she owns the coin because she can present this data structure here, which is validly signed by Goofy and points to a coin that was validly own by Goofy. And so the correctness of this coin is self-evident in this system.

Now Alice can move on and she can spend the coin as well. So here we have the coin we had before, this is down here at the bottom. We have the creation of the coin signed by Goofy, now Goofy paid the coin to Alice via this hash pointer and he signed that. Now Alice is the owner of the coin. Now, she can create a statement like this that says, pay this coin to Bob’s public key, and here’s a hash pointer to the coin, and now Alice signs that. So because Alice was the valid owner of the coin, which we could verify by walking this chain. Now we know that this is valid and the coin belongs to Bob. So, Bob is now the owner of this coin.

So, those are all the rules of GoofyCoin. Goofy can create new coins by simply assigning a statement that he’s making a new coin with a unique coin ID.

And then whoever owns a coin can pass it on to someone else by signing a statement saying pass on this coin to person X. And you can verify the validity of a coin by simply following the chain and verifying all the signatures along the way.
E una volta che questo è accaduto, allora Alice possiede la moneta. Alice possiede la moneta e Alice può dimostrare di possedere la moneta perché può presentare questa struttura dati qui, che è validamente firmata da Pippo e punta a una moneta che era validamente di proprietà di Pippo. E quindi la correttezza di questa moneta è evidente in questo sistema.

Ora Alice può andare avanti e lei può anche spendere la moneta. Quindi qui abbiamo la moneta che avevamo prima, questa è quaggiù in fondo. Abbiamo la creazione della moneta firmata da Pippo, ora Pippo ha pagato la moneta ad Alice tramite questo puntatore di hash e l’ha firmato. Ora Alice è la proprietaria della moneta. Ora, lei può creare una dichiarazione come questa che dice, paga questa moneta alla chiave pubblica di Bob, ed ecco un puntatore hash sulla moneta, e ora Alice lo firma. Quindi, poiché Alice era il valido proprietario della moneta, che potremmo verificare percorrendo questa catena. Ora sappiamo che questo è valido e la moneta appartiene a Bob. Quindi, Bob è ora il proprietario di questa moneta.

Quindi, queste sono tutte le regole di GoofyCoin. Pippo può creare nuove monete semplicemente assegnando una dichiarazione che sta facendo una nuova moneta con un ID moneta univoco.

E quindi chiunque possieda una moneta può trasmetterlo a qualcun altro firmando una dichiarazione che dice di passare questa moneta alla persona X. E puoi verificare la validità di una moneta semplicemente seguendo la catena e verificando tutte le firme lungo la strada.
01.05.05
That’s GoofyCoin. All right, now, there’s a problem though. There’s a big security problem with GoofyCoin and we can see it in this structure here. So look at this coin here. This is the coin that Goofy made and then paid to Alice. Alice was the owner of that coin. And there’s a problem. Alice paid this coin onto Bob. But now Alice makes another data structure like this, which pays to Chuck the very same coin and this is signed by Alice. Now, if Chuck doesn’t know about this thing up in the upper left, this data structure, let’s say Alice just gave that to Bob and didn’t tell Chuck. Now, Chuck will look at this and he’ll think this is perfectly valid and now, he’s the owner of the coin. Chuck has a valid looking claim to be the owner of this coin and Bob has an equally valid looking claim to be the owner of this coin.

And that’s a problem because coins are not supposed to work that way. This is called a double-spending attack.
Questa è GoofyCoin. Va bene, ora, comunque c’è un problema. C’è un grosso problema di sicurezza con GoofyCoin e possiamo vederlo qui in questa struttura. Quindi guarda questa moneta qui. Questa è la moneta fatta da Pippo e poi pagata ad Alice. Alice era la proprietaria di quella moneta. E c’è un problema Alice ha pagato questa moneta a Bob. Ma ora Alice crea un’altra struttura di dati come questa, che paga a Chuck la stessa moneta e questo è firmato da Alice. Ora, se Chuck non sa nulla di questa cosa in alto a sinistra, questa struttura dati, diciamo che Alice l’ha appena data a Bob e non l’ha detto a Chuck. Ora, Chuck guarderà a questo e penserà che questo è perfettamente valido e ora, è il proprietario della moneta. Chuck ha una pretesa valida per essere il proprietario di questa moneta e Bob ha una pretesa altrettanto valida per essere il proprietario di questa moneta.

E questo è un problema perché le monete non dovrebbero funzionare in questo modo. Questo è chiamato un attacco di doppia spesa.
01.05.06
It’s called double-spending because Alice is spending the same coin twice. And double-spending attacks are one of the key problems that a Cryptocurrency has to solve. GoofyCoin does not solve the double spending attack and therefore GoofyCoin is not secure. So although GoofyCoin is simple and we understand its rules, it won’t cut it as a Cryptocurrency because it allows double-spending. Si chiama doppia spesa perché Alice sta spendendo la stessa moneta due volte. E gli attacchi di doppia spesa sono uno dei problemi chiave che una criptovaluta deve risolvere. GoofyCoin non risolve il doppio attacco di spesa e quindi GoofyCoin non è sicuro. Quindi, sebbene GoofyCoin sia semplice e comprendiamo le sue regole, non verrà considerata come una criptovaluta perché consente una doppia spesa.
01.05.07
So in order to build a Cryptocurrency, that is going to be workable, we need to have some solution to the double-spending problem. And indeed the double-spending problem is the main design challenge that we face in designing a Cryptocurrency. Quindi, al fine di costruire una criptovaluta, che sarà usabile, abbiamo bisogno di una soluzione al problema della doppia spesa. E infatti il problema della doppia spesa è la principale sfida di progettazione che dobbiamo affrontare nella progettazione di una criptovaluta.
01.05.08
So we need to somehow improve on GoofyCoin and we can do that by designing another coin which I’ll call ScroogeCoin. ScroogeCoin is going to be rather like GoofyCoin, except it will solve the double-spending problem in a particular way. And this coin was created by Scrooge. Quindi dobbiamo migliorare in qualche modo GoofyCoin e possiamo farlo progettando un’altra moneta che chiamerò ScroogeCoin. ScroogeCoin sarà piuttosto come GoofyCoin, tranne che risolverà il problema della doppia spesa in un modo particolare. E questa moneta è stata creata da Scrooge.
01.05.09
Okay, so this is a little bit more complicated in terms of data structures, but here’s one of the key ideas, that Scrooge is going to publish a history of all the transactions that have happened. This will be a block chain, that data structure we talked about before. And it will be digitally signed by Scrooge. Each block will have one transaction in it, these block has the transaction with transaction ID number 73.

It has the contents of this transaction and then there’s a hash pointer to the previous block in the history. And then Scrooge will take the hash pointer, which represents this entire structure, and he’ll digitally sign it and publish it. Now anybody can verify that Scrooge really did sign this hash pointer. And then they can follow this chain all the way back and see what is the entire history of all the transactions in the history of ScroogeCoin, as endorsed by Scrooge.

Now I said here, that we put one transaction in each block. We do that for simplicity of explanation, but in practice, as an optimization, we’d really put multiple transactions into the same block. As BitCoin does. So you can bear in mind as i talk about ScroogeCoin that that’s the way we’d really do it in practice. So Scrooge publishes this history. What does the history do? Well the thing the history does for us is it allows us to detect double-spending. Because assume Alice owns a coin, and she’s going to pay that coin on to Bob. And she’s then, later going to try to pay that coin onto Charlie.

Charlie’s gonna notice that something is wrong because Charlie will be able to look into the history and see that Alice already paid that coin to Bob. In fact, everyone will be able to see that Alice already paid that coin to Bob. So, if she tries to pay that coin to Chuck, then everyone can see that that’s a double spend and they’ll be able to reject it. Scrooge will reject it and everyone else will reject it and know that they shouldn’t trust Alice.
Ok, quindi questo è un pò più complicato in termini di strutture dati, ma ecco una delle idee chiave; Scrooge pubblicherà una cronologia di tutte le transazioni avvenute. Questa sarà una catena di blocchi, quella struttura dati di cui abbiamo parlato prima. E sarà firmato digitalmente da Scrooge. Ogni blocco avrà una transazione in esso, questo blocco ha la transazione con numero di identificazione della transazione 73.

Ha il contenuto di questa transazione e quindi c’è un puntatore hash al blocco precedente nella cronologia. E poi Scrooge prenderà il puntatore hash, che rappresenta l’intera struttura, e lo firmerà digitalmente e lo pubblicherà. Ora chiunque può verificare che Scrooge abbia davvero firmato questo puntatore di hash. E poi possono seguire questa catena fino in fondo e vedere qual è l’intera storia di tutte le transazioni nella storia di ScroogeCoin, come sostenuto da Scrooge.

Ora ho detto che abbiamo messo una transazione in ogni blocco. Lo facciamo per semplicità di spiegazioni, ma in pratica, come ottimizzazione, inseriremmo più transazioni nello stesso blocco. Come fa BitCoin. Quindi puoi tenere a mente quando parlo di ScroogeCoin che è così che lo faremmo nella pratica. Quindi Scrooge pubblica questa storia. Cosa fa la storia? Bene, la cosa che la storia fa per noi è che ci permette di rilevare la doppia spesa. Perché supponiamo che Alice possieda una moneta, e lei pagherà quella moneta a Bob. E poi, dopo, cercherà di pagare quella moneta a Charlie.

Charlie noterà che qualcosa non va perché Charlie sarà in grado di esaminare la storia e vedere che Alice ha già pagato quella moneta a Bob. In effetti, tutti saranno in grado di vedere che Alice ha già pagato quella moneta a Bob. Quindi, se lei cerca di pagare quella moneta a Chuck, allora tutti possono vedere che è una doppia spesa e saranno in grado di rifiutarla. Scrooge lo rifiuterà e tutti gli altri lo rifiuteranno e sapranno che non dovrebbero fidarsi di Alice.
01.05.10
So in ScroogeCoin there are two kinds of transactions.

The first kind is a CreateCoins transaction and what it does is create new coins. That’s like the operation Goofy could do in GoofyCoin, that makes a new coin. But here we’re going to allow multiple coins to be created in one transaction. So here’s what a CreateCoins transaction looks like. It has transaction ID number 73 lets say in this case its transaction type is create coins and then down here there’s a list of which coins are created. Each coin is gonna have a serial number within this transaction zero one two etc. Each coin has a value, it’s worth a certain number of ScroogeCoins. And each coin has a recipient which is going to be a public key who gets that coin as it’s created.

So this transaction type creates a bunch of new coins and assigns them to people as initial owners.
Quindi in ScroogeCoin ci sono due tipi di transazioni.

Il primo tipo è una transazione CreateCoins e ciò che fa è creare nuove monete. È come l’operazione che Pippo potrebbe fare in GoofyCoin, che fa una nuova moneta. Ma qui consentiremo di creare più monete in un’unica transazione. Ecco come appare una transazione CreateCoins. Ha il numero di identificazione della transazione 73, diciamo che in questo caso il suo tipo di transazione è creare monete e quindi qui sotto c’è un elenco di quali monete sono state create. Ogni moneta avrà un numero di serie all’interno di questa transazione zero uno due ecc. Ogni moneta ha un valore, vale un certo numero di ScroogeCoin. E ogni moneta ha un destinatario che diventerà una chiave pubblica che ottiene la moneta così come è stata creata.

Quindi questo tipo di transazione crea un mucchio di nuove monete e le assegna alle persone come proprietari iniziali.
01.05.11
Now we’re gonna have a concept in ScroogeCoins of a coin ID. That refers to a particular coin. So this particular coin here is coin ID 73(0) because it was created in transaction 73 and it was number zero within that transaction. Similarly we have 73(1), 73(2) and so on. So every coin in Scrooge Coin has a coin ID that we can refer to it. Ora avremo un concetto in ScroogeCoins di un ID di moneta. Questo si riferisce a una moneta particolare. Quindi questa particolare moneta qui è l’ID di moneta 73 (0) perché è stata creata nella transazione 73 ed era il numero zero all’interno di quella transazione. Allo stesso modo abbiamo 73 (1), 73 (2) e così via. Quindi ogni moneta in Scrooge Coin ha un ID di moneta a cui possiamo riferirci.
01.05.12
A CreateCoins transaction is always valid. Why is it valid? Well, because Scrooge said so, and they call it ScroogeCoin for a reason. If Scrooge puts this into the history, which he signs, then it’s valid by definition. We don’t need to worry about whether Scrooge is entitled to create coins. Just like we didn’t need to worry in GoofyCoin about whether Goofy is entitled to create coins. The rules of the system, which were created by Scrooge, simply say that if Scrooge wants to make coins, then that’s valid. So anything he puts into the history is valid. Una transazione CreateCoins è sempre valida. Perché è valido? Bene, perché Scrooge ha detto così, e lo chiamano ScroogeCoin per una ragione. Se Scrooge inserisce questo nella storia, che firma, allora è valido per definizione. Non dobbiamo preoccuparci se Scrooge ha il diritto di creare monete. Proprio come non abbiamo avuto bisogno di preoccuparsi di GoofyCoin sul fatto che Pippo abbia il diritto di creare monete. Le regole del sistema, che sono state create da Scrooge, dicono semplicemente che se Scrooge vuole fare monete, allora è valido. Quindi tutto ciò che inserisce nella storia è valido.
01.05.13
The second kind of transaction we’re going to talk about is a PayCoins transaction. And this is a transaction that consumes some coins and destroys them. And creates new coins of the same total value, but which might belong to different people. So over here on the left we have an example of what a PayCoins transaction looks like. This is transaction ID number 73, let’s say, its type is PayCoins. We have here a list of the coins that this one consumes. All of these coins are being consumed and destroyed by this PayCoins transaction. So we’re going to add up the value of all of those coins and then we’re gonna create a bunch of new coins down here, zero, one, and two, etc. Just like before in the CreationCoins transaction each one has a value. Each one will belong to a certain recipient. And those new coins had better add up to the same total value as the coins that we consumed.

And then at the bottom, we have a set of digital signatures. This transaction has to be signed by everyone who’s paying in a coin. So if you’re the owner of one of the coins that’s going to be consumed in this transaction, then you need to digitally sign the transaction to say that you’re really okay with spending this coin.

The rules of ScroogeCoins say that a PayCoin’s transaction is valid if four things are true.

First, if the consumed coins are valid, that is they really were created in previous transactions.

Second, that the consumed coins were not already consumed in some previous transaction, this is not a double-spend.

Third, that the total value of the coins that come out of this transaction is equal to the total value of the coins that went in.

And finally that the transaction is validly signed by the owners of all of the consumed coins.

If all of those things are true then this PayCoins transaction is valid. Scrooge will accept it. He’ll write it into the history, into the block chain, and everyone will see that this transaction has happened.

One thing to note about this scheme is that coins are immutable. Coins are never changed, they’re never subdivided, they’re never combined. All they are is created once in one transaction, and then later consumed in some other transaction. But you can get the same effect as being able to subdivide or pay on or combine coins by using transactions.
Il secondo tipo di transazione di cui parleremo è una transazione PayCoins. E questa è una transazione che consuma alcune monete e le distrugge. E crea nuove monete dello stesso valore totale, ma che potrebbero appartenere a persone diverse. Quindi qui a sinistra abbiamo un esempio di come si presenta una transazione PayCoins. Questo è il numero ID della transazione 73, diciamo, il suo tipo è PayCoin. Abbiamo qui un elenco delle monete che questo consuma. Tutte queste monete vengono consumate e distrutte da questa transazione PayCoins. Quindi andremo a sommare il valore di tutte quelle monete e poi creeremo un mucchio di nuove monete quaggiù, zero, una e due, ecc. Proprio come prima nella transazione CreationCoins ognuna ha un valore. Ognuno apparterrà a un determinato destinatario. E quelle nuove monete avrebbero dovuto aggiungere allo stesso valore totale delle monete che abbiamo consumato.

E poi in fondo, abbiamo un set di firme digitali. Questa transazione deve essere firmata da tutti coloro che pagano in una moneta. Quindi se sei il proprietario di una delle monete che verranno consumate in questa transazione, allora devi firmare digitalmente la transazione per dire che stai davvero spendendo questa moneta.

Le regole di ScroogeCoin dicono che una transazione di PayCoin è valida se quattro cose sono vere.

Primo: se le monete consumate sono valide, cioè sono state effettivamente create nelle transazioni precedenti.

Secondo: che le monete consumate non erano già state consumate in alcune transazioni precedenti, questa non è una doppia spesa.

Terzo: il valore totale delle monete che escono da questa transazione è uguale al valore totale delle monete entrate.

Quarto: la transazione è validamente firmata dai proprietari di tutte le monete consumate.

Se tutte queste cose sono vere, allora questa transazione PayCoins è valida. Scrooge lo accetterà. Lo scriverà nella storia, nella catena dei blocchi, e tutti vedranno che questa transazione è avvenuta.

Una cosa da notare su questo schema è che le monete sono immutabili. Le monete non vengono mai cambiate, non vengono mai suddivise, non vengono mai combinate. Tutto viene creato una volta in una transazione, e successivamente consumato in qualche altra transazione. Ma puoi ottenere lo stesso effetto di essere in grado di suddividere o pagare o combinare monete usando le transazioni.
01.05.14
For example, if you want to subdivide a coin, you can just create a new transaction that consumes that one coin and then produces two new coins of the same total value. And if you want you can give those two new coins back to yourself. That’s a way that you can subdivide a coin that you own. Similarly, you can combine coins or you can pay on a coin, in effect, by just creating a chain of transactions. Each of which pass that value on in the form of a new coin to someone else. So although coins are immutable in this system, it has all of the flexibility of a system that didn’t have immutable coins.

Okay. Now, we come to the core problem with ScroogeCoin. ScroogeCoin will work. People can see which coins are valid. It prevents double spending because everyone can look into the block chain and see that all of the transactions are valid and that every coin is consumed only once.
Ad esempio, se si desidera suddividere una moneta, è sufficiente creare una nuova transazione che consuma quella moneta e quindi produce due nuove monete dello stesso valore totale. E se vuoi puoi restituire quelle due nuove monete a te stesso. È un modo per suddividere una moneta che possiedi. Allo stesso modo, puoi combinare le monete o puoi pagare una moneta, in effetti, semplicemente creando una catena di transazioni. Ognuno di questi passa quel valore sotto forma di una nuova moneta a qualcun altro. Quindi, anche se le monete sono immutabili in questo sistema, ha tutta la flessibilità di un sistema che non ha monete immutabili.

Va bene. Ora, arriviamo al problema principale con ScroogeCoin. ScroogeCoin funzionerà. Le persone possono vedere quali monete sono valide. Impedisce la doppia spesa perché tutti possono esaminare la catena di blocchi e vedere che tutte le transazioni sono valide e che ogni moneta viene consumata una sola volta.
01.05.15
But, the problem is Scrooge. Scrooge thinks this is fine. Right? Scrooge says don’t worry, I’m honest. But the fact is if Scrooge starts misbehaving, then we’re going to have a problem. Or if Scrooge just gets bored of the whole ScroogeCoin scheme and stops doing the things that he is supposed to do, then the system won’t operate anymore. And so, the problem we have here is Centralization. That although Scrooge is happy with the system, we, as users of it might not be. Ma il problema è Scrooge. Scrooge pensa che vada bene. Giusto? Scrooge dice che non ti preoccupare, sono onesto. Ma il fatto è che se Scrooge inizia a comportarsi male, allora avremo un problema. O se Scrooge si annoia solo dell’intero schema di ScroogeCoin e smette di fare le cose che dovrebbe fare, allora il sistema non funzionerà più. E così, il problema che abbiamo qui è la Centralizzazione. Che sebbene Scrooge sia soddisfatto del sistema, noi, in quanto utenti, potremmo non esserlo.
01.05.16
So the central technical challenge that we need to solve in order to improve on ScroogeCoin is, can we descroogify the system? That is, can we get rid of that centralized Scrooge figure? Can we have a Cryptocurrency that operates like ScroogeCoin in many ways, but doesn’t have any central trusted authority? In order to do that, we’re going to need to figure out how to provide the services that Scrooge provides, but do it in a decentralized way, a way in which no particular party is particularly trusted. That means we’re gonna need to figure out how everyone can agree upon a single published block chain that is the agreed upon history which transactions have happened. We need to figure out how people can agree which transactions are valid and which transactions have actually occurred. And we need to figure out how we can assign IDs to things in a decentralized way. If we can solve all of those problems, then we can build a currency that is very much like BitCoin. Which is like ScroogeCoin but without a centralized party. But in order to do that, it’s going to take a few more lectures, and we hope you’ll stick around and watch them. Thanks. Quindi la sfida tecnica centrale che dobbiamo risolvere per migliorare su ScroogeCoin è, possiamo decodificare il sistema? Cioè, possiamo sbarazzarci di quella figura di Scrooge centralizzata? Possiamo avere una criptovaluta che funziona come ScroogeCoin in molti modi, ma non ha alcuna autorità centrale di fiducia? Per fare ciò, avremo bisogno di capire come fornire i servizi forniti da Scrooge, ma farlo in modo decentralizzato, un modo in cui nessuna parte particolare è particolarmente affidabile. Ciò significa che avremo bisogno di capire come tutti possono essere d’accordo su una singola catena di blocchi pubblicata che è la storia concordata su quali transazioni sono avvenute. Dobbiamo capire in che modo le persone possono concordare quali transazioni sono valide e quali transazioni sono effettivamente avvenute. E dobbiamo capire come possiamo assegnare gli ID alle cose in modo decentralizzato. Se riusciamo a risolvere tutti questi problemi, possiamo costruire una valuta molto simile a BitCoin. Che è come ScroogeCoin ma senza una festa centralizzata. Ma per farlo, ci vorranno alcune altre lezioni e speriamo che resterai a guardarle. Grazie.

[top]
© Edward W. Felten – Professor of Computer Science and Public affairs – Princeton University

W01.04
Chiavi pubbliche come identità
W02.01
Centralizzazione vs. Decentralizzazione