SEZIONE 05.05 – Incentivi e strategie di estrazione

WEEK 5
Il compito dei Minatori Bitcoin

We already know that Bitcoin relies crucially on mining. But who are the miners? How did they get into this? How do they operate? What’s the business model like for miners? What impact do they have on the environment?
Sappiamo già che il Bitcoin si basa fondamentalmente sull’estrazione mineraria. Ma chi sono i minatori? Come hanno fatto a diventarlo? Come operano? Qual’è il modello di business per i minatori? Che impatto hanno sull’ambiente?

Joseph Bonneau – Postdoctoral Research Associate Princeton University

Sezione 5.5 – Incentivi e strategie di estrazione
05.05.01
So the last topic in this lecture about mining will be mining incentives and strategies.
So what do I mean by mining strategies?
I’ve spent most of this lecture talking about how the main challenge of being a miner is to get some good hardware, get some cheap electricity, run as fast as you can, and hope for some good luck.
But it turns out there’s also some interesting strategic considerations that every miner has to make before they pick which blocks to work on.
So in particular, miners get to choose which transactions they want to include in a block. The default strategy is to include any transaction that includes higher than some minimum transaction fee. Miners get to decide which block they wanna mine on top of. And the default behavior there is to choose whatever the longest current chain is that’s been announced.
Miners have to choose how to decide between two colliding blocks when they get announced. So if two people find blocks around the same time, miners have to decide which block to extend because both will be the longest chain in history. Miners have to decide when to announce new blocks, they can choose when to find a block and wait before actually announcing it to others.
So in each case, there’s a default strategy, which is what most miners are currently doing because they run the default Bitcoin client. Remember it’s about 90% of fully validating nodes run the default client. It’s not clear what proportion of mining power that represents but it’s safe to assume that it’s probably a majority.
So most miners are doing this default strategy.
Quindi l’ultimo argomento di questa conferenza sull’attività mineraria sarà costituito da incentivi e strategie per il settore minerario.
Quindi cosa intendo per strategie minerarie?
Ho passato gran parte di questa conferenza parlando di come la principale sfida di essere un minatore sia ottenere un buon hardware, ottenere dell’elettricità a basso costo, correre il più velocemente possibile e sperare in un po ‘di fortuna.
Ma si scopre che ci sono anche alcune interessanti considerazioni strategiche che ogni minatore deve fare prima di scegliere su quali blocchi lavorare.
Quindi, in particolare, i minatori possono scegliere quali transazioni vogliono includere in un blocco. La strategia predefinita consiste nell’includere qualsiasi transazione che includa una commissione minima superiore alla transazione. I minatori arrivano a decidere quale blocco desiderano. E il comportamento predefinito è quello di scegliere qualunque sia la catena corrente più lunga che è stata annunciata.
I minatori devono scegliere come decidere tra due blocchi in collisione quando vengono annunciati. Quindi se due persone trovano blocchi nello stesso periodo, i minatori devono decidere quale blocco estendere perché entrambi saranno la catena più lunga della storia. I minatori devono decidere quando annunciare nuovi blocchi, possono scegliere quando trovare un blocco e aspettare prima di annunciarlo agli altri.
Quindi, in ogni caso, esiste una strategia predefinita, che è ciò che la maggior parte dei minatori sta facendo attualmente perché esegue il client Bitcoin predefinito. Ricorda che circa il 90% dei nodi di validazione completa esegue il client predefinito. Non è chiaro quale percentuale di potenza mineraria rappresenti, ma è ragionevole presumere che sia probabilmente una maggioranza.
Quindi la maggior parte dei minatori sta facendo questa strategia predefinita.
05.05.02
So what if you wanna change some of those decisions?
Can you make more money as a miner if you implement some other strategy besides the default one?
Well, it’s all gonna depend on how much mining power you actually have, and we’ll express that with a parameter alpha from 0 to 1 which is the proportion of all the mining capacity in the world that you actually control.
It turns out that for some alpha, yes, you can make more money by implementing a non-default strategy.
Although the analysis is still ongoing, so this is very much new underdevelopment stuff.
E se volessi cambiare alcune di quelle decisioni?
Puoi guadagnare più soldi come minatore se implementi qualche altra strategia oltre a quella predefinita?
Bene, tutto dipenderà da quanta potenza mineraria possiedi e la esprimeremo con un parametro alpha da 0 a 1 che è la proporzione di tutta la capacità di estrazione nel mondo che controlli effettivamente.
Si scopre che per alcuni alfa, sì, puoi guadagnare di più implementando una strategia non predefinita.
Anche se l’analisi è ancora in corso, quindi questa è una roba molto nuova per il sottosviluppo.
05.05.03
So the simplest attack is a forking attack.
And the idea here is to perform a double spend.
So we have a valid state of the block chain here and the miner will send money to some victim Bob.
So it may look as if that transaction sending money to Bob is in the valid longest chain.
Quindi l’attacco più semplice è un attacco a forcella.
E l’idea qui è di eseguire una doppia spesa.
Quindi abbiamo uno stato valido della catena di blocco qui e il minatore invierà denaro a qualche vittima Bob.
Quindi può sembrare che la transazione che invia denaro a Bob sia nella catena più lunga valida.
05.05.04
Now this forking miner is gonna work on an earlier block and to do this in practice it would need to be about six blocks earlier based on the standard number of confirmations that people usually wait before accepting that the payment is final.
And then the miner will insert an alternate payment where they keep the money for themself by transferring it to a different address.
Now, at this point, that block won’t be valid, since it builds on an earlier point. In the block chain, it doesn’t represent the longest possible chain of blocks. But, if you have a majority of hash power if alpha is greater than 0.5, eventually your alternate chain will be longer than what was previously the longest chain. And at this point, your longest chain now becomes the valid block chain.
Ora questo minatore di forking lavorerà su un blocco precedente e per farlo in pratica dovrebbe essere circa sei blocchi prima in base al numero standard di conferme che le persone normalmente aspettano prima di accettare che il pagamento sia definitivo.
E poi il minatore inserirà un pagamento alternativo dove tengono i soldi per se stessi trasferendolo a un indirizzo diverso.
Ora, a questo punto, quel blocco non sarà valido, poiché si basa su un punto precedente. Nella catena dei blocchi, non rappresenta la catena di blocchi più lunga possibile. Ma, se hai una maggioranza di hash power se alpha è maggiore di 0.5, alla fine la tua catena alternativa sarà più lunga di quella che era in precedenza la catena più lunga. E a questo punto, la tua catena più lunga diventa ora la catena di blocchi valida.
05.05.05
So, you’ve rewritten history, you’ve removed that payment that you made to Bob and you’ve now kept that money for yourself. And if your target had given you something in exchange for those bitcoins, preferably real currency or some kind of goods in the real world that they can’t easily take back, then you’ve swindled them. And this is a way that you could profit, if you have a majority of power in the network.
Quindi, hai riscritto la cronologia, hai rimosso il pagamento che hai fatto a Bob e ora hai tenuto quei soldi per te. E se il tuo obiettivo ti ha dato qualcosa in cambio di quei bitcoin, preferibilmente valuta reale o qualche tipo di merce nel mondo reale che non possono facilmente riprendere, allora li hai truffati. E questo è un modo che potresti trarre profitto, se hai la maggior parte del potere nella rete.
05.05.06
So like I said, this attack is certainly possible if alpha is greater than 0.5, if you have the majority of the mining power. It might be possible in practice with a little bit less, because of things like network overhead and the fact that, as one mining pool, you shouldn’t be working on colliding blocks in your alternate chain.
So sometimes people talk about a 51% attacker in bitcoin, but it’s a mistake to think that, that’s a magic threshold where as soon as you cross it all of a sudden you can do this attack. In reality, it’s more of a gradient where the attack gets easier, the further over 50% you go.
As a more new arises this attack is detectable and it’s possible if you’re doing it in a large scale that the community would decide to reverse it by refusing to accept your alternate chain even if it was longer.
So, it’s not clear and practice that this would actually work. And it is also possible that doing this would completely crash the exchange rate of bitcoin.
So it might be that, once a miner started trying to do this, people lose so much confidence in the system, that they would not wanna buy into it, and the amount of dollars that bitcoins were worth would go way down.
In fact, if this is done on a large-scale, it’s possible it could destroy the currency completely by a dramatic loss of confidence.
So, who would wanna do this? The concealable scenario where people are worried about an attack like this has been referred to as a Goldfinger Attack.
Named after the famous villain in the James Bond movie of course whose goal in the movie was to irradiate all of the gold that the U.S. government held at Fort Knox to make it valueless.
So if you’re goal is to destroy bitcoin, then you might be willing to do this forking attack in order to specifically to tank the market, make bitcoins worthless, and possibly profit because you either shorted bitcoin or because you had significant holdings in some competing currency.
So, beyond that threat model, it’s not clear in which scenarios we would have to worry about a large-scale forking attack.
Quindi, come ho detto, questo attacco è certamente possibile se alfa è maggiore di 0,5, se si ha la maggior parte del potere di estrazione. Potrebbe essere possibile in pratica con un po ‘meno, a causa di cose come il sovraccarico della rete e il fatto che, come un pool di data mining, non si dovrebbe lavorare su collisioni di blocchi nella catena alternativa.
Quindi a volte la gente parla di un attaccante del 51% in bitcoin, ma è un errore pensare che, questa è una soglia magica dove non appena lo si attraversa all’improvviso si può fare questo attacco. In realtà, è più una sfumatura in cui l’attacco diventa più facile, più oltre il 50% si va.
All’aumentare della novità, questo attacco è rilevabile ed è possibile che lo stiate facendo su larga scala che la comunità deciderà di annullarlo rifiutando di accettare la catena alternativa anche se è più lunga.
Quindi, non è chiaro e pratica che ciò funzionerebbe davvero. Ed è anche possibile che facendo questo si bloccherebbe completamente il tasso di cambio del bitcoin.
Quindi potrebbe essere che, una volta che un minatore ha iniziato a provare a farlo, le persone perdono così tanta fiducia nel sistema, che non vorrebbero comprarsene, e la quantità di dollari che valeva quel bitcoin sarebbe andata giù.
In effetti, se questo viene fatto su larga scala, è possibile che possa distruggere completamente la valuta con una drammatica perdita di fiducia.
Quindi, chi vorrebbe fare questo? Lo scenario occultabile in cui le persone sono preoccupate per un attacco come questo è stato indicato come un attacco Goldfinger.
Prende il nome dal celebre cattivo nel film di James Bond, il cui obiettivo nel film era irradiare tutto l’oro che il governo degli Stati Uniti teneva a Fort Knox per renderlo privo di valore.
Quindi, se il tuo obiettivo è distruggere bitcoin, allora potresti essere disposto a fare questo bombardamento per poter specificamente rifornire il mercato, rendere inutili i bitcoin, e possibilmente profittare perché hai o meno bitcoin o perché hai avuto partecipazioni significative in alcuni valuta concorrente.
Quindi, al di là del modello di minaccia, non è chiaro in quali scenari dovremmo preoccuparci di un attacco a forca su larga scala.
05.05.07
Although it’s possible that the attack is easier than achieving that alpha greater than 0.5, all that hash power, by simply buying it. So whereas it would be really expensive to buy enough mining capacity to have more than everybody else in the world, it might be possible to just bribe the people who do control that capacity to work on behalf of you. So there’s a couple of ways you could pay the bribe to them. You could try to do it out of band, you could hand them an envelope full of cash, say. You could declare yourself to be a new mining pool and run it at a loss. You could say, I’ll pay out 1.01 or something that clearly wasn’t sustainable, but enough to get miners to join your pool at the expense of all other pools, maybe that would push you over 50%. And there’s some other subtle ways you could try to get people to work on your alternate chain, say by leaving big tips in the block chain.
But the idea is that instead of actually acquiring all of the mining capacity yourself, you just pay the people who already have it to work on your fork.
Now, it might be a bad idea for those miners to actually participate, because by doing so, they would be hurting the currency that they’ve invested so much money and mining equipment, hoping it will stay sustainable.
So why would anybody be subject to such bribery? Well, it would be an incentive problem. All of the miners together have an incentive in keeping the bitcoin currency solvent, but individual miners would have the incentive to defect and accept a bribe if they thought they could make more money in the short-term.
So this would be a classic tragedy of the commons from an economic perspective. Now this hasn’t happened, this is pure speculation. But it’s an open problem if a bribery attack like this could actually be viable.
Anche se è possibile che l’attacco sia più facile che raggiungere quell’alpha più grande di 0.5, tutto quel potere hash, semplicemente comprandolo. Quindi, considerando che sarebbe molto costoso acquistare una capacità di estrazione sufficiente per avere più di chiunque altro al mondo, potrebbe essere possibile semplicemente corrompere le persone che controllano tale capacità di lavorare per conto di voi. Quindi ci sono un paio di modi in cui potresti pagare la bustarella a loro. Potresti provare a farlo fuori dal gruppo, potresti consegnargli una busta piena di soldi, per esempio. Potresti dichiararti un nuovo pool minerario e gestirlo in perdita. Potresti dire che pagherò 1,01 o qualcosa che chiaramente non è sostenibile, ma abbastanza per far sì che i minatori si uniscano al tuo pool a spese di tutti gli altri pool, forse questo ti spingerebbe oltre il 50%. E ci sono altri modi delicati in cui puoi cercare di convincere la gente a lavorare sulla tua catena alternativa, ad esempio lasciando grandi consigli nella catena di blocchi.
Ma l’idea è che invece di acquisire tutte le capacità minerarie, paghi solo le persone che hanno già a disposizione la tua forcella.
Ora, potrebbe essere una cattiva idea che quei minatori partecipino effettivamente, perché così facendo, farebbero male alla valuta che hanno investito così tanti soldi e attrezzature minerarie, sperando che rimanga sostenibile.
Quindi, perché qualcuno dovrebbe essere sottoposto a tale corruzione? Beh, sarebbe un problema di incentivi. Tutti i minatori insieme hanno un incentivo a mantenere il solvente in valuta bitcoin, ma i singoli minatori avrebbero l’incentivo a disertare e accettare una tangente se pensassero di poter guadagnare di più a breve termine.
Quindi questa sarebbe una tragedia classica dei beni comuni da una prospettiva economica. Ora questo non è successo, questa è pura speculazione. Ma è un problema aperto se un attacco di corruzione come questo potrebbe effettivamente essere praticabile.
05.05.08
So one defense that does exist in BitCoin against forking attacks is Checkpointing. So since 2010, each version of the default BitCoin client ships with a specific checkpoint and will refuse to accept versions of the block chain that don’t date back to that version.
And it’s usually several hundred blocks before whatever the current longest chain is. So there’s some questions about the implications for this in terms of how decentralized this is. Because this now means that, essentially, a central party, the developers who maintain the core BitCoin client, are deciding something about the value of the valid block chain.
But this does serve as a good practical mitigation against the risk of a deep fork in the block chain.
Quindi una difesa che esiste in BitCoin contro gli attacchi di biforcazione è Checkpoint. Quindi dal 2010 ciascuna versione del client BitCoin predefinito viene spedita con un checkpoint specifico e rifiuta di accettare versioni della catena di blocchi che non risalgono a quella versione.
Di solito sono diverse centinaia di blocchi prima di qualunque sia la catena più lunga attuale. Quindi ci sono alcune domande sulle implicazioni per questo in termini di come questo sia decentralizzato. Perché questo ora significa che, in sostanza, una parte centrale, gli sviluppatori che gestiscono il client principale di BitCoin, stanno decidendo qualcosa sul valore della catena di blocchi valida.
Ma questo serve come una buona mitigazione pratica contro il rischio di una forchetta profonda nella catena di blocchi.
05.05.09
Another type of attack that’s quite interesting is a block-withholding attack. So the idea here is that you don’t want to announce your blocks right away as soon as you find them. Instead, you’re gonna want to try to get ahead.
What do I mean by get ahead? Well, you want to do a little bit of mining and hopefully find two blocks in a row before the rest of the network finds even one. And you keep these blocks to yourself as a secret.
Now why would you want to do that? What would you gain from keeping blocks secret?
Well, as long as you have those two blocks that are being held secret in your back pocket, the rest of the network is going to be trying to extend what they think is the current longest block chain. And all of that effort is going to be a waste for them.
So while you’re ahead by two blocks, all of the mining that you’re doing is essentially unopposed. And the reason is that as soon as the rest of the network actually found a valid block, they would publish it and everybody would accept it.
Un altro tipo di attacco che è piuttosto interessante è un attacco di blocco alla fonte. Quindi l’idea qui è che non vuoi annunciare subito i tuoi blocchi non appena li trovi. Invece, vorrai provare ad andare avanti.
Cosa intendo per andare avanti? Bene, vuoi fare un po ‘di mining e, si spera, trovare due blocchi di fila prima che il resto della rete ne trovi anche uno. E tu tieni questi blocchi per te come un segreto.
Ora, perché vorresti farlo? Cosa otterresti mantenendo i blocchi segreti?
Bene, se hai quei due blocchi che sono tenuti segreti nella tasca posteriore, il resto della rete cercherà di estendere quella che a loro avviso è l’attuale catena di blocchi più lunga. E tutto questo sforzo sarà uno spreco per loro.
Quindi, mentre sei avanti di due blocchi, tutto il mining che stai facendo è essenzialmente inoppugnabile. E la ragione è che non appena il resto della rete ha effettivamente trovato un blocco valido, lo pubblicherebbero e tutti lo accetterebbero.
05.04.10
But then immediately, boom, you can drop the two blocks that you had in reserve, and that would instantly be the new longest valid block chain. And that block that the rest of the network worked so hard to find would immediately be orphaned and cut off from the longest chain
So this approach has been called selfish mining which I think is a little bit of a misnomer because all mining is inherently selfish. At least at this point, now that the hobbyist interest in mining has largely died down, mining is a business, and people are in it to try to make money. So we should say that it’s all in the game for miners to do this if they think that they’ll make more profit.
Ma subito dopo, boom, puoi rilasciare i due blocchi che avevi in riserva, e quella sarebbe stata istantaneamente la nuova più lunga catena di blocco valida. E quel blocco che il resto della rete ha lavorato così duramente per trovare sarebbe rimasto orfano e tagliato fuori dalla catena più lunga
Quindi questo approccio è stato chiamato mining egoistico che ritengo sia un po ‘improprio perché tutto il mining è intrinsecamente egoistico. Almeno a questo punto, ora che l’interesse hobbista nel settore minerario si è in gran parte attenuato, l’attività mineraria è un business, e le persone ci sono dentro per cercare di fare soldi. Quindi dovremmo dire che è tutto nel gioco per i minatori farlo se pensano che faranno più profitto.
05.05.11
So what happens if you’re trying this block-withholding strategy and you’re ahead by one when the rest of the network finds the next block?
So instead of being two blocks ahead, you just have one secret block held in your back pocket, and then the rest of the network announces what they think will be the next valid block. Well, if this happens, you’re gonna want to immediately push your secret block out the door.
And now there’s two versions of potentially the longest chain and every other miner is going to have to decide which version they wanna work on. And we’re in that race condition.
So you basically have to race as soon as you hear somebody else finding a valid block to get your secret block out the door and hopefully get more miners to hear about your block first.
Quindi cosa succede se stai provando questa strategia di blocco dei blocchi e sei avanti di uno quando il resto della rete trova il blocco successivo?
Quindi, invece di essere due blocchi più avanti, hai solo un blocco segreto tenuto nella tasca posteriore, e poi il resto della rete annuncia quello che pensano sarà il prossimo blocco valido. Bene, se questo accade, vuoi spingere immediatamente il tuo blocco segreto fuori dalla porta.
E ora ci sono due versioni di potenzialmente la catena più lunga e ogni altro minatore dovrà decidere quale versione vogliono lavorare. E siamo in quella condizione di gara.
Quindi, in pratica, devi correre non appena senti qualcun altro a trovare un blocco valido per far uscire il tuo blocco segreto e sperare di ottenere più minatori prima di sentire parlare del tuo blocco.
05.05.12
So the viability of this block withholding approach is going to depend really heavily on your ability to win these races.
So when is it a good idea to do a block-withholding attack?
Well, if you assume that you can win every race every time there’s competition for the next valid block, the rest of the network is going to accept yours. Then no matter what alpha, no matter how much mining capacity you have, it’s better to try selfish mining. By selfish mining, I mean this block withholding strategy that I’ve just described. So how would you try to win every race, well, you could just fight really hard to have a good network position. You could try to peer with every node. So that you’ll announce to more nodes ahead of the legitimate flooding algorithm. Or you could try bribing people, and again, you could bribe by including small tips in your block, so that it makes it more attractive for people to mine on top of you rather than the competing block So if you assume that you only have a 50% chance of winning these races, which is about what the natural chances would be if you’re competing fairly. Then this block-withholding strategy is an improvement if alpha is greater than 0.25.
And again, this is a theoretical attack which is very interesting, but it hasn’t actually been observed yet in practice. And it should be something that you’d be able to tell by monitoring the block chain and when miners are announcing new blocks.
But even though it hasn’t been observed in practice, it’s very surprising that this is possible. And it’s contrary to the original idea of BitCoin that without alpha over 0.5, without a majority of the network, there was no better mining strategy than the default. So the very existence of this attack shows that it’s not safe to assume that a miner who doesn’t control 50% of the network doesn’t have anything to gain by switching to an alternate strategy.
Quindi, la validità di questo approccio alla sospensione dei blocchi dipenderà molto dalla tua capacità di vincere queste gare.
Quindi, quando è una buona idea fare un attacco di blocco alla fonte?
Bene, se si presuppone che è possibile vincere ogni gara ogni volta che c’è competizione per il prossimo blocco valido, il resto della rete accetterà i vostri. Quindi non importa quale sia l’alfa, non importa quanta capacità di mining hai, è meglio provare l’estrazione egoistica. Con un egoistico mining intendo questa strategia di blocco dei blocchi che ho appena descritto. Quindi, come vorresti provare a vincere ogni gara, beh, potresti semplicemente lottare duramente per avere una buona posizione in rete. Potresti provare a controllare con ogni nodo. In modo che annuncerai a più nodi prima dell’algoritmo di inondazione legittimo. Oppure potresti provare a corrompere le persone, e ancora, potresti corrompere includendo piccoli suggerimenti nel tuo blocco, in modo che diventi più attraente per le persone a scavare su di te piuttosto che al blocco in competizione. Quindi, se assumi di avere solo un 50% di possibilità di vincere queste gare, che è ciò che le probabilità naturali sarebbero se sei in competizione in modo equo. Quindi questa strategia di blocco dei blocchi è un miglioramento se alfa è maggiore di 0,25.
E ancora, questo è un attacco teorico che è molto interessante, ma in realtà non è stato ancora osservato nella pratica. E dovrebbe essere qualcosa che saresti in grado di dire monitorando la catena di blocchi e quando i minatori stanno annunciando nuovi blocchi.
Ma anche se non è stato osservato nella pratica, è molto sorprendente che ciò sia possibile. Ed è contrario all’idea originale di BitCoin che senza alpha su 0.5, senza la maggioranza della rete, non esisteva una strategia di mining migliore del default. Quindi l’esistenza stessa di questo attacco dimostra che non è sicuro assumere che un minatore che non controlla il 50% della rete non ha nulla da guadagnare passando a una strategia alternativa.
05.05.13
Another interesting case is if miners want to do punitive forking.
So specifically, if miners want to blacklist transactions from a specific address, which would freeze the money held by that address forever. They could announce that they’ll refuse to mine on any chain with a transaction originating from address X.
So the reason this is an extreme strategy, is that if you have less than the majority of the network. By announcing that you will refuse to mine on any chain that has a transaction from X. As soon as a chain exists that the majority of the network accepts, that has that transaction from X. Then you will have cut yourself off from the longest chain forever, and all of the mining that you’re doing is essentially wasted.
So you could do this strategy, but very quickly you would just be mining on an orphaned fork. And it would be a waste of all of your time and electricity.
Un altro caso interessante è se i minatori vogliono fare biforcazioni punitive.
Quindi, in particolare, se i minatori vogliono mettere in blacklist le transazioni da un indirizzo specifico, che congelerebbe per sempre il denaro detenuto da quell’indirizzo. Potrebbero annunciare che si rifiuteranno di estrarre su qualsiasi catena con una transazione proveniente dall’indirizzo X.
Quindi la ragione è una strategia estrema, è che se hai meno della maggioranza della rete. Annunciando che ti rifiuterai di estrarre una catena che ha una transazione da X. Non appena esiste una catena accettata dalla maggior parte della rete, quella transazione è di X. Quindi ti taglierai dalla catena più lunga per sempre, e tutto il mining che stai facendo è essenzialmente sprecato.
Quindi potresti fare questa strategia, ma molto rapidamente ti staresti scavando su una forcella orfana. E sarebbe uno spreco di tutto il tuo tempo e la tua elettricità.
05.05.14
But, there’s a much more clever way to do punitive forking which is called feather-forking. And, the idea here is that instead of announcing that you’re going to fork forever as soon as you see a block that has a transaction from address X.
You announce very publicly that you’re going to fork, you’re going to try to mine an alternate longest chain, if you see a block that has a transaction form address X, but you will give up after a while. Typically after one or two blocks confirm the transaction from address X, you’ll go back to the longest chain.
So your chance of actually pruning that block, or orphaning that block, that has the transaction from address X, if you give up after one confirmation, is alpha squared. And the reason is because you have to find two consecutive blocks to get rid of the block with the transaction from address X before the rest of the network can find the next valid block.
Ma c’è un modo molto più intelligente di fare il forging punitivo che si chiama feather-biforcazione. E, l’idea qui è quella invece di annunciare che stai andando a sborsare per sempre non appena vedi un blocco che ha una transazione dall’indirizzo X.
Annuncia pubblicamente che stai per biforcarti, proverai a estrarre una catena più lunga alternativa, se vedi un blocco che ha un indirizzo X della transazione, ma dopo un po ‘ti arrenderai. In genere, dopo uno o due blocchi confermare la transazione dall’indirizzo X, si torna alla catena più lunga.
Quindi la tua possibilità di potare effettivamente quel blocco, o di rendere orfano quel blocco, che ha la transazione dall’indirizzo X, se ti arrendi dopo una conferma, è alfa al quadrato. E il motivo è perché devi trovare due blocchi consecutivi per sbarazzarti del blocco con la transazione dall’indirizzo X prima che il resto della rete possa trovare il prossimo blocco valido.
05.05.15
So alpha squared might not be very good. Say you’re a 20% miner, alpha squared is going to be quite low. It’s going to be only a 4% chance of actually getting rid of that transaction that you don’t want to see in the block chain, but you might motivate other miners to join you. Now why is that? As long as you’ve been very public about this other miners know that if they include a transaction from address X, they have an alpha squared chance that the block that they find will end up being orphaned because of your feather forking attack.
And if they don’t have any strong motivation to include that transaction from address X and it only has a very low transaction fee. That alpha squared chance of losing their mining reward, might be a much bigger incentive than including the transaction.
So those other miners might rationally say we have this person, this miner, doing feather forking. it’s in our interest to join them, and just do the black list of their demanding, rather than run the risk that they’ll feather fork away from the new block that just we’ve just found. And the cool thing is that you can now enforce a blacklist, even if alpha is less than 0.5, if you have less than the majority of the mining capacity.
And your success in doing this is gonna depend really heavily on how convincing you are to the other miners that you’re definitely going to fork. So ideally what you would want to do, is say I’ve burned this into hardware. I have no choice, I have to do this, so no matter what you do, I’m going to be feather forking. In which case the miners would say, well, this miner really is gonna go through with it, so maybe we should just give them what they want and do this blacklist.
Quindi alfa al quadrato potrebbe non essere molto buono. Diciamo che sei un minatore del 20%, alfa al quadrato sarà piuttosto basso. Avrà solo il 4% di possibilità di sbarazzarsi di quella transazione che non vorresti vedere nella catena di blocco, ma potresti motivare altri minatori a unirsi a te. Ora, perché è così? Finché sei stato molto pubblicizzato su questi altri minatori, sappi che se includono una transazione dall’indirizzo X, hanno una probabilità alfa al quadrato che il blocco che troveranno finirà per rimanere orfano a causa del tuo attacco a forchetta.
E se non hanno una forte motivazione per includere quella transazione dall’indirizzo X e ha solo una tariffa di transazione molto bassa. Quella probabilità alfa quadrata di perdere la loro ricompensa mineraria, potrebbe essere un incentivo molto più grande che includere la transazione.
Quindi quegli altri minatori potrebbero dire razionalmente che abbiamo questa persona, questo minatore, che fa il piercing. è nel nostro interesse unirmi a loro, e limitarci a fare la lista nera dei loro esigenti, piuttosto che correre il rischio che si butteranno via dal nuovo blocco che abbiamo appena scoperto. E la cosa interessante è che ora puoi applicare una lista nera, anche se l’alpha è inferiore a 0,5, se hai meno della maggior parte della capacità di estrazione.
E il tuo successo nel fare questo dipenderà molto da quanto sei convincente con gli altri minatori che sicuramente ti stancherai. Quindi idealmente quello che vorresti fare è dire che l’ho bruciato nell’hardware. Non ho scelta, devo farlo, quindi non importa quello che fai, sto per essere forgiato di piume. Nel qual caso i minatori direbbero, beh, questo minatore ce la farà davvero, quindi forse dovremmo semplicemente dare loro quello che vogliono e fare questa lista nera.
05.05.16
So why would you want to have a blacklist? Well, like I said there’s the ability to freeze money held by an individual and if you’re blacklisting successfully, you can keep them from ever spending that money. So maybe you could profit off of this by some sort of ransom or extortion, demanding that the person you’re blacklisting pay you in order to be taken off of your blacklist.
It also might be something that you might wanna do for legal reasons. Maybe certain addresses are designated by law enforcement as being bad, those assets are demanded to be frozen. In which case some proportional minors, say those operating in the jurisdiction where the asset freezing has legal authority will say, well, we really have to enforce this blacklist where it is being demanded to by the government, therefore maybe we should feather fork to try to make it happen.
But a much more interesting case is if miners do this to try to enforce a minimum transaction fee.
So instead of a blacklist against a specific address, you wanna blacklist against any transaction that doesn’t include some minimum transaction fee that you think is fair to you as a miner for your hard work.
So we haven’t talked a lot about transaction fees in practice yet, we said that they exist and we said that there is the capacity in Bitcoin to pay transaction fees. But what are transaction fees?
Allora, perché vorresti avere una lista nera? Bene, come ho detto, c’è la possibilità di congelare i soldi detenuti da un individuo e se si sta facendo la lista nera con successo, è possibile impedire loro di spendere quei soldi. Quindi forse potresti trarne profitto con una sorta di riscatto o estorsione, chiedendo che la persona che stai inserendo nella lista nera ti paghi per essere tolto dalla tua lista nera.
Potrebbe anche essere qualcosa che potresti voler fare per ragioni legali. Forse alcuni indirizzi sono designati dalle forze dell’ordine come cattivi, tali beni devono essere congelati. Nel qual caso alcuni minori proporzionali, affermano quelli che operano nella giurisdizione in cui il congelamento dei beni ha autorità legale diranno, beh, dobbiamo davvero far rispettare questa lista nera dove viene richiesta dal governo, quindi forse dovremmo sfidarci a provare per farlo accadere.
Ma un caso molto più interessante è se i minatori fanno questo per cercare di far rispettare una commissione minima di transazione.
Quindi, invece di una lista nera contro un indirizzo specifico, vuoi una lista nera contro qualsiasi transazione che non includa una quota minima di transazione che ritieni sia giusta per te come minatore per il tuo duro lavoro.
Quindi non abbiamo ancora parlato molto delle commissioni di transazione, abbiamo detto che esistono e abbiamo detto che esiste la capacità in Bitcoin di pagare le spese di transazione. Ma quali sono le spese di transazione?
05.05.17
So this is the default policy for transaction fees taken essentially right out of the Bitcoin code.
Transactions are assigned a priority, which sums over all the inputs. The value of that input times how old the transaction is. How long ago that input was put on the block chain, divided by the size of the transaction. So this basically means, transactions that are larger, transactions that are spending older coins that haven’t been moved in a while, and transactions that are smaller have higher priority.
And by smaller, I mean smaller in size of the transaction which means they don’t have a long complicated script.
So, the idea is to prioritize large transactions, people who don’t move their coins very often and who do it in a simple way. Whereas if you want to move money quickly, if you want to move small amounts, or if you want to do complicated scripts, you have to pay a higher transaction fee.
And currently by default, there’s a magic number where miners accept with no transaction fee if the priority is higher than .576.
And if you’re sitting there thinking that seems pretty random, where did that number come from, I’d say you’re right. It’s a very arbitrary choice, but it’s in the default client so that’s basically what you need to pay if you wanna move Bitcoin.
Quindi questa è la politica di default per le commissioni di transazione prese essenzialmente dal codice Bitcoin.
Alle transazioni viene assegnata una priorità, che somma su tutti gli input. Il valore di quell’input indica quanti anni ha la transazione. Quanto tempo fa quell’input è stato inserito nella catena di blocchi, diviso per la dimensione della transazione. Quindi questo significa fondamentalmente, le transazioni che sono più grandi, le transazioni che stanno spendendo monete più vecchie che non sono state spostate da un po ‘di tempo, e le transazioni che sono più piccole hanno una priorità più alta.
E in misura minore, intendo di dimensioni minori della transazione, il che significa che non hanno uno script complicato lungo.
Quindi, l’idea è di dare priorità alle transazioni di grandi dimensioni, le persone che non spostano le loro monete molto spesso e che lo fanno in un modo semplice. Considerando che se si desidera spostare denaro velocemente, se si desidera spostare piccole somme o se si desidera eseguire script complicati, è necessario pagare una commissione più elevata.
E attualmente, per impostazione predefinita, esiste un numero magico in cui i minatori accettano senza spese di transazione se la priorità è superiore a 0,576.
E se sei seduto lì a pensare che sembra abbastanza casuale, da dove viene quel numero, direi che hai ragione. È una scelta molto arbitraria, ma è nel client predefinito, quindi è fondamentalmente quello che devi pagare se vuoi spostare Bitcoin.
05.05.18
So, currently transactions fees don’t matter that much, and the reason is that block rewards provide the vast majority well over 99% of all the revenue that miners are making.
But keep in mind, we mentioned earlier that the size of mining rewards is going down constantly over time.
So every four years it’s halving. So eventually in the distant future, the mining rewards, the fixed rewards, by creating new coins are going to be much lower and transactions fees are going to be the main gain for miners. It’s going to be where they are making all of their revenue.
Quindi, le commissioni di transazione attualmente non contano più di tanto, e la ragione è che i premi di blocco forniscono la stragrande maggioranza oltre il 99% di tutte le entrate che i minatori stanno facendo.
Ma tenete a mente, abbiamo detto prima che la dimensione dei premi minerari sta diminuendo costantemente nel tempo.
Quindi ogni quattro anni è dimezzato. Così alla fine in un lontano futuro, i premi minerari, i premi fissi, creando nuove monete saranno molto più bassi e le commissioni sulle transazioni saranno il guadagno principale per i minatori. Sarà dove stanno facendo tutte le loro entrate.
05.05.19
So it’s an open question in that new world where transaction fees are everything for the miners. They really depend on transactions fees for their revenue. Are miners going to be more aggressive about enforcing minimum transaction fees, and how are they going to enforce that? Will they need to form a cartel to enforce minimum transaction fees? Is that something that market concentration provided by mining pools, will make easier to happen?
These are really interesting long term open questions about how Bitcoin will evolve.
Quindi è una domanda aperta in quel nuovo mondo in cui le commissioni di transazione sono tutto per i minatori. Dipendono davvero dalle commissioni sulle transazioni per le loro entrate. I minatori saranno più aggressivi nell’imporre le commissioni di transazione minime e come faranno a rafforzarle? Avranno bisogno di formare un cartello per far rispettare le spese di transazione minime? È qualcosa che la concentrazione del mercato fornita dai pool minerari renderà più facile l’accadere?
Queste sono domande aperte a lungo termine davvero interessanti su come si evolverà Bitcoin.
05.05.20
So in summary, miners are free to implement any strategy that they want. Although, in practice, in the wild we’ve seen very little behavior of anything but implementing the default strategy. And I should stress that there’s no complete model for miner behavior that says that the default strategy is optimal. We’ve seen then in a world where most miners do choose the default strategy, Bitcoin seems to work fairly well. So it seems to work fairly well on practice, we’re not sure it works in theory yet.
But even though it works in practice so far, the facts on the ground are going to change for Bitcoin. They’re changing slowly because of more network hashing capacity, the miners are getting better and better, there’s more centralization and professionalization of the miners. But even beyond those trends they have to change in the long run because of the transition from fixed mining rewards to transaction fees.
So overall I’d say you should stay tuned to this space. Things might be about to get a lot more interesting for Bitcoin mining. And currently, it’s a very interesting research topic to try to play out using what we know from game theory. How is this going to evolve in the long term?
So that’s all on Bitcoin mining for now. A few lectures from now we’ll have another lecture about mining, but about alternative models for mining. How could we redesign Bitcoin mining to have different properties? But before we get to that, in the immediate next lecture we’re going to look at anonymity in Bitcoin. How much anonymity does Bitcoin provide? If I use Bitcoin, will people be able to link my Bitcoin transactions to my real name? And what technologies are there to try to either strengthen anonymity in Bitcoin, or design an alternate currency with more anonymity? That’s all coming your way in the next lecture.
Quindi, in breve, i minatori sono liberi di implementare qualsiasi strategia che loro vogliono. Sebbene, in pratica, in natura abbiamo visto un comportamento molto piccolo di qualsiasi cosa, ma l’implementazione della strategia predefinita. E dovrei sottolineare che non esiste un modello completo per il comportamento dei minatori che afferma che la strategia predefinita è ottimale. Abbiamo visto quindi in un mondo in cui la maggior parte dei minatori sceglie la strategia predefinita, Bitcoin sembra funzionare abbastanza bene. Quindi sembra funzionare abbastanza bene in pratica, non siamo sicuri che funzioni in teoria.
Ma anche se in pratica funziona finora, i fatti sul terreno cambieranno per Bitcoin. Stanno cambiando lentamente a causa della maggiore capacità di hashing della rete, i minatori stanno migliorando sempre di più, c’è più centralizzazione e professionalizzazione dei minatori. Ma anche al di là di queste tendenze devono cambiare nel lungo periodo a causa della transizione dai premi di data mining alle commissioni di transazione.
In generale, direi che dovresti rimanere sintonizzato su questo spazio. Le cose potrebbero essere molto più interessanti per il mining di Bitcoin. E attualmente, è un argomento di ricerca molto interessante da provare a giocare usando ciò che sappiamo dalla teoria dei giochi. Come si evolverà a lungo termine?
Per ora è tutto su Bitcoin mining. A partire da ora alcune conferenze avremo un’altra lezione sull’estrazione mineraria, ma su modelli alternativi per l’estrazione. Come possiamo ridisegnare il mining di Bitcoin per avere proprietà diverse? Ma prima di arrivare a questo, nella prossima conferenza andremo a guardare l’anonimato in Bitcoin. Quanto anonimato fornisce Bitcoin? Se uso Bitcoin, le persone saranno in grado di collegare le mie transazioni Bitcoin al mio vero nome? E quali tecnologie ci sono per provare a rafforzare l’anonimato in Bitcoin, o progettare una valuta alternativa con più anonimato? È tutto a modo tuo nella prossima lezione.
[top]
© Edward W. Felten – Professor of Computer Science and Public Affairs Princeton University
SEZIONE 05.04
Pool di estrazione
SEZIONE 06.01
Nozioni di base sull’anonimato