SEZIONE 05.04 – Pool 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.4 – Pool di estrazione
05.04.01
Now we’re gonna talk about mining pools. So what is a mining pool? Well, let’s look at the economics of being a small miner. So say, you’re an individual who spent $6,000 of your hard-earned money to buy a nice, shiny, new Bitcoin mining rig.
Now, you expect that you’ll find a block in about 14 months with this fancy new rig.
And remember that a block is worth about $15,000 at today’s prices. So if you advertise that, you could say that the expected revenue of this box is about $1,000 per month. And now maybe, once you factor in electricity and your other costs of operating it, if you actually got a check in the mail every month for $1,000, that would make it worth it for you to buy this $6,000 mining rig.
Ora parleremo delle pool minerarie. Allora, cos’è una pool mineraria? Bene, diamo un’occhiata all’economia di essere un piccolo minatore. Ad esempio, sei un individuo che ha speso $ 6.000 dei tuoi sudati guadagni per acquistare un nuovo impianto di perforazione Bitcoin bello, lucido e nuovo.
Ora, ti aspetti che troverai un blocco in circa 14 mesi con questo nuovo rig fantastico.
E ricorda che un blocco vale circa $ 15.000 ai prezzi di oggi. Quindi, se la pubblicizzi, potresti dire che le entrate previste di questa scatola sono di circa $ 1.000 al mese. E ora forse, una volta preso in considerazione l’elettricità e gli altri costi di gestione, se in realtà ricevete un assegno per posta ogni mese per $ 1.000, ciò significherebbe che ne vale la pena acquistare questo impianto da $ 6.000.
05.04.02
But remember that mining is a random process. You don’t know when you’re gonna find the next block. It’s a completely random search, and you could find your next block at any time.
So, if we look at the distribution of how many blocks you’re likely to find in the first year with that hypothetical 1 terahertz box, the variance is pretty high because the expected number of blocks you’re gonna find is so low. So if we just look at the distribution and this is a Poisson distribution, there’s over a 40% chance that you won’t find any blocks in the first year.
In which case you might really be in trouble if you haven’t earned any revenue in an entire year of running that $6,000 box that costs a lot of electricity to run.
There’s about a 36% chance that you’ll find one block in the first year, in which case maybe you’re barely scraping by. And then there’s a slightly smaller chance that you’ll find two or more blocks, in which case you’ll really be making a profit with this thing.
So again, on expectation, you might be just doing okay enough to make a return on your money. But there’s a big chance that you’ll make nothing at all.
So that means that for a small miner, mining is essentially a big game of roulette.
Ma ricorda che l’estrazione è un processo casuale. Non sai quando troverai il prossimo blocco. È una ricerca completamente casuale e potresti trovare il tuo prossimo blocco in qualsiasi momento.
Quindi, se consideriamo la distribuzione di quanti blocchi è probabile trovare nel primo anno con quell’ipotetica scatola da 1 terahertz, la varianza è piuttosto alta perché il numero atteso di blocchi che troverai è così basso. Quindi, se guardiamo solo alla distribuzione e questa è una distribuzione di Poisson, c’è una probabilità del 40% che non troverete blocchi nel primo anno.
In tal caso potresti essere davvero nei guai se non hai guadagnato alcun guadagno in un anno intero di gestione di quella scatola da $ 6.000 che costa un sacco di energia elettrica da gestire.
C’è circa il 36% di probabilità che trovi un blocco nel primo anno, nel qual caso forse stai passando a fatica. E poi c’è una possibilità leggermente più piccola di trovare due o più blocchi, nel qual caso realizzerai davvero un profitto con questa cosa.
Quindi, di nuovo, in previsione, potresti essere solo abbastanza in gamba da fare un ritorno sui tuoi soldi. Ma c’è una grande possibilità che non farai niente.
Questo significa che per un piccolo minatore, il mining è essenzialmente un grande gioco della roulette.
05.04.03
Now historically, when small business people faced a lot of risk and they wanted to lower the risk, they got together and formed mutual insurance companies. So farmers would get together and agree that if any individual farmer’s barn burned down, they would share profits with that farmer so that farmer wouldn’t go bankrupt.
And the question is, can we have a mutual insurance model that works for small Bitcoin miners?
Storicamente, quando le piccole imprese dovevano affrontare molti rischi e volevano ridurre il rischio, si riunivano e formavano mutue assicurative. Così gli agricoltori si riunirebbero e convenivano che se il fienile di ogni singolo agricoltore fosse bruciato, avrebbero condiviso profitti con quell’agricoltore in modo che l’agricoltore non andasse in bancarotta.
E la domanda è: possiamo avere un modello di mutua assicurazione che funzioni per i piccoli minatori Bitcoin?
05.04.04
So that’s what a mining pool is.
Now the goal of a mining pool is that a group of miners will get together, form a pool. And they’ll all attempt to mine a block, which pays that coinbase, the newly minted coins to the same recipient. That recipient is going to be called the pool manager.
So no matter who actually finds the block, the pool manager will control the rewards.
And then the pool manager will take that revenue and distribute it to all of the participants in the pool based on how much work each participant actually output.
Of course, the pool manager will also probably take some kind of cut for their service of managing the pool.
So this sounds like a great idea. You can see why it would be attractive to Bitcoin miners to join a pool to lower their variance. But how does the pool manager know how much work each of the members of the pool is actually performing?
Obviously, the pool manager doesn’t wanna just take everybody’s word for it, because everybody would say that they’re performing more work than they actually did.
Ecco cos’è una pool mineraria.
Ora l’obiettivo di una pool mineraria è che un gruppo di minatori si riunirà, formando una pool. E cercheranno tutti di estrarre un blocco, che paga la base di monete, le nuove monete coniate allo stesso destinatario. Quel destinatario sarà chiamato il gestore del pool.
Quindi, indipendentemente da chi trovi effettivamente il blocco, il gestore della pool controllerà i premi.
E poi il gestore del pool prenderà le entrate e la distribuirà a tutti i partecipanti al pool in base a quanto lavoro effettivamente ciascun partecipante produce.
Naturalmente, il gestore del pool probabilmente prenderà anche una sorta di ricompensa per il loro servizio di gestione del pool.
Quindi questa sembra una grande idea. Puoi capire perché sarebbe interessante per i minatori Bitcoin unirsi a un pool per ridurre la loro varianza. Ma come fa il gestore della pool a sapere quanto lavoro sta effettivamente svolgendo ciascuno dei membri del pool?
Ovviamente, il manager del pool non vuole solo prendere la parola di tutti, perché tutti direbbero che stanno facendo più lavoro di quanto non abbiano fatto.
05.04.05
So there’s a really powerful idea which is that miners can prove probabilistically how much work they’re doing by outputting shares. And shares are blocks that are almost valid.
So whereas it’s pretty rare to find an actually valid block that starts with all 66 required zeros at the beginning of the output hash.
There will be a lot more almost blocks that start with a lot of zeros but not quite the 66 necessary to make it a valid block.
So a common choice might be, say, 40 bits or maybe 50 bits depending on what size the pool is designed for.
Now if miners participating in the pool send in a bunch of these near-valid blocks, the rate at which you’re finding those near-valid blocks should give the pool manager a very good statistical idea of who’s doing how much work. And the other nice property of this is that there’s no way to fake it. Because of the properties of the hash function, there’s no way to find almost blocks without also finding actual blocks at the expected rate.
Quindi c’è un’idea davvero potente che è che i minatori possono dimostrare in modo probabilistico quanto lavoro stanno facendo emettendo azioni. E le condivisioni sono blocchi che sono quasi validi.
Quindi, mentre è piuttosto raro trovare un blocco valido che inizia con tutti i 66 zeri richiesti all’inizio dell’hash di output.
Ci saranno molti più blocchi che iniziano con molti zeri ma non abbastanza il 66 necessario per renderlo un blocco valido.
Quindi una scelta comune potrebbe essere, ad esempio, 40 bit o forse 50 bit a seconda delle dimensioni per cui è progettato il pool.
Ora, se i minatori che partecipano al pool inviano un gruppo di questi blocchi quasi validi, la velocità con cui si trovano quei blocchi quasi validi dovrebbe fornire al gestore del pool una buona idea statistica su chi sta facendo quanto lavoro. E l’altra bella proprietà di questo è che non c’è modo di fingere. A causa delle proprietà della funzione hash, non c’è modo di trovare quasi blocchi senza trovare anche blocchi effettivi alla velocità prevista.
05.04.06
So how does this whole setup look?
So to start with in each round after the previous block is discovered, the pool manager which will be collecting transactions and assembling a block, will tell all of the participants, here’s the next block that we’re all gonna work on. So, [COUGH] they’ll assemble the block cutter. They’ll assemble a Merkle tree of transactions to be included in that block. And in particular, they’ll make sure to put into that Merkle root of transactions, the coinbase transaction which creates new coins and assigns ownership to the pool itself.
And now this block header will be sent to all of the participants in the pool, and this is what they’re asked to work on. And they have to prove that they’ve been working on it by sending in shares showing that they’ve been hashing this block.
Now once that gets sent out, all of the miners go about and do their work. And they’ll all slowly find almost valid blocks or shares, until finally one of the miners hopefully in the pool finds a valid block that will then be published.
Now after this happens, all of the participants will send in all of the shares that they found to the pool manager, which should be pretty efficient for the pool manager to verify our valid shares that they found. And then the pool manager will take all of the revenue earned from that block that was published and distribute it back to the participants based on how much work they actually did.
Now notice that this miner all the way on the right here who did happen to find the block actually receives less revenue than that miner on the left there who didn’t find the ultimately valid block. But they did find more shares.
So there’s no bonus for this miner on the right here that they actually found a valid share.
They would have been better off if they just mined as an individual because they would have gotten to keep all of the revenue from that block. But of course, for the miner on the left, they’re sure going to be glad that they joined this pool because they would have gotten nothing if they had just mined on their own cuz they happened to not find a valid block.
Quindi, come appare l’intera configurazione?
Quindi, per iniziare in ogni round dopo che il blocco precedente è stato scoperto, il gestore del pool che raccoglierà le transazioni e assemblerà un blocco, dirà a tutti i partecipanti, ecco il prossimo blocco su cui lavoreremo tutti. Quindi [COUGH] assembleranno il tagliablocchi. Assembleranno un albero Merkle di transazioni da includere in quel blocco. E in particolare, si assicureranno di mettere in quella radice Merkle delle transazioni, la transazione coinbase che crea nuove monete e assegna la proprietà al pool stesso.
E ora questa intestazione di blocco verrà inviata a tutti i partecipanti al pool, e questo è ciò a cui viene chiesto di lavorare. E devono dimostrare che ci stanno lavorando inviando delle condivisioni che mostrano che hanno fallito questo blocco.
Ora, una volta che viene mandato fuori, tutti i minatori vanno in giro e fanno il loro lavoro. E troveranno tutti lentamente blocchi o condivisioni quasi validi, finché finalmente uno dei minatori si spera nella pool trovi un blocco valido che verrà poi pubblicato.
Ora, dopo che questo accade, tutti i partecipanti invieranno tutte le condivisioni che hanno trovato al gestore del pool, il che dovrebbe essere abbastanza efficiente affinché il gestore del pool verifichi le nostre condivisioni valide che hanno trovato. E poi il gestore del pool prenderà tutte le entrate guadagnate da quel blocco che è stato pubblicato e lo distribuirà ai partecipanti in base a quanto lavoro hanno effettivamente fatto.
Ora notate che questo minatore completamente qui sulla destra che è capitato di trovare il blocco riceve effettivamente meno entrate di quel minatore sulla sinistra che non ha trovato il blocco valido alla fine. Ma hanno trovato più condivisioni.
Quindi non c’è alcun bonus per questo minatore qui che hanno effettivamente trovato una quota valida.
Sarebbero stati meglio se fossero stati estratti come individui perché avrebbero dovuto mantenere tutte le entrate di quel blocco. Ma ovviamente, per il minatore a sinistra, sono sicuro che saranno contenti di essere entrati in questa pool perché non avrebbero ottenuto nulla se avessero appena estratto il loro cuz perché non trovarono un blocco valido.
05.04.07
So there are a bunch of variations on this model of exactly how you determine based on shares submitted, how much money each miner should get in mining rewards. So a couple of common ones, there’s the pay-per-share model where the pool manager just announces, I’ll pay a flat fee for every share above a certain difficulty that you’re willing to send me based on this block.
In some ways that’s the best for miners, because that’s a guarantee. Every time they find a share, they’ll get a certain amount of money. The pool manager is essentially absorbing all of the risk in that scheme. Of course as a result, usually with pay-per-share you pay the highest transaction fee to the pool manager.
Another way to do it is a proportional model, where instead of paying a flat fee per share, the amount per share depends on whether or not the pool actually found a valid block. So every time a valid block is found, the rewards from that block are distributed to the members proportional to how much work they actually did.
So in this case, the miners still bear some risk, proportional to the risk of the pool in general.
So if the pool is large enough, the variance of how often the pool finds blocks will be fairly low. Proportional can still be a good approach.
And it will provide lower risk for the pool manager. And it gets around a problem that’s inherent to pay per share, which is that with pay per share, the miners actually don’t have any motivation to send in valid blocks. They don’t have any motivation not to, but miners have the option when they find a valid block of just keeping it a secret. Now they’re hurting the pool by doing that, so this is purely an act of vandalism.
But they have no real motivation since they get a flat reward per share to actually send in the valid blocks. Whereas with a proportional scheme, the miners certainly want to send in the valid blocks cuz that triggers revenue coming back to them.
And a final variation that I think is interesting and was popular for a while, is that the pool owner actually collects no fee, but miners can’t receive any revenue out until their balance is over one Bitcoin. So basically this means that new entrants to the pool don’t make any money for a while. And then they make money at an even rate without paying any fee to the mining pool manager.
So essentially once you’re established in a pool with this approach, it’s a great place to be, but they’re harder to break into.
Quindi ci sono un sacco di variazioni su questo modello di esattamente come si determina in base alle azioni presentate, quanti soldi ogni minatore dovrebbe ottenere in premi minerari. Quindi, un paio di quelli comuni, c’è il modello pay-per-share in cui il manager della pool appena annunciato, pagherò una quota fissa per ogni azione al di sopra di una certa difficoltà che siete disposti a mandarmi in base a questo blocco.
In un certo senso è il meglio per i minatori, perché è una garanzia. Ogni volta che trovano una quota, riceveranno una certa somma di denaro. Il gestore del pool sta essenzialmente assorbendo tutto il rischio in tale schema. Di conseguenza, di solito, con il pay-per-share si paga la commissione più alta per il gestore del pool.
Un altro modo per farlo è un modello proporzionale, in cui invece di pagare una tariffa forfettaria per azione, l’importo per azione dipende dal fatto che il pool abbia effettivamente trovato un blocco valido. Quindi ogni volta che viene trovato un blocco valido, i premi di quel blocco vengono distribuiti ai membri proporzionali a quanto lavoro hanno effettivamente fatto.
Quindi, in questo caso, i minatori continuano a rischiare, in proporzione al rischio del pool in generale.
Quindi se il pool è abbastanza grande, la varianza di quanto spesso il pool trova blocchi sarà piuttosto bassa. Proporzionale può ancora essere un buon approccio.
E fornirà un rischio inferiore per il gestore del pool. E si aggira un problema che è inerente al pagamento per azione, che è quello con la paga per azione, i minatori in realtà non hanno alcuna motivazione per inviare blocchi validi. Non hanno alcuna motivazione a non farlo, ma i minatori hanno l’opzione quando trovano un blocco valido di tenerlo segreto. Ora stanno facendo del male alla pool facendo così, quindi questo è puramente un atto di vandalismo.
Ma non hanno una vera motivazione dal momento che ricevono una ricompensa per azione per inviare effettivamente i blocchi validi. Considerando che con uno schema proporzionale, i minatori certamente vogliono inviare i blocchi validi che inneschino entrate che tornano a loro.
E una variazione finale che penso sia interessante ed è stata popolare per un po ‘di tempo, è che il proprietario della pool non raccoglie effettivamente alcuna commissione, ma i minatori non possono ricevere entrate finché il loro saldo non supera un Bitcoin. Quindi, in pratica, questo significa che i nuovi entranti al pool non guadagnano soldi per un po ‘. E poi fanno soldi ad un tasso costante senza pagare alcuna commissione al gestore del pool minerario.
Quindi, in sostanza, una volta che ti sei stabilito in una pool con questo approccio, è un ottimo posto dove stare, ma sono più difficili da penetrare.
05.04.08
So this has become pretty advanced now. There are quite a few protocols to run mining pools. And it’s even been suggested that these mining pool protocols should be standardized as part of Bitcoin itself.
So just like there’s a Bitcoin protocol for running the peer-to-peer network, these protocols are an API for communicating from the pool manager to all of the members. When to work on a new block, what that block should be, and for the miners to send back to the pool manager the shares that they’re finding.
Another reason why this is so important is that some mining hardware actually supports these protocols at the hardware level. Now this makes it very simple to buy a piece of mining hardware, plug it into the wall, both the electricity and your network connection. Choose a pool, and then it will start immediately getting instructions from the pool, mining and converting your electricity hopefully into money.
Quindi questo è diventato piuttosto avanzato ora. Esistono parecchi protocolli per eseguire i pool di mining. Ed è stato anche suggerito che questi protocolli del pool minerario dovrebbero essere standardizzati come parte del Bitcoin stesso.
Quindi, proprio come c’è un protocollo Bitcoin per l’esecuzione della rete peer-to-peer, questi protocolli sono un’API per la comunicazione dal gestore del pool a tutti i membri. Quando lavorare su un nuovo blocco, quale dovrebbe essere quel blocco, e per i minatori di rispedire al gestore del pool le azioni che stanno trovando.
Un altro motivo per cui questo è così importante è che alcuni hardware di data mining supportano effettivamente questi protocolli a livello hardware. Ora questo rende molto semplice acquistare un pezzo di hardware di data mining, collegarlo al muro, sia l’elettricità che la connessione di rete. Scegli un pool, quindi inizierà immediatamente a ricevere le istruzioni dal pool, eseguendo operazioni di mining e convertendo la tua elettricità in denaro.
05.04.09
So mining pools first started around 2010, actually way back in the graphics card era of Bitcoin mining, which is several generations ago. And they were instantly very popular for obvious reasons cuz they lowered the variance for the participating miners.
So by 2014, the vast majority of all miners are mining through pools. Very few miners mine on their own anymore.
And a very interesting thing happened in June of this year, where the largest pool called GHash.io got so big it actually had over 50% of the entire capacity of the Bitcoin network. Now this is something that people had feared for a long time, but essentially GHash offered such a good deal to all the participating miners that everybody wanted to join.
Quindi i pool minerari iniziarono per la prima volta verso il 2010, in realtà nell’era delle schede grafiche dell’estrazione di Bitcoin, che è diverse generazioni fa. E furono immediatamente molto popolari per ovvi motivi, poiché abbassarono la varianza per i minatori partecipanti.
Quindi, entro il 2014, la stragrande maggioranza di tutti i minatori sta scavando attraverso le pool. Pochissimi minatori sono rimasti da soli.
E una cosa molto interessante è accaduta a giugno di quest’anno, dove il più grande pool chiamato GHash.io è diventato così grande che in realtà aveva oltre il 50% dell’intera capacità della rete Bitcoin. Ora questo è qualcosa che le persone temevano da molto tempo, ma sostanzialmente GHash ha offerto un così buon affare a tutti i minatori partecipanti che tutti volevano aderire.
05.04.10
Now since then GHash has gone down a little bit, partly by design. They’ve made their fees a little bit less attractive to try to get smaller. But you can see in this pie chart of the largest mining pools, they still have about a third of the power. And it’s basically only two mining pools today that control about half of the power in the network. And then there’s a nice smattering of other pools thrown in there.
Da allora GHash è andato un po ‘giù, in parte per design. Hanno reso le loro tasse un po ‘meno attraenti per cercare di diventare più piccoli. Ma puoi vedere in questo grafico a torta dei più grandi bacini minerari, che hanno ancora circa un terzo del potere. Ed è fondamentalmente solo due pool minerari oggi che controllano circa la metà della potenza della rete. E poi c’è una bella infarinatura di altre pool buttate lì dentro.
05.04.11
So, are mining pools a good thing? Well, the advantages of mining pools are that they make mining more predictable for the participants. And they make it much easier for smaller miners to get involved in the game. Whereas the variance would simply make mining infeasible for economic reasons if you didn’t have mining pools, you can operate a much smaller mining rig profitably if you’re part of a pool.
Another advantage of mining pools is that since there’s one essential pool manager who’s sitting on the network and assembling blocks. It actually makes it easier to upgrade the network, because by upgrading the software that the mining pool manager is running, that effectively updates the software that all of the pool members are running.
The disadvantages of the mining pools of course, is that this leads to centralization. It’s an open question how much power the operators of a large mining pool actually have.
Of course, miners are fairly free in theory to move between pools as much as they like. If you’re making profit on one pool, you’ll likely make very similar profit in another pool because the fees that they pay out have converged. They all offer about the same deal today. But in practice, miners don’t switch very often simply because they’re lazy, and it’s easier to keep using the pool that they’ve already signed up for.
Another disadvantage of mining pools is that it lowers the population of people actually running a fully validated Bitcoin node.
So previously, small miners all had to run their own fully validating node. They all had to store the entire block chain and validate every transaction. Now, most miners offload that task to their pool manager.
And this is one reason why, a couple of lectures ago, I said the number of fully validating nodes may actually be going down in the Bitcoin network.
So if you’re concerned about this level of centralization, you might ask, could we redesign the mining process so that we don’t have any pools, so that everybody has to mine for themselves?
And once again, that’s gonna be a very interesting topic that we’ll talk about in our lecture on alternative mining approaches.
Quindi, le pool minerarie sono una buona cosa? Bene, i vantaggi dei pool minerari sono che rendono l’estrazione mineraria più prevedibile per i partecipanti. E rendono molto più facile per i minatori più piccoli essere coinvolti nel gioco. Considerando che la varianza renderebbe l’estrazione mineraria semplicemente non fattibile per motivi economici se non si dispone di pool minerari, è possibile gestire un impianto minerario molto più piccolo in modo redditizio se si fa parte di un pool.
Un altro vantaggio dei pool di data mining è che, poiché esiste un gestore di pool essenziale che si trova sulla rete e che assemblano i blocchi. In realtà rende più semplice l’aggiornamento della rete, poiché aggiornando il software che il gestore del pool di mining è in esecuzione, questo aggiorna in modo efficace il software che tutti i membri del pool sono in esecuzione.
Gli svantaggi dei pool minerari, naturalmente, sono la conseguenza della centralizzazione. È una questione aperta quanta potenza hanno effettivamente gli operatori di un grande pool minerario.
Naturalmente, i minatori sono in teoria abbastanza liberi di muoversi tra le pool quanto vogliono. Se stai facendo profitti su un pool, probabilmente realizzerai profitti molto simili in un altro pool perché le commissioni che hanno pagato sono convergenti. Offrono tutti lo stesso accordo oggi. Ma in pratica, i minatori non cambiano molto spesso semplicemente perché sono pigri, ed è più facile continuare a usare il pool per cui si sono già iscritti.
Un altro svantaggio dei pool di data mining è che riduce la popolazione di persone che eseguono effettivamente un nodo Bitcoin completamente convalidato.
Quindi, in precedenza, i piccoli minatori dovevano eseguire il proprio nodo completamente convalidante. Dovevano tutti archiviare l’intera catena di blocchi e convalidare ogni transazione. Ora, la maggior parte dei minatori scarica questa attività sul proprio gestore di pool.
E questo è uno dei motivi per cui, un paio di conferenze fa, ho detto che il numero di nodi pienamente validi potrebbe effettivamente andare giù nella rete Bitcoin.
Quindi, se sei preoccupato per questo livello di centralizzazione, potresti chiedere, potremmo riprogettare il processo di mining in modo che non abbiamo alcun pool, in modo che tutti debbano minare per se stessi?
E ancora una volta, questo sarà un argomento molto interessante di cui parleremo nella nostra lezione sugli approcci minerari alternativi.
[top]
© Edward W. Felten – Professor of Computer Science and Public Affairs Princeton University
SEZIONE 05.03
Consumo energetico ed Ecologia
SEZIONE 05.05
Incentivi e strategie di estrazione