IT201900018935A1 - COMPUTER-IMPLEMENTED METHOD FOR REACHING A DISTRIBUTED CONSENSUS IN A BLOCKCHAIN NETWORK AND NODE IMPLEMENTING THE METHOD. - Google Patents

COMPUTER-IMPLEMENTED METHOD FOR REACHING A DISTRIBUTED CONSENSUS IN A BLOCKCHAIN NETWORK AND NODE IMPLEMENTING THE METHOD. Download PDF

Info

Publication number
IT201900018935A1
IT201900018935A1 IT102019000018935A IT201900018935A IT201900018935A1 IT 201900018935 A1 IT201900018935 A1 IT 201900018935A1 IT 102019000018935 A IT102019000018935 A IT 102019000018935A IT 201900018935 A IT201900018935 A IT 201900018935A IT 201900018935 A1 IT201900018935 A1 IT 201900018935A1
Authority
IT
Italy
Prior art keywords
address
overflow
stake
nodes
main
Prior art date
Application number
IT102019000018935A
Other languages
Italian (it)
Inventor
Giovanni Antino
Iris Dimni
Francesco Pasetto
Original Assignee
Ailia Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ailia Sa filed Critical Ailia Sa
Priority to IT102019000018935A priority Critical patent/IT201900018935A1/en
Priority to EP20807112.6A priority patent/EP4046328A1/en
Priority to PCT/IB2020/059709 priority patent/WO2021074848A1/en
Publication of IT201900018935A1 publication Critical patent/IT201900018935A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

Descrizione dell'invenzione industriale dal titolo: Description of the industrial invention entitled:

"METODO IMPLEMENTATO PER MEZZO DI UN COMPUTER PER RAGGIUNGERE UN CONSENSO DISTRIBUITO IN UNA RETE BLOCKCHAIN E NODO CHE IMPLEMENTA IL METODO" "METHOD IMPLEMENTED BY MEANS OF A COMPUTER TO REACH A DISTRIBUTED CONSENT IN A BLOCKCHAIN AND NODE NETWORK IMPLEMENTING THE METHOD"

DESCRIZIONE DESCRIPTION

CAMPO DELLA TECNICA FIELD OF TECHNIQUE

La presente invenzione riguarda un metodo implementato per mezzo di computer per raggiungere un consenso distribuito basato su puntate per un registro distribuito, come la tecnologia blockchain. The present invention relates to a computer-implemented method of achieving bet-based distributed consensus for a distributed ledger, such as blockchain technology.

STATO DELLA TECNICA STATE OF THE TECHNIQUE

L'invenzione è particolarmente adatta, ma non limitata, a raggiungere un livello più alto di distribuzione di una rete basata su puntate, al fine di non avere troppe puntate concentrate in troppo pochi nodi, aumentando così la solidità della rete e riducendo la sua vulnerabilità a qualsiasi nodo che viene compromesso. The invention is particularly suitable, but not limited, to reach a higher level of distribution of a network based on bets, in order not to have too many bets concentrated in too few nodes, thus increasing the solidity of the network and reducing its vulnerability. to any node that is compromised.

In questo documento viene impiegato il termine blockchain per comprendere tutte le forme di registri elettronici, basati su computer e distribuiti. Questi comprendono, pur senza esserne limitati, tecnologie blockchain e di catene di transazioni, registri autorizzati e non autorizzati, registri basati sul consenso, registri condivisi e loro variazioni. L'applicazione più nota della tecnologia blockchain è il registro Bitcoin, sebbene siano state proposte e sviluppate altre implementazioni blockchain. Un blockchain è un registro elettronico basato sul consenso, il quale viene implementato come un sistema decentrato e distribuito basato su computer, costituito da blocchi i quali a loro volta sono costituiti da transazioni ed altre informazioni. Bitcoin è un esempio di blockchain con prova di lavoro in cui operatori eseguono calcoli costosi per facilitare transazioni sul blockchain. I blockchain basati su prove di lavoro sono stati criticati a causa delle grandi risorse di calcolo richieste, il che richiede un grande consumo di energia per funzionare ed anche per il fatto che la generazione di blocchi può essere irregolare e lenta. Inoltre, diversi blocchi devono essere costruiti al di sopra di un determinato blocco prima che il dato blocco sia considerato confermato (ovvero, è sufficientemente improbabile che venga ripristinato). In this paper, the term blockchain is used to encompass all forms of electronic, computer-based and distributed ledgers. These include, but are not limited to, blockchain and transaction chain technologies, authorized and unauthorized ledgers, consensus based ledgers, shared ledgers and their variations. The best-known application of blockchain technology is the Bitcoin ledger, although other blockchain implementations have been proposed and developed. A blockchain is a consensus-based electronic ledger, which is implemented as a computer-based decentralized and distributed system, consisting of blocks which in turn are made up of transactions and other information. Bitcoin is an example of a proof-of-work blockchain where traders perform expensive calculations to facilitate transactions on the blockchain. Proof-of-work blockchains have been criticized due to the large computing resources required, which requires large energy consumption to operate, and also due to the fact that block generation can be erratic and slow. Also, several blocks must be built on top of a given block before the given block is considered confirmed (that is, it is sufficiently unlikely that it will be restored).

I blockchain basati su proof of stake sono stati proposti in alternativa a blockchain con prova di lavoro. In una rete blockchain con proof of stake, il blockchain è protetto da proof of stake anziché da prova di lavoro. In una proof of stake, gli operatori detengono una puntata (depositando alcuni token) su un conto speciale. Questa puntata può essere definita deposito cauzionale e la probabilità di essere selezionata come il nodo per estrarre un blocco è proporzionale alla quantità delle risorse digitali fornite come deposito cauzionale. Le reti blockchain con proof of stake possono essere utilizzate per evitare le spese di calcolo e l'energia necessaria per un mining su blockchain con prova di lavoro. Inoltre, le blockchain con proof of stake possono consentire una frequenza più elevata ed una creazione di blocchi più regolare rispetto a blockchain con prova di lavoro. Almeno alcune blockchain con proof of stake hanno anche una bassa probabilità di biforcazione ed un blocco può essere efficacemente confermato non appena viene aggiunto alla blockchain. Proof of stake blockchains have been proposed as an alternative to proof of work blockchains. In a proof of stake blockchain network, the blockchain is protected by proof of stake rather than proof of work. In a proof of stake, traders hold a stake (by depositing some tokens) on a special account. This stake can be referred to as a security deposit and the likelihood of being selected as the node to mine a block is proportional to the amount of digital assets provided as a security deposit. Proof of stake blockchain networks can be used to avoid the computational fees and energy required for proof-of-work blockchain mining. Additionally, proof-of-stake blockchains can allow for higher frequency and smoother block creation than proof-of-work blockchains. At least some proof of stake blockchains also have a low probability of bifurcation and a block can be effectively confirmed as soon as it is added to the blockchain.

Come accennato in precedenza, sebbene l'economia di scala porti alla concentrazione di risorse di mining per aumentare l'efficienza della rete, nello sviluppo di una rete distribuita, la concentrazione è un problema relativo al controllo della rete, alla robustezza della rete poiché è impossibile eseguire operazioni di manutenzione pianificata sui nodi. Il problema principale nelle reti piccole e concentrate riguarda la bassa ridondanza in caso di guasti, siano essi problemi di rete, hardware o software. La situazione opposta, in cui vi è un'eccessiva frammentazione, può anche essere controproducente. Questo perché la trasmissione e la replica delle informazioni presentano sempre un sovraccarico all’interno di un sistema reale. Inoltre, l’assegnazione di puntate direttamente a nodi di mining può comportare problemi di sovraccarico se sono presenti vincoli di distribuzione. As mentioned above, although the economy of scale leads to the concentration of mining resources to increase the efficiency of the network, in the development of a distributed network, the concentration is a problem related to the control of the network, the robustness of the network since it is unable to perform scheduled maintenance operations on nodes. The main problem in small and concentrated networks is the low redundancy in case of failures, be it network problems, hardware or software. The opposite situation, in which there is excessive fragmentation, can also be counterproductive. This is because the transmission and replication of information always present an overload within a real system. Furthermore, the assignment of bets directly to mining nodes can lead to overload problems if there are distribution constraints.

Pertanto, è necessario affrontare i problemi di concentrazione sopra citati e migliorare il protocollo di consenso con proof of stake per ottenere un protocollo che incoraggi la distribuzione ed allo stesso tempo l'efficienza della rete. Therefore, it is necessary to address the concentration problems mentioned above and improve the consensus protocol with proof of stake to obtain a protocol that encourages distribution and at the same time the efficiency of the network.

SCOPI DELL'INVENZIONE AIMS OF THE INVENTION

Uno scopo della presente invenzione, secondo un primo dei suoi aspetti, è quello di ottenere un metodo implementato da computer in grado di incoraggiare la distribuzione della rete e l'efficienza degli minatori, e nello stesso tempo ottimizzare la scalabilità della blockchain. An object of the present invention, according to a first of its aspects, is to obtain a computer-implemented method capable of encouraging the distribution of the network and the efficiency of miners, and at the same time optimizing the scalability of the blockchain.

Un secondo scopo della presente invenzione è quello di ottenere un metodo implementato da computer in grado di migliorare la robustezza della rete. A second object of the present invention is to obtain a computer-implemented method capable of improving the robustness of the network.

Un ulteriore scopo è quello ottimizzare il metodo implementato da computer, al fine di aumentare la sicurezza globale della rete blockchain. A further object is to optimize the method implemented by the computer, in order to increase the overall security of the blockchain network.

Un ulteriore scopo della presente invenzione è quello di fornire un metodo implementato da computer il quale incoraggi l’impiego di nodi con prestazioni oneste per estrarre il blocco successivo e di scoraggiare l’impiego di nodi i quali non funzionano bene o hanno comportamenti intenzionalmente cattivi o dannosi. A further object of the present invention is to provide a computer-implemented method which encourages the use of honestly performing nodes to extract the next block and to discourage the use of nodes which do not perform well or have intentionally bad or malicious behavior. harmful.

Uno scopo della presente invenzione è anche quello di mantenere basso il consumo di energia della rete e possibilmente aumentare la potenza di calcolo del nodo solo quando è necessario. An object of the present invention is also that of keeping the energy consumption of the network low and possibly increasing the computing power of the node only when necessary.

Un ulteriore scopo della presente invenzione è quello di fornire un sistema il quale implementa il metodo implementato da computer in modo facilmente progettabile, con un consumo di energia e di calcolo ottimizzato ed estremamente efficiente. A further object of the present invention is to provide a system which implements the computer-implemented method in an easily designable way, with an optimized and extremely efficient energy and calculation consumption.

BREVE DESCRIZIONE DELL'INVENZIONE BRIEF DESCRIPTION OF THE INVENTION

Nel seguito vengono riassunti alcuni aspetti tecnici della presente invenzione, i quali consentono di raggiungere alcuni degli scopi più importanti. Some technical aspects of the present invention are summarized below, which allow to achieve some of the most important purposes.

Secondo un primo aspetto, questa invenzione si riferisce ad un metodo implementato da computer per raggiungere un consenso distribuito basato su proof of stake per una rete blockchain, permettendo così di raggiungere un livello più alto di distribuzione della rete e di non avere troppe puntate concentrati in troppo pochi nodi, detta rete blockchain comprendendo uno o più indirizzi MAIN, per ciascun indirizzo MAIN essendo associati a loro volta uno o più indirizzi/nodi OVERFLOW, l'ultimo essendo in grado di fungere da potenziali nodi di mining, solo se viene assegnato un quantitativo minimo prestabilito di puntate a detti uno o più indirizzi/nodi di OVERFLOW, comprendendo i seguenti processi: According to a first aspect, this invention refers to a computer-implemented method to reach a distributed consensus based on proof of stake for a blockchain network, thus allowing to reach a higher level of network distribution and not to have too many bets concentrated in too few nodes, said blockchain network comprising one or more MAIN addresses, for each MAIN address being associated in turn with one or more OVERFLOW addresses / nodes, the latter being able to act as potential mining nodes, only if a predetermined minimum quantity of bets to said one or more OVERFLOW addresses / nodes, including the following processes:

- un processo di ridistribuzione configurato per calcolare la puntata minima necessaria per un nodo OVERFLOW da estrarre, essendo minimum_stake_value = total_amount_at stake/predetermined_target_number_of_nodes, per calcolare la puntata massima che consente un mining efficiente, essendo maximum_stake_value = minimum_stake_value*2, per ciascun indirizzo MAIN per distribuire la puntata tra i nodi OVERFLOW, per scorrere i nodi OVERFLOW di un dato indirizzo MAIN e per assegnare a ciascun nodo OVERFLOW il minimum_stake_value, fino a quando la rimanente puntata non è sufficiente per attivare un miner su ogni nodo overflow che è stato assegnato alla sua puntata; - a redistribution process configured to calculate the minimum stake needed for an OVERFLOW node to be extracted, being minimum_stake_value = total_amount_at stake / predetermined_target_number_of_nodes, to calculate the maximum stake that allows efficient mining, being maximum_stake_value = minimum_stake_value * 2, for each MAIN address to distribute the stake among the OVERFLOW nodes, to iterate the OVERFLOW nodes of a given MAIN address and to assign the minimum_stake_value to each OVERFLOW node, until the remaining stake is sufficient to activate a miner on each overflow node that has been assigned to the his stake;

-un processo di penalità configurato per congelare una quantità di premio corrispondente al lavoro computazionale per aver minato un numero di slot oltre un limite prestabilito Slot_MAX in un periodo, e per recuperarlo nei periodi seguenti a partire dal periodoi+1, un po' alla volta in base ad un numero di parti proporzionale al numero di slot minati su detto limite prestabilito Slot_MAX, essendo una parte assegnata a ciascuno slot successivo che il miner può venire delegato ad estrarre, questo al fine di incentivare naturalmente la distribuzione della rete blockchain. - a penalty process configured to freeze an amount of reward corresponding to the computational work for having mined a number of slots beyond a predetermined limit Slot_MAX in a period, and to recover it in the following periods starting from period i + 1, a little at a time based on a number of parts proportional to the number of slots mined on said predetermined Slot_MAX limit, being a part assigned to each subsequent slot that the miner can be delegated to extract, this in order to naturally incentivize the distribution of the blockchain network.

Un tale metodo implementato da computer consente naturalmente un'alta distribuzione della rete blockchain. Such a computer-implemented method naturally allows for a high distribution of the blockchain network.

In base ad un secondo aspetto, la presente invenzione si riferisce ad un metodo implementato da computer, nel quale il processo di ridistribuzione può essere ulteriormente configurato in modo tale per cui, se rimane una qualsiasi puntata, questa viene distribuita tra i nodi OVERFLOW fino a quando il maggior numero possibile di nodi ha una puntata uguale al valore di puntata massimo e ciascuna ulteriore puntata viene assegnata al primo nodo OVERFLOW secondo un ordine prestabilito. On the basis of a second aspect, the present invention refers to a method implemented by computer, in which the redistribution process can be further configured in such a way that, if any bet remains, it is distributed among the OVERFLOW nodes up to when the greatest possible number of nodes has a stake equal to the maximum stake value and each further stake is assigned to the first OVERFLOW node in a predetermined order.

Esso permette di ottimizzare la ridistribuzione della quota totale assegnata ad un pool di nodi OVERFLOW collegati ad un indirizzo MAIN e fa in modo che solo primi nodi OVERFLOW in base ad una numerazione prestabilita progressiva univoca possono trovarsi sotto un regime di penalità Secondo un terzo aspetto, la presente invenzione riguarda un metodo implementato da computer comprendente inoltre un processo di inizializzazione configurato per elencare tutti gli indirizzi MAIN della rete blockchain, per ciascun elenco di indirizzi MAIN essendo assegnati indirizzi/nodi OVERFLOW, e quindi per ciascun indirizzo OVERFLOW/nodo trasferisce la quota, se ne possiede una, al suo indirizzo MAIN assegnato. It allows to optimize the redistribution of the total quota assigned to a pool of OVERFLOW nodes connected to a MAIN address and ensures that only the first OVERFLOW nodes on the basis of a predetermined univocal progressive numbering can be under a penalty regime According to a third aspect, the present invention relates to a computer-implemented method further comprising an initialization process configured to list all the MAIN addresses of the blockchain network, for each list of MAIN addresses being assigned OVERFLOW addresses / nodes, and therefore for each OVERFLOW address / node it transfers the quota , if it has one, to its assigned MAIN address.

Esso permette di ottimizzare il processo di ridistribuzione nel caso in cui vi possa essere una qualsiasi quota su un nodo OVERFLOW prima dell’implementazione del processo di distribuzione. It allows you to optimize the redistribution process in the event that there may be any quota on an OVERFLOW node before the implementation of the distribution process.

Secondo un quarto aspetto, la presente invenzione riguarda un metodo implementato da computer il quale comprende inoltre un processo di manutenzione, comprendente le seguenti operazioni, alle quali viene assegnato un indirizzo MAIN ed almeno due o più indirizzi OVERFLOW ed un nodo che si desidera manutenere: According to a fourth aspect, the present invention relates to a computer-implemented method which further comprises a maintenance process, comprising the following operations, to which a MAIN address and at least two or more OVERFLOW addresses are assigned and a node to be maintained:

110: invio di una transazione comprendente un primo input che fornisce un indirizzo OVERFLOW sostitutivo utilizzando il suo codice privato, il che significa che detto indirizzo OVERFLOW sostitutivo è un nodo che sostituisce il nodo che si desidera manutenere 110: sending a transaction comprising a first input that provides a replacement OVERFLOW address using its private code, which means that said replacement OVERFLOW address is a node that replaces the node you want to maintain

120: assegnazione di detto indirizzo OVERFLOW sostitutivo al corrispondente indirizzo MAIN utilizzando il codice privato dell'indirizzo MAIN 120: assignment of said substitute OVERFLOW address to the corresponding MAIN address using the private code of the MAIN address

130: annullamento della registrazione desiderata da manutenere utilizzando il suo codice privato. In alternativa, l’indirizzo MAIN può ANNULLARE L’ASSEGNAZIONE di un nodo di overflow precedentemente assegnato ad esso. 130: cancellation of the desired registration to be maintained using your private code. Alternatively, the MAIN address can UNASSIGN an overflow node previously assigned to it.

Esso permette di manutenere la rete blockchain altamente distribuita anche in caso di guasto di uno o più nodi di mining. It allows you to maintain the highly distributed blockchain network even in the event of the failure of one or more mining nodes.

Secondo ulteriori aspetti, la seguente invenzione riguarda: According to further aspects, the following invention relates to:

- un nodo configurato per implementare un metodo per raggiungere un consenso distribuito basato su proof of stake per una rete blockchain, permettendo così di raggiungere un livello più alto di distribuzione della rete e di non avere troppe puntate concentrate in troppo pochi nodi, detto nodo comprendendo un dispositivo di interfaccia, un processore accoppiato a detto dispositivo di interfaccia, una memoria accoppiata al processore, la memoria avendo immagazzinate su di essa istruzioni eseguibili mediante computer le quali, quando eseguite, configurano il processore per eseguire le corrispondenti operazioni del metodo implementato dal computer descritto. - a node configured to implement a method to reach a distributed consensus based on proof of stake for a blockchain network, thus allowing to reach a higher level of network distribution and not to have too many bets concentrated in too few nodes, said node including an interface device, a processor coupled to said interface device, a memory coupled to the processor, the memory having stored therein executable instructions which, when executed, configure the processor to perform the corresponding operations of the method implemented by the computer described.

- un mezzo di memorizzazione leggibile da computer comprendente istruzioni eseguibili da computer le quali, una volta eseguite, configurano un processore per eseguire il metodo implementato dal computer descritto. - a computer readable storage medium comprising computer executable instructions which, when executed, configure a processor to execute the method implemented by the described computer.

- una rete di computer per eseguire una transazione basata su blockchain da un primo utente a un secondo utente in una rete di trasferimento elettronica di nodi collegati, in cui i nodi comprendono almeno un primo nodo, un secondo nodo descritto, in cui ciascun nodo condivide una stessa blockchain, ed in cui ciascun nodo memorizza un mezzo di memorizzazione leggibile da computer descritto. - a computer network to perform a blockchain-based transaction from a first user to a second user in an electronic transfer network of connected nodes, where the nodes comprise at least one first node, a second node described, in which each node shares a same blockchain, and in which each node stores a described computer-readable storage medium.

BREVE DESCRIZIONE DELLE FIGURE BRIEF DESCRIPTION OF THE FIGURES

Le caratteristiche strutturali e funzionali della presente invenzione ed i suoi vantaggi rispetto alla tecnica precedente nota, diventeranno ancora più chiari in base alle rivendicazioni che seguono, ed in particolare da un esame della seguente descrizione, effettuata con riferimento alle figure allegate le quali mostrano una forma di realizzazione schematica preferita ma non limitata del metodo, sistema, dispositivo implementato da computer secondo l’invenzione, in cui: The structural and functional characteristics of the present invention and its advantages with respect to the prior known art, will become even clearer on the basis of the following claims, and in particular from an examination of the following description, carried out with reference to the attached figures which show a shape of preferred but not limited schematic embodiment of the method, system, device implemented by computer according to the invention, in which:

la figura 1 illustra uno schema di flusso del metodo implementato da computer secondo la presente invenzione; Figure 1 illustrates a flow chart of the computer implemented method according to the present invention;

La figura 2 illustra un esempio operativo del processo di registrazione del metodo implementato da computer secondo la presente invenzione; Figure 2 illustrates an operational example of the registration process of the computer-implemented method according to the present invention;

La figura 3 illustra uno schema di un esempio della rete comprendente un indirizzo MAIN e tre nodi OVERFLOW secondo la presente invenzione; Figure 3 illustrates a diagram of an example of the network comprising a MAIN address and three OVERFLOW nodes according to the present invention;

la figura 4 illustra uno schema di flusso del processo di inizializzazione del metodo implementato da computer secondo la presente invenzione; Figure 4 illustrates a flow diagram of the initialization process of the computer implemented method according to the present invention;

la figura 5 illustra un diagramma di flusso operativo del processo di inizializzazione del metodo implementato da computer secondo la presente invenzione; Figure 5 illustrates an operational flow diagram of the initialization process of the computer implemented method according to the present invention;

la Figura 6 illustra un esempio operativo del processo di inizializzazione del metodo implementato da computer secondo la presente invenzione; Figure 6 illustrates an operational example of the initialization process of the computer-implemented method according to the present invention;

la figura 7 illustra un diagramma di flusso del processo di ridistribuzione del metodo implementato da computer secondo la presente invenzione; Figure 7 illustrates a flow diagram of the redistribution process of the computer implemented method according to the present invention;

la figura 8 illustra un diagramma di flusso operativo del processo di ridistribuzione del metodo implementato da computer secondo la presente invenzione; Figure 8 illustrates an operational flow diagram of the redistribution process of the computer implemented method according to the present invention;

la figura 8 illustra un diagramma di flusso operativo del processo di ridistribuzione del metodo implementato da computer secondo la presente invenzione; Figure 8 illustrates an operational flow diagram of the redistribution process of the computer implemented method according to the present invention;

la figura 9 illustra un esempio operativo del processo di ridistribuzione del metodo implementato da computer secondo la presente invenzione; Figure 9 illustrates an operational example of the redistribution process of the computer implemented method according to the present invention;

la figura 10 illustra uno schema di flusso del processo di penalità del metodo implementato da computer secondo la presente invenzione. Figure 10 illustrates a flow diagram of the penalty process of the computer implemented method according to the present invention.

DESCRIZIONE DETTAGLIATA DELL'INVENZIONE DETAILED DESCRIPTION OF THE INVENTION

In generale, questa divulgazione descrive un metodo implementato da computer, un sistema per raggiungere un consenso distribuito basato su proof of stake per un registro distribuito, come la tecnologia blockchain. In particolare, la presente invenzione riguarda una tecnologia blockchain basata su proof of stake, nella quale possessori di puntate non possono e non devono comunicare con nodi di mining. In general, this disclosure describes a computer-implemented method, a system for achieving distributed consensus based on proof of stake for a distributed ledger, such as blockchain technology. In particular, the present invention relates to a proof of stake-based blockchain technology, in which stake holders cannot and must not communicate with mining nodes.

La tecnologia blockchain secondo la presente invenzione prevede due attori principali: possessori di puntate, ossia cioè quelli che possiedono token che consentono il controllo della catena, ed minatori, cioè quelli che controllano nodi di mining attivamente operanti nella rete ed incaricati di un sufficiente ammontare di puntate per ottenere l'incarico di un certo numero di slot di lavoro, dove questi estraggono un corrispondente numero determinato di blocchi allungando così la catena. The blockchain technology according to the present invention provides for two main actors: stake holders, i.e. those who possess tokens that allow control of the chain, and miners, i.e. those who control mining nodes actively operating in the network and charged with a sufficient amount of you bet to get the job of a certain number of job slots, where they extract a corresponding determined number of blocks thus lengthening the chain.

La blockchain è considerata un meta-attore ed è l'unione dei nodi che operano sulla rete. L'invio di una transazione alla blockchain comporta che questa transazione raggiunga ciascun nodo operativo che aggiorna costantemente il suo stato interno. Queste procedure di aggiornamento sono costruite in modo tale da garantire che le stesse condizioni iniziali producano identici aggiornamenti di stato in ciascun nodo in modo strettamente deterministico. Questo meta-attore rappresenta la massiccia procedura di aggiornamento su ciascun nodo della rete. The blockchain is considered a meta-actor and is the union of the nodes operating on the network. Sending a transaction to the blockchain involves this transaction reaching each operating node which constantly updates its internal status. These update procedures are constructed in such a way as to ensure that the same initial conditions produce identical status updates in each node in a strictly deterministic way. This meta-actor represents the massive upgrade procedure on each node in the network.

D'ora in poi si intende che: From now on it is understood that:

- uno slot è un intervallo di tempo di 30 secondi. Questi slot sono assegnati in modo univoco ai nodi di mining ed all'interno di un determinato slot uno ed un solo nodo ha il diritto di produrre un blocco. - one slot is a time interval of 30 seconds. These slots are uniquely assigned to the mining nodes and within a given slot one and only one node has the right to produce a block.

Questa assegnazione è unica e strettamente deterministica e viene eseguita prima dell'inizio di ciascun periodo; This assignment is unique and strictly deterministic and is performed before the start of each period;

- per un periodo si intende un raggruppamento di slot contigui. Ciascun periodo è costituito da un numero uguale di slot. L'assegnazione e la ridistribuzione di slot ed azioni sono calcolate una volta per ciascun periodo e rimangono invariate fino alla fine dello stesso. - for a period is meant a grouping of contiguous slots. Each period consists of an equal number of slots. The allotment and redistribution of slots and shares are calculated once for each period and remain unchanged until the end of the period.

- una puntata è una rappresentazione numerica del diritto di voto di ciascun possessore di puntate della rete. La puntata può essere delegata con regole ed operazioni specifiche ai nodi coinvolti nella creazione di un blocco. - a bet is a numerical representation of the voting rights of each stakeholder in the network. The bet can be delegated with specific rules and operations to the nodes involved in the creation of a block.

- indirizzo MAIN: questo indirizzo non è associato ad un oggetto fisico (un indirizzo MAIN non è associato ad un nodo di mining attivo) ed agisce come un segnaposto il quale indica un gruppo di risorse fisiche al quale si desidera che la blockchain possa accedere, esponendo così il suo codice privato solo durante una transazione di assegnazione dell'indirizzo OVERFLOW all'indirizzo MAIN e non durante un'altra transazione operativa, aumentando la sicurezza globale della catena; questo indirizzo MAIN (ad esempio alice_main_address) è dichiarato dal suo proprietario e viene gestito tramite il suo codice privato (ad esempio alice_key). Solo l'indirizzo MAIN può dichiarare quali nodi OVERFLOW gli sono assegnati; - MAIN address: this address is not associated with a physical object (a MAIN address is not associated with an active mining node) and acts as a placeholder which indicates a group of physical resources to which you want the blockchain to be able to access, thus exposing its private code only during an OVERFLOW address assignment transaction to the MAIN address and not during another operational transaction, increasing the overall security of the chain; this MAIN address (for example alice_main_address) is declared by its owner and is managed through its private code (for example alice_key). Only the MAIN address can declare which OVERFLOW nodes are assigned to it;

- indirizzo OVERFLOW: questo indirizzo è associato ad un oggetto fisico e funge da nodo di mining attivo; questo indirizzo OVERFLOW (ad esempio node_1_overflow_address) viene gestito utilizzando il suo codice privato (ad esempio node_1_key); è possibile che il gestore di indirizzi MAIN ed il gestore di nodi OVERFLOW siano la stessa entità, però essi utilizzano codici differenti quando impersonano Alice o Node_1; il proprietario di ciascun indirizzo MAIN (ad esempio Alice) utilizzando una transazione specifica associa ciascun nodo di overflow registrato al suo indirizzo MAIN. Solo l'indirizzo MAIN nella rete può collegare un indirizzo OVERFLOW a se stesso, il che significa che solo l'indirizzo MAIN può inviare una transazione di tipo ASSIGN la quale collega un indirizzo OVERFLOW ad un indirizzo MAIN. Questa operazione non è commutativa, ovvero un indirizzo OVERFLOW può non assegnare se stesso ad un indirizzo MAIN. L'indirizzo/nodo OVERFLOW può non venire condiviso tra indirizzi MAIN, un indirizzo OVERFLOW può venire assegnato ad un solo indirizzo MAIN. Solo un indirizzo precedentemente dichiarato come OVERFLOW può essere associato ad un indirizzo MAIN. Un nodo OVERFLOW può anche annullare la registrazione e, in tal modo rimuove se stesso sia dal pool di nodi disponibili sia dall'indirizzo MAIN al quale è stato precedentemente assegnato. Questo per dare ad entrambi i nodi MAIN e OVERFLOW la possibilità di proteggere gli stessi da situazioni indesiderate nelle quali essi vengono collegati tra loro, sia che ciò sia il risultato di un errore in buona fede, sia di un comportamento malintenzionato. - OVERFLOW address: this address is associated with a physical object and acts as an active mining node; this OVERFLOW address (for example node_1_overflow_address) is managed using its private code (for example node_1_key); it is possible that the MAIN address manager and the OVERFLOW node manager are the same entity, but they use different codes when impersonating Alice or Node_1; the owner of each MAIN address (for example Alice) using a specific transaction associates each registered overflow node to its MAIN address. Only the MAIN address in the network can link an OVERFLOW address to itself, which means that only the MAIN address can send an ASSIGN type transaction which links an OVERFLOW address to a MAIN address. This operation is not commutative, ie an OVERFLOW address may not assign itself to a MAIN address. The OVERFLOW address / node may not be shared between MAIN addresses, an OVERFLOW address can only be assigned to one MAIN address. Only an address previously declared as OVERFLOW can be associated with a MAIN address. An OVERFLOW node can also unregister and thereby removes itself from both the pool of available nodes and the MAIN address to which it was previously assigned. This is to give both the MAIN and OVERFLOW nodes the ability to protect them from unwanted situations in which they are linked together, whether this is the result of an error in good faith or of malicious behavior.

Se un indirizzo OVERFLOW non è collegato a nessun indirizzo MAIN, esso sarà operativo solo come un nodo di replica. If an OVERFLOW address is not bound to any MAIN address, it will only operate as a replication node.

Il metodo implementato da computer secondo la presente invenzione (fig.1) comprende un processo di ridistribuzione, un processo di penalità e può comprendere un processo di registrazione, un processo di inizializzazione ed un processo di manutenzione. The computer implemented method according to the present invention (FIG. 1) comprises a redistribution process, a penalty process and may comprise a registration process, an initialization process and a maintenance process.

Il metodo implementato da computer secondo la presente invenzione è impostato secondo i seguenti parametri e valori, laddove detti valori devono essere intesi solo come esempi e possono venire modificati in base a specifiche esigenze tecniche: The computer-implemented method according to the present invention is set according to the following parameters and values, where said values are to be understood only as examples and can be modified according to specific technical requirements:

Durata oraria dello slot = 30 secondi Hourly slot duration = 30 seconds

Slot nel periodo (E_S) = 24000 => numero di slot per ciascun periodo Slots in period (E_S) = 24000 => number of slots for each period

Fattore di penalità = 2 => determina la quantità di penalità di tempo per la violazione del protocollo corrente Penalty Factor = 2 => determines the amount of time penalty for violating the current protocol

Fattore di recupero = 1 => determina l'età del ritorno dal regime di penalità Recovery factor = 1 => determines the age of return from the penalty regime

Numero target di nodi (MAX_N) = 400 => numero ottimale di nodi che formano la rete Target number of nodes (MAX_N) = 400 => optimal number of nodes forming the network

Numero minimo di nodi (min_N) = 200 Minimum number of nodes (min_N) = 200

Slot minimo per nodo Slot_min (E_S/MAX_N) = 60 Minimum slot per node Slot_min (E_S / MAX_N) = 60

Slot massimo per nodo Slot_MAX (E_S/min_N) = 120 Maximum slot per node Slot_MAX (E_S / min_N) = 120

Punto di valutazione di un periodo (EEP) (E_S/3) = 8000 Evaluation point of a period (EEP) (E_S / 3) = 8000

Il processo di registrazione è configurato per registrare uno o più indirizzi MAIN, per registrare uno o più indirizzi/nodi OVERFLOW e per associare uno o più indirizzi/nodi OVERFLOW ad un indirizzo MAIN e per registrare tale associazione. The registration process is configured to register one or more MAIN addresses, to register one or more OVERFLOW addresses / nodes and to associate one or more OVERFLOW addresses / nodes to a MAIN address and to register such association.

Il processo di registrazione (fig. 2, 3) implementato su ciascun nodo di overflow della rete blockchain comprende le seguenti operazioni: The registration process (fig. 2, 3) implemented on each overflow node of the blockchain network includes the following operations:

5: tramite la rete blockchain, ricevere una transazione comprendente come input un indirizzo MAIN e registrarla in un registro di indirizzi utilizzando un codice privato del gestore dell'indirizzo MAIN 10: tramite la rete blockchain, ricevere una transazione comprendente come input uno o più indirizzi OVERFLOW e registrare uno o più indirizzi OVERFLOW nel registro di indirizzi utilizzando un codice privato del gestore di ciascun indirizzo OVERFLOW 5: via the blockchain network, receive a transaction including a MAIN address as input and register it in an address register using a private code of the address manager MAIN 10: via the blockchain network, receive a transaction including one or more addresses as input OVERFLOW and register one or more OVERFLOW addresses in the address register using a private code of the manager of each OVERFLOW address

15: tramite la rete blockchain, ricevere una transazione comprendente come input l'assegnazione di uno o più indirizzi OVERFLOW all'indirizzo MAIN registrato nell’operazione 5. 15: through the blockchain network, receive a transaction including as input the assignment of one or more OVERFLOW addresses to the MAIN address registered in operation 5.

Il metodo implementato da computer secondo la presente invenzione prevede di impostare una quantità minima di puntate (S_min_VAL) assegnata ad un nodo OVERFLOW per venire attivata e considerata come nodo di mining ed al fine di evitare che tutte le puntate concentrate solo su pochi nodi vengano impostate, fissando un limite superiore corrispondente alla quantità di puntate che può venire assegnata ad un nodo, oltre la quale il nodo di mining inizia ad incorrere in penalità. Ciò dovrebbe rendere una concentrazione di puntate al di là di intervalli di efficienza meno allettante per nodi che desiderano raccogliere i massimi premi possibili. La quantità massima di puntate desiderata (S_MAX_VAL) può essere il doppio del valore di S_min_VAL. The method implemented by computer according to the present invention provides for setting a minimum amount of bets (S_min_VAL) assigned to an OVERFLOW node to be activated and considered as a mining node and in order to avoid that all bets concentrated only on a few nodes are set , by setting an upper limit corresponding to the amount of bets that can be assigned to a node, beyond which the mining node begins to incur penalties. This should make a concentration of wagers beyond efficiency ranges less appealing to nodes looking to reap the highest possible rewards. The maximum amount of desired bets (S_MAX_VAL) can be double the value of S_min_VAL.

L'algoritmo è progettato per massimizzare il numero di nodi attivi diffondendo la puntata in eccesso tra il maggior numero possibile di nodi di overflow al fine di espandere la rete aumentando così la sua resilienza. The algorithm is designed to maximize the number of active nodes by spreading the excess bet among as many overflow nodes as possible in order to expand the network thereby increasing its resilience.

Il metodo implementato da computer comprende un processo di inizializzazione al fine di recuperare la puntata indirizzata in modo non corretto su un nodo OVERFLOW e di raccoglierle nel corrispondente indirizzo MAIN prima di eseguire un processo di ridistribuzione secondo il metodo implementato da computer dell'invenzione. Il processo di inizializzazione è utile quando puntate vengono indirizzate in modo non corretto su uno o più nodi OVERFLOW, rendendo così affidabile la distribuzione tra i nodi OVERFLOW. Inoltre, il processo di inizializzazione è utile per garantire che agli indirizzi OVERFLOW non siano assegnate puntate prima di eseguire il processo di ridistribuzione. The computer-implemented method comprises an initialization process in order to retrieve the incorrectly addressed bet on an OVERFLOW node and to collect them in the corresponding MAIN address before carrying out a redistribution process according to the computer-implemented method of the invention. The initialization process is useful when bets are incorrectly addressed on one or more OVERFLOW nodes, thus making distribution between OVERFLOW nodes reliable. Also, the initialization process is useful for ensuring that OVERFLOW addresses are not assigned bets before running the redistribution process.

Il processo di inizializzazione (fig. 4) è configurato per elencare tutti gli indirizzi MAIN della rete blockchain, per ciascun elenco di indirizzi MAIN i suoi indirizzi/nodi OVERFLOW assegnati, e quindi per ciascun indirizzo/nodo OVERFLOW trasferire l’azione, se ne ha, al suo indirizzo MAIN assegnato. Il processo di inizializzazione (figg. 5, 6) implementato su ciascun nodo di overflow della rete blockchain in particolare comprende le seguenti operazioni: The initialization process (fig. 4) is configured to list all the MAIN addresses of the blockchain network, for each MAIN address list its assigned OVERFLOW addresses / nodes, and then for each OVERFLOW address / node to transfer the action, if has, to its assigned MAIN address. The initialization process (figs. 5, 6) implemented on each overflow node of the blockchain network in particular includes the following operations:

20: avere una rete blockchain comprendente uno o più indirizzi MAIN, per ciascun indirizzo MAIN essendo associati a loro volta uno o più indirizzi/nodi di OVERFLOW i quali agiscono come potenziali nodi di mining solo se una quantità minima prestabilita di puntate è assegnata a detto uno o più indirizzo/nodo di OVERFLOW; 20: have a blockchain network comprising one or more MAIN addresses, for each MAIN address being associated in turn with one or more OVERFLOW addresses / nodes which act as potential mining nodes only if a predetermined minimum amount of bets is assigned to said one or more OVERFLOW address / node;

25: tramite la rete blockchain, ricevere una transazione comprendente come input indirizzi dal registro indirizzi che comprende indirizzi MAIN e loro corrispondenti indirizzi OVERFLOW; 25: through the blockchain network, receiving a transaction comprising as input addresses from the address register which includes MAIN addresses and their corresponding OVERFLOW addresses;

30: associare a ciascun indirizzo MAIN un numero progressivo univoco; 30: associate a unique progressive number to each MAIN address;

35: per ciascun indirizzo MAIN verificare se esso contiene una quantità di puntate e se questo valore è> 0, assegnare questo valore al parametro M_A_S, e se questo valore è <= 0, eseguire l’operazione 35 fino al successivo elemento di indirizzo MAIN della rete blockchain e generare una transazione comprendente come output l’esecuzione del valore M_A_S associato al corrispondente indirizzo MAIN, 35: for each MAIN address check if it contains a quantity of bets and if this value is> 0, assign this value to parameter M_A_S, and if this value is <= 0, perform operation 35 until the next MAIN address element of the blockchain network and generate a transaction including as output the execution of the value M_A_S associated with the corresponding MAIN address,

40: associare a ciascun nodo OVERFLOW un numero progressivo univoco 40: associate a unique progressive number to each OVERFLOW node

45: per ciascun nodo OVERFLOW assegnato a ciascun indirizzo MAIN corrispondente verificare se esso contiene una quantità di definita di puntate OVERFLOW_ADDRESS.assigned_stake e se questo valore è> 0, assegnare questo valore al parametro O_A_S, calcolando il valore MAIN_ADDRESS.assigned_stake come M_A_S O_A_S ed assegnare O_A_S = 0 e generare una transazione comprendente come output il valore aggiornato del valore M_A_S associato al corrispondente indirizzo MAIN, quindi eseguire l’operazione 45 fino al successivo indirizzo OVERFLOW assegnato al corrispondente indirizzo MAIN considerato nell’operazione 35, 45: for each OVERFLOW node assigned to each corresponding MAIN address check if it contains a defined amount of OVERFLOW_ADDRESS.assigned_stake and if this value is> 0, assign this value to the O_A_S parameter, calculating the MAIN_ADDRESS.assigned_stake value as M_A_S O_A_S and assign O_A_S = 0 and generate a transaction including as output the updated value of the M_A_S value associated with the corresponding MAIN address, then carry out operation 45 up to the next OVERFLOW address assigned to the corresponding MAIN address considered in operation 35,

e se OVERFLOW_ADDRESS.assigned_stake è <= 0, effettuare l’operazione 45 fino al successivo indirizzo OVERFLOW assegnato al corrispondente indirizzo MAIN considerato nell’operazione 35, 50: generare una transazione comprendente come output il valore aggiornato del valore TOTAL_AT_STAKE per ciascun indirizzo MAIN della rete blockchain corrispondente alla quantità totale di puntate su ciascun indirizzo MAIN dopo aver eseguito le operazioni precedenti. and if OVERFLOW_ADDRESS.assigned_stake is <= 0, perform operation 45 up to the next OVERFLOW address assigned to the corresponding MAIN address considered in operation 35, 50: generate a transaction including as output the updated value of the TOTAL_AT_STAKE value for each MAIN address of the blockchain network corresponding to the total amount of bets on each MAIN address after performing the above operations.

Il processo di ridistribuzione (fig.7) è configurato per calcolare la puntata minima necessaria per estrarre un nodo OVERFLOW, essendo minimum_stake_value = total_amount_at stake/predetermined_target_number_of_nodes, per calcolare la puntata massima che consente un mining efficace, essendo il valore massimo di puntata = valore minimo di puntata * 2 , per ciascun indirizzo MAIN distribuendo la puntata tra i nodi OVERFLOW, scorrendo attraverso i nodi OVERFLOW di un dato indirizzo MAIN ed assegnare a ciascun nodo OVERFLOW il valore minimum_stake_value, fino a quando la puntata rimanente non è sufficiente per attivare un miner o a ciascun nodo di overflow non è stata assegnata la sua puntata. Il processo di ridistribuzione può inoltre essere configurato in modo tale, per cui se rimane una puntata questa viene distribuita tra i nodi OVERFLOW fino a quando il maggior numero possibile di nodi ha una puntata pari al valore massimo della puntata e ciascuna altra puntata viene assegnata al primo nodo OVERFLOW secondo un ordine prestabilito. The redistribution process (fig. 7) is configured to calculate the minimum stake needed to extract an OVERFLOW node, being minimum_stake_value = total_amount_at stake / predetermined_target_number_of_nodes, to calculate the maximum stake that allows effective mining, being the maximum stake = value minimum stake * 2, for each MAIN address by distributing the stake among the OVERFLOW nodes, scrolling through the OVERFLOW nodes of a given MAIN address and assigning each OVERFLOW node the minimum_stake_value, until the remaining stake is sufficient to trigger a miner or each overflow node has not been allocated its stake. The redistribution process can also be configured in such a way that if a stake remains, it is distributed among the OVERFLOW nodes until as many nodes as possible have a stake equal to the maximum stake and each other stake is awarded to the stake. first OVERFLOW node in a predetermined order.

Il processo di ridistribuzione (figg. 8, 9) comprende a sua volta un primo processo di ridistribuzione dell'iterazione in cui l'algoritmo assegna a ciascun nodo OVERFLOW disponibile assegnato a ciascun indirizzo MAIN la quantità minima di puntate necessaria per diventare un nodo di mining attivo, ed in un secondo processo di ridistribuzione di iterazione l'algoritmo distribuisce la puntata cercando di massimizzare il numero di nodi di overflow che operano in una puntata completa in vista di S_MAX_VAL impostato per qualsiasi nodo OVERFLOW. The redistribution process (figs. 8, 9) in turn includes a first iteration redistribution process in which the algorithm assigns to each available OVERFLOW node assigned to each MAIN address the minimum amount of bets necessary to become a active mining, and in a second iteration redistribution process the algorithm distributes the stake trying to maximize the number of overflow nodes operating in a full stake in view of the S_MAX_VAL set for any OVERFLOW node.

Il processo di ridistribuzione comprende in particolare le seguenti operazioni: The redistribution process includes in particular the following operations:

52: avere una rete blockchain comprendente uno o più indirizzi MAIN, per ciascun indirizzo MAIN essendo associati a loro volta uno o più indirizzi/nodi di OVERFLOW i quali agiscono come potenziali nodi di mining solo se una quantità minima prestabilita di puntate è assegnata a detto uno o più indirizzi/nodi di OVERFLOW; 52: have a blockchain network comprising one or more MAIN addresses, for each MAIN address being associated in turn with one or more OVERFLOW addresses / nodes which act as potential mining nodes only if a predetermined minimum amount of bets is assigned to said one or more OVERFLOW addresses / nodes;

55: ottenere come input un valore TOTAL_AT_STAKE per ciascun indirizzo MAIN della rete blockchain corrispondente alla quantità totale di puntate su ciascun indirizzo MAIN 55: get as input a TOTAL_AT_STAKE value for each MAIN address of the blockchain network corresponding to the total amount of bets on each MAIN address

60: calcolare S_min_VAL = TOTAL_AT_STAKE/TARGET NUMBER OF_NODES essendo TARGET NUMBER OF_NODES = numero totale di nodi di mining OVERFLOW nella rete della catena, 60: calculate S_min_VAL = TOTAL_AT_STAKE / TARGET NUMBER OF_NODES being TARGET NUMBER OF_NODES = total number of OVERFLOW mining nodes in the chain network,

Calcolare S_MAX_VAL = S_min_VAL * 2 Calculate S_MAX_VAL = S_min_VAL * 2

Supponendo un valore di contatore ITERATION = 0 Assuming a counter value ITERATION = 0

65: se il valore ITERATION è <2, aggiornare allora il valore di contatore ITERATION = ITERATION 1 65: If the ITERATION value is <2, then update the ITERATION = ITERATION 1 counter value

70: per ciascun indirizzo MAIN che ottiene come input il valore MAIN_ADDRESS.assigned_stake e se questo valore è> 0, il che significa che l'indirizzo MAIN in esame contiene una quantità di puntate, assegnare questo valore al parametro M_A_S, 70: for each MAIN address that gets as input the value MAIN_ADDRESS.assigned_stake and if this value is> 0, which means that the MAIN address in question contains a quantity of bets, assign this value to the parameter M_A_S,

e se il valore M_A_S è> = S_MAX_VAL ripetere l’operazione 70 fino al successivo indirizzo MAIN, 75: se il valore M_A_S è <S_MAX_VAL, ricavare come input il valore OVERFLOW_ADDRESS.assigned_stake per ciascun indirizzo OVERFLOW associato al MAIN in esame, e and if the M_A_S value is> = S_MAX_VAL repeat operation 70 up to the next MAIN address, 75: if the M_A_S value is <S_MAX_VAL, obtain as input the OVERFLOW_ADDRESS.assigned_stake value for each OVERFLOW address associated with the MAIN in question, and

se il valore OVERFLOW_ADDRESS.assigned_stake è = 0 ripetere l’operazione 75 fino al successivo indirizzo OVERFLOW associato al MAIN in esame e if the OVERFLOW_ADDRESS.assigned_stake value is = 0 repeat operation 75 until the next OVERFLOW address associated with the MAIN in question and

se il valore OVERFLOW_ADDRESS.assigned_stake è ≠ 0, assegnare il valore OVERFLOW_ADDRESS.assigned_stake al parametro O_A_S, calcolando MAIN_ADDRESS.assigned_stake = M_A_S-S_min_VAL, e calcolando OVERFLOW_ADDRESS.assigner_stake = O_A_S S_min_VAL, e ripetere l’operazione 75 fino al successivo indirizzo OVERFLOW associato al MAIN in esame. if the OVERFLOW_ADDRESS.assigned_stake value is ≠ 0, assign the OVERFLOW_ADDRESS.assigned_stake value to the O_A_S parameter, calculating MAIN_ADDRESS.assigned_stake = M_A_S-S_min_VAL, and calculating OVERFLOW_ADDRESS.assigner_stake_address = O_A_Stake, and repeat the OVERFLOW_ADDRESS.assigner_stake_ address = O_A_Stake 75 to the MAIN under consideration.

Il processo di penalità rende svantaggiose le operazioni di mining che non rispettano le regole stabilite, incentivando così i nodi ad espandere naturalmente la rete aumentando così la sua capacità di recupero, come già trattato. The penalty process makes mining operations that do not respect the established rules disadvantageous, thus incentivizing the nodes to naturally expand the network thus increasing its resilience, as already discussed.

D'ora in poi si intende: From now on we mean:

periodoi, il periodo in cui gli minatori hanno registrato i loro indirizzi MAIN e OVERFLOW, periodoi+1, il periodo in cui gli minatori estraggono i loro slot assegnati, periodi, the period in which miners have registered their MAIN and OVERFLOW addresses, periodi + 1, the period in which miners mine their assigned slots,

periodoi+2, il periodo in cui vengono valutati premi e penalità. periodi + 2, the period in which prizes and penalties are evaluated.

Il pedice "j" riguarda il bloccoj scritto nello slotj The subscript "j" refers to the blockj written in slotj

Il pedice "i" riguarda il periodoi e ciò che è rilevante per il periodoi . The subscript "i" is about periodi and what is relevant to periodi.

Il metodo implementato da computer secondo la presente invenzione comprende un premio per gli minatori per la remunerazione del loro sforzo di calcolo durante la loro operazione di mining. Se un miner non è in grado di scrivere un blocco nello slot corrispondente o estrae in un numero di slot oltre un limite prestabilito, egli non riceverà nel momento successivo il premio corrispondente per il blocco non scritto o per il blocco minato oltre il limite prestabilito (in ciascuno slot può essere scritto solo un blocco), ma questo premio (per i blocchi minati oltre il limite) viene congelato e verrà recuperato molto lentamente un po' alla volta (ad esempio secondo un numero di parti pari al doppio del numero di slot minati in regime di penalità) per ciascuno slot successivo che sarà stato minato dal miner, in particolare in base a un numero di parti proporzionale al numero di slot minati oltre detto limite prestabilito, Slot_MAX, essendo una parte assegnata a ciascuno dei seguenti slot che miner può essere delegato ad estrarre, quindi al fine di incentivare naturalmente la distribuzione della rete blockchain. The computer-implemented method according to the present invention includes a bonus for miners for remuneration for their computing effort during their mining operation. If a miner is unable to write a block in the corresponding slot or mines in a number of slots beyond a predetermined limit, he will not receive the corresponding reward for the unwritten block or for the mined block beyond the predetermined limit at the next time ( only one block can be written in each slot), but this prize (for blocks mined over the limit) is frozen and will be recovered very slowly a little at a time (for example according to a number of parts equal to twice the number of slots mined under penalty regime) for each subsequent slot that will have been mined by the miner, in particular on the basis of a number of parts proportional to the number of mined slots beyond said predetermined limit, Slot_MAX, being a part assigned to each of the following slots that miner it can be delegated to mine, therefore in order to naturally incentivize the distribution of the blockchain network.

Come menzionato prima, un premioi+2 corrisponde al premio per estrarre un bloccoj 1 nel periodoi 1. Questo premioi 2 comprende una base monetaria (ovvero una nuova moneta creata) per il blocco, i 1 minato, ed ed una commissione di raccoltaj,i i+ 1. Questa commisssione di raccoltaj, i 1 a sua volta comprende la commissione raccolta pagata dagli utenti che desiderano eseguire una transazione e scritta nel relativo bloccoj, i 1 della rete blockchain . As mentioned above, a prize i + 2 corresponds to the prize for mining a blockj 1 in periodi 1. This prizei 2 includes a monetary base (i.e. a new coin created) for the block, i 1 mined, and and a collection feej, i i + 1. This collection commissionj, i 1 in turn includes the collection commission paid by users who wish to execute a transaction and written in the relevant blockj, i 1 of the blockchain network.

D'ora in poi si intende: From now on we mean:

Penalty_slotsi+1 = numero di slot minati oltre il limite nel periodoi+1 ovvero numero di slot su Slot_MAX * 2 Penalty_slotsi + 1 = number of slots mined over the limit in the periodi + 1 or number of slots on Slot_MAX * 2

Commisssione congelatai 1 = è la quantità di premio non erogata agli minatori nel periodoi 1 per aver minato un numero di slot oltre il limite Slot_MAX, essendo quindi stato soggetto ad un regime di penalità. Frozen commissioni 1 = is the amount of reward not paid to miners in periodi 1 for having mined a number of slots above the Slot_MAX limit, thus having been subject to a penalty regime.

Il processo di penalità (fig. 10) implementato su ciascun nodo di overflow della rete blockchain comprende in particolare le seguenti operazioni: The penalty process (fig. 10) implemented on each overflow node of the blockchain network includes in particular the following operations:

80: calcolare la commissione congelata totalei+1 quale importo del premioi+2 non erogato agli minatori in un momento specificoi 1 per aver minato un numero di slot oltre il limite Slot_MAX 80: calculate the total frozen commissioni + 1 as the prize amounti + 2 not paid out to miners at a specific timei 1 for mining a number of slots over the Slot_MAX limit

85: calcolare i penalty_slotsi+1 preferibilmente per due volte (o secondo un’altra legge proporzionale) il numero di slot minati oltre il limite, cioè il numero di slot su Slot_MAX 85: calculate the penalty_slotsi + 1 preferably twice (or according to another proportional law) the number of slots mined over the limit, i.e. the number of slots on Slot_MAX

90: calcolare recovered_feej, i+1 valore come commissione congelatai+1/penalty_slotsi+1, ovvero la commissione da recuperare per ogni slot 90: calculate recovered_feej, i + 1 value as frozen commissioni + 1 / penalty_slotsi + 1, i.e. the commission to be recovered for each slot

95: aggiungere il valore recovered_feej, i+ 1 al premio del MAIN_address per l’mining del bloccoi nel periodoi 1 come premioj, i 1 = un coinbase collect_feej, i 1 recovered_feej, i 1 95: add the recovered_feej value, i + 1 to the MAIN_address prize for blockmining i in the period i 1 as a prizej, i 1 = a collect_feej coinbase, i 1 recovered_feej, i 1

100: calcolare il nuovo valore del parametro frozen_feei+1 come frozen_feei+1 -recovered_feej, i+ 1 ed il nuovo valore di penalty_slots i 1 come penalty_slotsii 1 -1 e ripetere l’operazione 95 per il blocco seguentej+1 nel periodoi+ 1 mentre frozen_fee i 1 > 0 o mentre penalty_slotsi+ 2 > 0. 100: calculate the new value of the parameter frozen_feei + 1 as frozen_feei + 1 -recovered_feej, i + 1 and the new value of penalty_slots i 1 as penalty_slotsii 1 -1 and repeat operation 95 for the following blockj + 1 in the periodi + 1 while frozen_fee i 1> 0 or while penalty_slotsi + 2> 0.

Alla fine di ciascun periodo, corrispondente all'ultimo blocco minato, penalty_slots e frozen_fee vengono trasferiti dal primo nodo OVERFLOW al suo indirizzo MAIN. Allo stesso modo, all'inizio di ciascun periodo, corrispondente al primo blocco minato, i penalty_slots e frozen_fee vengono trasferiti dall'indirizzo MAIN al suo primo nodo OVERFLOW. At the end of each period, corresponding to the last mined block, penalty_slots and frozen_fee are transferred from the first OVERFLOW node to its MAIN address. Similarly, at the beginning of each period, corresponding to the first mined block, the penalty_slots and frozen_fee are transferred from the MAIN address to its first OVERFLOW node.

Questa procedura è necessaria per evitare comportamenti malintenzionati come trasferimenti indebiti di token da un pool ad un altro. This procedure is necessary to avoid malicious behavior such as undue transfers of tokens from one pool to another.

Inoltre, è sempre possibile registrare un nuovo nodo di overflow e calcolare il suo indirizzo in modo che preceda nell'ordine di overflow quello con le penalità assegnate. In tal modo, un pool recupererebbe le commissioni congelate senza reinserirsi nei parametri ottimali o estendere la rete. Considerando che in circostanze normali le commissioni superano la base monetaria generata ciò ridurrebbe in modo significativo l'efficacia delle penalità. Furthermore, it is always possible to register a new overflow node and calculate its address so that it precedes the one with the assigned penalties in the overflow order. In doing so, a pool would recoup the frozen fees without getting back into optimal parameters or extending the network. Considering that under normal circumstances the fees exceed the generated monetary base this would significantly reduce the effectiveness of the penalties.

Per quanto riguarda eventi di manutenzione programmata al fine di mantenere la rete blockchain altamente distribuita anche in caso di guasto di uno o più nodi di mining, l'invenzione implementata da computer secondo la presente invenzione può comprendere un processo di manutenzione comprendente a sua volta le seguenti operazioni, ricevendo un indirizzo MAIN ed almeno due o più indirizzi OVERFLOW ed un nodo che si desidera manutenere: As regards scheduled maintenance events in order to maintain the highly distributed blockchain network even in the event of a failure of one or more mining nodes, the invention implemented by computers according to the present invention can comprise a maintenance process comprising in turn the following operations, receiving a MAIN address and at least two or more OVERFLOW addresses and a node to be maintained:

110: inviare di una transazione comprendente un primo input che fornisce un indirizzo OVERFLOW sostitutivo utilizzando il suo codice privato, il che significa che detto indirizzo OVERFLOW sostitutivo è un nodo che sostituisce il nodo che si desidera manutenere 110: send of a transaction comprising a first input that provides a replacement OVERFLOW address using its private code, which means that said replacement OVERFLOW address is a node that replaces the node you want to maintain

120: assegnare detto indirizzo OVERFLOW sostitutivo al corrispondente indirizzo MAIN utilizzando il codice privato dell'indirizzo MAIN 120: assign said substitute OVERFLOW address to the corresponding MAIN address using the private code of the MAIN address

130 annullare la registrazione del nodo che si desidera manutenere utilizzando il suo codice privato. In alternativa l'indirizzo MAIN può ANNULLARE L’ASSEGNAZIONE di un nodo di overflow precedentemente assegnato ad esso. 130 unregister the node you want to maintain using its private code. Alternatively, the MAIN address can UNASSIGN an overflow node previously assigned to it.

Per quanto riguarda aspetti di sicurezza della blockchain secondo la presente invenzione, secondo il modo con cui è strutturato il sistema di assegnazione, codici privati dell'indirizzo MAIN entrano in gioco solo per il breve momento di tempo necessario per generare la registrazione e la transazione di assegnazione, però non sono più coinvolti in alcuna successiva fase di elaborazione. Questo lo esenta dall'essere disponibile online su un oggetto che potrebbe essere soggetto ad attacchi malintenzionati. D'altro canto, una presenza costante online di un server fisico ed i codici corrispondenti necessari per operare sulla rete consentono ad una terza parte malintenzionata di rubare loro codici privati e di assumere tutte le azioni delegate all’insieme degli indirizzi MAIN. As regards the security aspects of the blockchain according to the present invention, according to the way in which the assignment system is structured, private codes of the MAIN address come into play only for the short moment of time necessary to generate the registration and the transaction of assignment, however, they are no longer involved in any subsequent processing phase. This exempts it from being available online on an object that could be subject to malicious attacks. On the other hand, a constant online presence of a physical server and the corresponding codes necessary to operate on the network allow a malicious third party to steal their private codes and to take all the actions delegated to the set of MAIN addresses.

La presente invenzione riguarda inoltre un nodo (preferibilmente un nodo OVERFLOW) configurato per implementare il metodo implementato da computer descritto, detto nodo comprendendo un dispositivo di interfaccia, un processore accoppiato al detto dispositivo di interfaccia, una memoria accoppiata al processore, la memoria avendo immagazzinato su di essa istruzioni eseguibili da un computer le quali, una volta eseguite, configurano il processore per eseguire le operazioni corrispondenti del metodo implementato dal computer descritto. The present invention also relates to a node (preferably an OVERFLOW node) configured to implement the described computer-implemented method, said node comprising an interface device, a processor coupled to said interface device, a memory coupled to the processor, the memory having stored on it instructions executable by a computer which, once executed, configure the processor to perform the corresponding operations of the method implemented by the described computer.

La presente invenzione riguarda inoltre un mezzo di memorizzazione leggibile da computer comprendente istruzioni eseguibili da computer le quali, quando vengono eseguite, configurano un processore per eseguire il metodo implementato da computer descritto. The present invention also relates to a computer readable storage medium comprising computer executable instructions which, when executed, configure a processor to execute the described computer implemented method.

La presente invenzione riguarda inoltre una rete di computer per eseguire una transazione basata su blockchain da un primo utente ad un secondo utente in una rete di trasferimento elettronico di nodi collegati, in cui i nodi comprendono almeno un primo nodo, un secondo nodo, come descritto in precedenza, in cui ciascun nodo condivide una stessa blockchain, ed in cui ciascun nodo memorizza un mezzo di memorizzazione leggibile da computer descritto in precedenza. The present invention also relates to a computer network for performing a blockchain-based transaction from a first user to a second user in an electronic transfer network of connected nodes, in which the nodes comprise at least a first node, a second node, as described previously, in which each node shares a same blockchain, and in which each node stores a computer-readable storage medium described above.

Nel seguito vengono descritti alcuni esempi operativi del metodo implementato da computer secondo la presente invenzione. Some operational examples of the computer-implemented method according to the present invention are described below.

Primo esempio: operatore malintenzionato First example: attacker

Si suppongano due indirizzi MAIN: Suppose two MAIN addresses:

� Alice, alice_main_addr, node_a1, node_a2, ..., node_a10 puntata 30.000 � Alice, alice_main_addr, node_a1, node_a2, ..., node_a10 episode 30.000

� Mallory, mallory_main_addr, node_m1, node_m2,…, puntata node_m530.000 � Mallory, mallory_main_addr, node_m1, node_m2,…, stake node_m530.000

Puntate totali: 1.200.000 Total bets: 1,200,000

Puntata minima: 3.000 Puntata massima: 6.000 Minimum bet: 3,000 Maximum bet: 6,000

Slot min: 60 Slot max: 120 Min slot: 60 Max slot: 120

Ad ogni blocco generato viene assegnato un premio di 1 token Each block generated is awarded a reward of 1 token

Nel periodo 14 Alice e Mallory hanno completato la registrazione dei loro indirizzi principali ed hanno assegnato loro i loro nodi. In period 14 Alice and Mallory completed the registration of their main addresses and assigned their nodes to them.

Questi saranno attivi a partire dal periodo 15 These will be active starting from period 15

Nel periodo 16 viene calcolato il premio. In period 16 the premium is calculated.

All'inizio del periodo 15 Alice avrà 10 nodi attivi (node_a1, ..., node_a10) ciascuno con 60 slot assegnati. All'inizio del periodo 15, Mallory avrà 5 nodi attivi (node_m1, ..., node_m5) ciascuno con 120 slot assegnati. At the start of period 15 Alice will have 10 active nodes (node_a1, ..., node_a10) each with 60 assigned slots. At the start of period 15, Mallory will have 5 active nodes (node_m1, ..., node_m5) each with 120 assigned slots.

Gli slot di Alice e Mallory sono gli stessi poiché hanno la stessa puntata attiva. Tuttavia, la distribuzione cambia. Mallory ha solo 5 nodi mentre Alice ne ha 10. Nessuno di questi è penalizzato. I nodi di Alice sono attivi con il minimo, i nodi di Mallory con il massimo. Alice and Mallory's slots are the same as they have the same active bet. However, the distribution changes. Mallory has only 5 knots while Alice has 10. None of these are penalized. Alice's nodes are active with the minimum, Mallory's nodes with the maximum.

Si supponga una perfetta esecuzione del protocollo nel periodo 15, senza transazioni per semplificare l'esempio. Suppose a perfect execution of the protocol in period 15, with no transactions to simplify the example.

I dieci nodi Alice hanno assegnato 60 slot, producendo così 60 blocchi; in ciascun blocco vi sarà un premio di 1 token. Essendo dieci i nodi (60 * 10 * 1) il premio sarà di 600 token. All'inizio del periodo 16, il saldo di Alice aumenterà da 30.000 a 30.600 token. The ten Alice nodes have assigned 60 slots, thus producing 60 blocks; in each block there will be a reward of 1 token. Since there are ten nodes (60 * 10 * 1) the prize will be 600 tokens. At the start of period 16, Alice's balance will increase from 30,000 to 30,600 tokens.

Passiamo ora a Mallory: i cinque nodi di Mallory hanno assegnato 120 slot, producendo così 120 blocchi; in ogni blocco vi sarà un premio di 1 token. Essendo cinque i nodi (120 * 5 * 1) il premio previsto sarà di 600 token. All'inizio del periodo 16, il saldo di Mallory dovrebbe aumentare da 30.000 a 30.600 token. Solo tre dei nodi Mallory, node_m3, node_m4, node_m5, sono stati modificati per funzionare in modo errato. Le cause di questo comportamento possono essere varie ed ora ne elencheremo alcune. Let's now turn to Mallory: Mallory's five nodes have assigned 120 slots, thus producing 120 blocks; in each block there will be a reward of 1 token. As there are five nodes (120 * 5 * 1), the expected prize will be 600 tokens. At the start of period 16, Mallory's balance is expected to increase from 30,000 to 30,600 tokens. Only three of the Mallory nodes, node_m3, node_m4, node_m5, were modified to function incorrectly. The causes of this behavior can be various and now we will list some of them.

● È stata apportata una modifica intenzionale allo scopo di eseguire operazioni non valide (transazioni duplicate, accettazione di transazioni false con codice errato, ...) = Interazione malintenzionata volontaria. ● An intentional change was made in order to perform invalid operations (duplicate transactions, accepting false transactions with wrong code, ...) = Intentional malicious interaction.

● Il server su cui è installato il nodo non funziona correttamente e fallisce le operazioni matematiche contrassegnando come transazioni valide non valide ad esempio Carol, con un budget di 100 token, e ne invia 25 a Bob. L'operazione è legale ma è contrassegnata come illegale nel blocco del prodotto . = Interazione malintenzionata involontaria. ● The server on which the node is installed is malfunctioning and fails the mathematical operations by marking as valid transactions invalid for example Carol, with a budget of 100 tokens, and sends 25 to Bob. The operation is legal but is marked as illegal in the product block. = Unintentional malicious interaction.

● La connessione di rete del server non è affidabile ed il blocco non viene trasmesso in tempo. = Interazione malintenzionata involontaria. ● The server's network connection is unreliable and the block is not transmitted in time. = Unintentional malicious interaction.

● Il blocco non è collegato al suo predecessore valido immediato ma a un altro predecessore che viola la regola di estendere la catena più pesante. In questo modo, il nodo mira a far scomparire transazioni indesiderate, ad esempio un pagamento, dalla storia della catena = Interazione malintenzionata involontaria. ● The block is not linked to its immediate valid predecessor but to another predecessor that violates the rule of extending the heaviest chain. In this way, the node aims to make unwanted transactions, such as a payment, disappear from the history of the chain = Unintentional Malicious Interaction.

Questi aspetti fanno sì che i blocchi generati dal node_m5 vengano rifiutati dagli altri nodi e non diventino parte della blockchain. These aspects ensure that the blocks generated by node_m5 are rejected by the other nodes and do not become part of the blockchain.

In questo modo il premio raccolto da Mallory sarà: In this way the prize collected by Mallory will be:

Passiamo ora ad una valutazione della parte rimanente della rete. We now pass to an evaluation of the remaining part of the network.

Alice e Mallory hanno in totale (30.000 Alice e 30.000 Mallory) 60.000 token di puntate. Alice and Mallory have a total (30,000 Alice and 30,000 Mallory) 60,000 stake tokens.

Sul resto della rete (1.200.000 - 60.000) rimangono in gioco 1.140.000 token. On the rest of the network (1,200,000 - 60,000) 1,140,000 tokens remain in play.

Supponendo che tutto il resto della rete funzioni in condizioni ideali e senza transazioni con gli altri nodi che compongono la rete, verranno assegnati: Assuming that all the rest of the network works in ideal conditions and without transactions with the other nodes that make up the network, we will assign:

Verranno generati 22.800 blocchi e quindi un premio di 22.800 token. 22,800 blocks will be generated and therefore a prize of 22,800 tokens.

Nel periodo 15 la puntata totale della rete è di 1.200.000, la puntata assegnata a nodi non Alice o Mallory è di 1.140.000. Nel periodo 16 il premio per i nodi sopra menzionati sarà di 22.800 token, portando la loro puntata a 1.162.800 token. In period 15 the total stake of the network is 1,200,000, the stake assigned to non-Alice or Mallory nodes is 1,140,000. In period 16 the prize for the aforementioned nodes will be 22,800 tokens, bringing their stake to 1,162,800 tokens.

Considerando che il Mallory principale ha raccolto una puntata inferiore, abbiamo ricalcolato i valori per il periodo successivo. Considering that the main Mallory has collected a lower bet, we have recalculated the values for the following period.

La puntata complessiva è di 1.200.000 600 240 22.800 = 1.223.640 The overall stake is 1,200,000 600 240 22,800 = 1,223,640

La tabella seguente confronta la percentuale di controllo della rete nel momento 15 con la rivalutazione nel periodo 16 (prevista) e 16 (reale) The table below compares the control rate of the network at time 15 with the revaluation in period 16 (expected) and 16 (real)

Come si può vedere, la potenza di calcolo di Mallory non è stata ridotta (l'algoritmo non è punitivo nel senso classico della rimozione di qualcosa) ma è cresciuto più lentamente di quello degli altri componenti della rete. Ciò ha causato, nel punto di ricalcolo del momento 16, un cambiamento nell'allocazione degli slot con Mallory per cui si è visto togliere lo 0,03% della potenza di calcolo rispetto al totale degli slot di rete. Invece, confrontandolo con il suo numero di slot precedente, la riduzione corrisponde alla perdita di 1,17% degli slot. As you can see, Mallory's computing power has not been reduced (the algorithm is not punitive in the classic sense of removing something) but has grown more slowly than that of the other components of the network. This caused, at the recalculation point of moment 16, a change in the allocation of the slots with Mallory for which 0.03% of the computing power was removed from the total network slots. Instead, comparing it to its previous slot number, the reduction corresponds to the loss of 1.17% of the slots.

Secondo esempio: puntata squilibrata con commissione Second example: unbalanced bet with commission

Supponiamo che due indirizzi MAIN: Suppose two MAIN addresses:

� Alice, alice_main_addr, node_a1, node_a2,…, puntata node_a10 � Alice, alice_main_addr, node_a1, node_a2,…, stake node_a10

Puntata 30.000 Stake 30,000

� Mallory, mallory_main_addr, node_m1 � Mallory, mallory_main_addr, node_m1

Puntata 30.000 Stake 30,000

Puntata totale: 1.200.000 Total stake: 1,200,000

Puntata minima: 3.000 Puntata massima: 6.000 Minimum bet: 3,000 Maximum bet: 6,000

Slot min: 60 Slot max: 120 Min slot: 60 Max slot: 120

Ad ogni blocco generato viene assegnato un premio di 1 token Each block generated is awarded a reward of 1 token

Nel momento 14 Alice e Mallory hanno completato la registrazione dei loro indirizzi principali ed hanno assegnato i loro nodi. In time 14 Alice and Mallory have completed the registration of their main addresses and have assigned their nodes.

Questi saranno attivi a partire dal periodo 15 These will be active starting from period 15

Nel periodo 16 verrà calcolato il premio. In period 16 the premium will be calculated.

All'inizio del periodo 15 Alice avrà dieci nodi attivi (node_a1, ..., node_a10) ciascuno con 60 slot assegnati. At the start of period 15 Alice will have ten active nodes (node_a1, ..., node_a10) each with 60 assigned slots.

All'inizio del periodo 15, Mallory avrà un nodo node_m1 attivo con 600 slot assegnati. At the start of period 15, Mallory will have an active node_m1 node with 600 assigned slots.

Gli slot di Alice e Mallory sono gli stessi poiché hanno la stessa puntata attiva. Tuttavia, la distribuzione cambia. Mallory ha un solo nodo mentre Alice ne ha dieci. Mallory è penalizzato. I nodi di Alice sono attivi con il minimo, il nodo di Mallory è di 480 slot oltre il limite e per questo riceverà una penalità. Alice and Mallory's slots are the same as they have the same active bet. However, the distribution changes. Mallory has only one knot while Alice has ten. Mallory is penalized. Alice's nodes are active with the minimum, Mallory's node is 480 slots over the limit and for this she will receive a penalty.

Supponendo una perfetta esecuzione del protocollo nel periodo 15, supponiamo che una media di 5 token/blocco sia l'ammontare della commissione raccolta, per maggior semplicità. Assuming a perfect execution of the protocol in period 15, let's assume that an average of 5 tokens / block is the amount of the commission collected, for simplicity.

I dieci nodi di Alice hanno assegnati 60 slot, producendo così 60 blocchi, ed in ciascun blocco vi sarà un premio di 1 token. Essendo dieci i nodi (60 * 10 * 1) il premio sarà di 600 token. All'inizio del periodo 16, il saldo di Alice aumenterà da 30.000 a 30.600 token. A questi aggiungeremo i premi delle operazioni 600 * 5 = 3.000 token. Alice totalizzerà 33.600 token a seguito di operazioni nel periodo 15. Alice's ten nodes have assigned 60 slots, thus producing 60 blocks, and in each block there will be a prize of 1 token. Since there are ten nodes (60 * 10 * 1) the prize will be 600 tokens. At the start of period 16, Alice's balance will increase from 30,000 to 30,600 tokens. To these we will add the rewards of the operations 600 * 5 = 3,000 tokens. Alice will total 33,600 tokens as a result of operations in period 15.

Passiamo ora a Mallory: il nodo di Mallory ha assegnati 600 slot, quindi produrrà 600 blocchi, e per i primi 120 blocchi verrà assegnato un premio di 1 token. Per i seguenti 480 il premio sarà 0. Per quanto riguarda i premi, usando la distribuzione omogenea indicata nelle condizioni preliminari, a Mallory verrà assegnato il premio solo nei primi 120 slot. Per questi riceverà 5 * 120 = 600 token. I restanti 2.400 vengono congelati per essere restituiti in un periodo di 480 * 2 = 960 slot entro i limiti. Supponendo che la configurazione dei nodi non cambi dal periodo 15 al periodo 16, valutiamo cosa succede all'EEP del periodo 16 per il periodo 17. Let's now move on to Mallory: Mallory's node has assigned 600 slots, so it will produce 600 blocks, and for the first 120 blocks a prize of 1 token will be awarded. For the following 480 the prize will be 0. As for the prizes, using the even distribution indicated in the preliminary conditions, Mallory will be awarded the prize only in the first 120 slots. For these he will receive 5 * 120 = 600 tokens. The remaining 2,400 are frozen to be returned over a period of 480 * 2 = 960 slots within limits. Assuming that the node configuration does not change from period 15 to period 16, we evaluate what happens to the EEP of period 16 for period 17.

All'inizio del periodo 16, il saldo di Mallory dovrebbe aumentare da 30.000 a 30.600 token a seguito della base monetaria e dovrebbero essere assegnati ulteriori 3.000 token a causa delle commissioni. Solo che Mallory ha attivato un numero di nodi insufficiente per soddisfare i requisiti della rete. At the start of period 16, Mallory's balance is expected to increase from 30,000 to 30,600 tokens as a result of the monetary base and an additional 3,000 tokens should be awarded due to fees. Only that Mallory has activated too few nodes to meet the network requirements.

Passiamo ora a una valutazione della parte rimanente della rete. Let us now move on to an assessment of the remainder of the network.

Alice e Mallory hanno in totale (30.000 Alice e 30.000 Mallory) 60.000 token di puntata. Alice and Mallory have a total (30,000 Alice and 30,000 Mallory) 60,000 stake tokens.

Sul resto della rete (1.200.000 - 60.000) = 1.140.000 token rimangono in gioco. On the rest of the network (1,200,000 - 60,000) = 1,140,000 tokens remain in play.

Supponendo che tutto il resto della rete funzioni in condizioni ideali e senza transazioni con gli altri nodi che compongono la rete, verranno assegnati: Assuming that all the rest of the network works in ideal conditions and without transactions with the other nodes that make up the network, we will assign:

Verranno generati 22.800 blocchi e quindi un premio di 22.800 token per la parte della base monetaria. Per la parte di commissioni 114.000 token 22,800 blocks will be generated and therefore a prize of 22,800 tokens for the monetary base part. For the commission portion 114,000 tokens

Puntate precedenti di altri nodi 1.140.000 Previous bets of other nodes 1,140,000

Altri nodi di base monetaria 22.800 Other monetary base nodes 22,800

Altri nodi di concessione 114.000 = Other concession nodes 114,000 =

Totale altri nodi 1.276.800 Total other nodes 1,276,800

Puntata precedente il periodo di Alice 30.000 Pre-Alice bet 30,000

Base monetaria di Alice 600 Monetary base of Alice 600

Commissione di Alice 3.000 = Alice's commission 3.000 =

Totale Alice 33.600 Total Alice 33,600

Puntata precedente il periodo di 30.000 Stake prior to the period of 30,000

Mallory Mallory

Base monetaria di Mallory 120 Mallory monetary base 120

Commissione di Mallory 600 = Mallory commission 600 =

Totale di Mallory 30,720 = Mallory's total 30,720 =

Puntata totale per nuovo periodo 1.341.120 Total stake for new period 1,341,120

La tabella seguente confronta la percentuale di controllo della rete nel momento 15 con la rivalutazione nel periodo 16 (prevista) e 16 (reale) The table below compares the control rate of the network at time 15 with the revaluation in period 16 (expected) and 16 (real)

Come si può vedere, il potere computazionale di Mallory non è stato ridotto (l'algoritmo non è punitivo nel senso classico della rimozione di qualcosa) ma è cresciuto più lentamente di quello degli altri componenti della rete. Ciò ha causato, nel punto di ricalcolo del periodo 16, un cambiamento nell'allocazione degli slot con Mallory che si è visto togliere lo 0,21% della potenza di calcolo sulla rete. Confrontandolo con il suo numero di slot precedente, la riduzione corrisponde alla perdita dell'8,33% dello slot. L'algoritmo, in presenza delle commissioni (quindi di una rete caricata), diventa fortemente punitivo. Questo perché quanto maggiore è il carico della rete, tanto più le violazioni diventano critiche. Terzo esempio: Recupero di una puntata congelata As can be seen, Mallory's computational power has not been reduced (the algorithm is not punitive in the classic sense of removing something) but has grown more slowly than that of the other components of the network. This caused, at the point of recalculation of period 16, a change in the allocation of the slots with Mallory which was seen to take away 0.21% of the computing power on the network. Compared to its previous slot number, the reduction corresponds to the loss of 8.33% of the slot. The algorithm, in the presence of commissions (therefore of a loaded network), becomes highly punitive. This is because the greater the network load, the more critical the breaches become. Third example: Retrieving a frozen bet

In questa sezione verrà presentato il meccanismo di restituzione per le puntate che sono state congelate a partire dalla condizione simulata nella puntata squilibrata con commissione. In questo modo viene premiato il rientro nei parametri operativi ottimali della rete. In this section we will present the refund mechanism for bets that have been frozen starting from the simulated condition in the unbalanced bet with commission. In this way, the return to the optimal operating parameters of the network is rewarded.

Mallory riconfigura il pool per adattarlo ai parametri di mining ottimali Mallory reconfigures the pool to fit the optimal mining parameters

A partire dalla condizione sopra menzionata (secondo esempio), prima dell'EEP del periodo 16 esso aggiunge 4 nodi. Con l'aggiunta di 4 nodi i suoi 550 slot sono divisi in 550/5 = 110 <120. Come sempre, la modifica avrà effetto solo dal prossimo periodo. Starting from the aforementioned condition (second example), before the EEP of period 16 it adds 4 nodes. With the addition of 4 nodes its 550 slots are divided into 550/5 = 110 <120. As always, the change will only take effect from the next period.

Con questa modifica, esso lascia completamente la zona di penalità. With this change, it leaves the penalty zone entirely.

Come condizioni iniziali si considerino quelle evidenziate in grigio dell'ultima colonna. As initial conditions, consider those highlighted in gray in the last column.

Si simuli ora l'esecuzione nel caso in cui Mallory corregga il suo comportamento con l'aggiunta di 4 nodi. Now simulate the execution in case Mallory corrects its behavior by adding 4 nodes.

In questo caso si otterrà una premio per i suoi 550 slot: In this case you will get a reward for its 550 slots:

coinbase = 550 * 1 = 550 coinbase = 550 * 1 = 550

collected_fee = 550 * 5 = 2750 collected_fee = 550 * 5 = 2750

Dal momento precedente, Mallory ha ereditato una commissione congelata di 2400 token ed un numero di slot di penalità pari a 960 (il doppio degli slot per i quali esso è rimasto al di fuori dei parametri). La formula per calcolare la commissione recuperata per uno slot è la seguente: recovered_feeE17S1 = frozen_feeE17S1/penalty_slotsE17S1 From the previous moment, Mallory inherited a frozen commission of 2400 tokens and a number of penalty slots of 960 (twice as many slots for which it remained out of parameters). The formula to calculate the commission recovered for a slot is as follows: recovered_feeE17S1 = frozen_feeE17S1 / penalty_slotsE17S1

A questo punto vengono aggiornati i valori di frozen_fee e di penalty_slots: At this point the frozen_fee and penalty_slots values are updated:

frozen_feeE17S2 = frozen_feeE17S1 - recovered_feeE17S1 frozen_feeE17S2 = frozen_feeE17S1 - recovered_feeE17S1

penalty_slotsE17S2 = penalty_slotsE17S1 - 1 penalty_slotsE17S2 = penalty_slotsE17S1 - 1

Per comodità di nota, il periodo del valore assoluto è indicato nel pedice, in questo caso 17, ma nello slot 2 è indicato lo slot assegnato a Mallory dopo uno. I due slot potrebbero non essere consecutivi. In questo caso, dopo la "s", viene mostrato il numero progressivo dello slot assegnato a Mallory. For convenience of note, the period of the absolute value is indicated in the subscript, in this case 17, but in slot 2 the slot assigned to Mallory after one is indicated. The two slots may not be consecutive. In this case, after the "s", the progressive number of the slot assigned to Mallory is shown.

La tabella seguente mostra l'evoluzione dei valori al passaggio degli slot. The following table shows the evolution of the values at the passage of the slots.

Alla fine del periodo, Mallory avrà recuperato 275 token per i 2400 congelati. Ciò gli consente di colmare parzialmente il divario con gli altri nodi della rete e costituisce un incentivo a favorire il comportamento virtuoso di aver aggiunto nodi. By the end of the period, Mallory will have recovered 275 tokens for the 2400 frozen. This allows it to partially bridge the gap with the other nodes in the network and constitutes an incentive to favor the virtuous behavior of having added nodes.

Nelle commissioni congelate non vi sono basi monetarie che non siano state generate. È sempre ed in ogni caso più conveniente per un nodo operare in conformità con le regole piuttosto che utilizzare questa procedura di ripristino. In frozen commissions, there are no monetary bases that have not been generated. It is always and in any case more convenient for a node to operate in accordance with the rules rather than using this recovery procedure.

Claims (11)

RIVENDICAZIONI 1. Metodo implementato da computer per raggiungere un consenso distribuito basato su una proof of stake per una rete blockchain, permettendo così di raggiungere un livello più alto di distribuzione della rete e di non avere troppe puntate concentrate in troppi nodi, detta rete blockchain comprendendo uno o più indirizzi MAIN, per ciascun indirizzo MAIN essendo associato a sua volta uno o più indirizzi/nodi OVERFLOW, l'ultimo essendo in grado di fungere da potenziali nodi di mining solo se una quantità minima prestabilita di puntate è assegnata a detto uno o più indirizzi/nodi OVERFLOW, comprendente i seguenti processi: -un processo di ridistribuzione configurato per calcolare la puntata minima necessaria per un nodo OVERFLOW da estrarre, essendo minimum_stake_value = total_amount_at stake/predetermined_target_number_of_nodes, per calcolare la puntata massima che consente un mining efficiente, essendo il valore di puntata massimo = valore di puntata minimo * 2, per ciascun indirizzo MAIN per distribuire la puntata tra i nodi OVERFLOW, scorrendo attraverso i nodi OVERFLOW di un dato indirizzo MAIN e per assegnare a ciascun nodo OVERFLOW il minimum_stake_value, fino a quando la puntata rimanente non è sufficiente per attivare un miner o per fare in modo che a ciascun nodo di overflow sia stata assegnata la sua puntata; -un processo di penalità configurato per congelare una quantità di ricompensa corrispondente al lavoro computazionale per aver minato un numero di slot su un limite prestabilito Slot_MAX in un periodoi 1 e per recuperarlo nei periodi seguenti a partire dal periodoi 2 , un po' alla volta, in base ad un numero di parti proporzionale al numero di slot minati su detto limite prestabilito Slot_MAX, essendo una parte assegnata a ciascuno slot successivo per il quale il miner è delegabile al mining, quindi al fine di incentivare naturalmente la distribuzione della rete blockchain. CLAIMS 1. Method implemented by computer to reach a distributed consensus based on a proof of stake for a blockchain network, thus allowing to reach a higher level of network distribution and not to have too many stakes concentrated in too many nodes, called blockchain network including one or more MAIN addresses, for each MAIN address being associated in turn with one or more OVERFLOW addresses / nodes, the latter being able to act as potential mining nodes only if a predetermined minimum amount of bets is assigned to said one or more OVERFLOW addresses / nodes, including the following processes: - a redistribution process configured to calculate the minimum stake needed for an OVERFLOW node to be extracted, being minimum_stake_value = total_amount_at stake / predetermined_target_number_of_nodes, to calculate the maximum stake that allows efficient mining, being the maximum stake value = minimum stake value * 2, for each MAIN address to distribute the bet among the OVERFLOW nodes, scrolling through the OVERFLOW nodes of a given MAIN address and to assign each OVERFLOW node the minimum_stake_value, until the remaining stake is sufficient to activate a miner or to make sure that each overflow node has been assigned its stake; - a penalty process configured to freeze an amount of reward corresponding to the computational work for having mined a number of slots on a predetermined limit Slot_MAX in a periodi 1 and to recover it in the following periods starting from periodi 2, a little at a time, based on a number of parts proportional to the number of slots mined on said predetermined Slot_MAX limit, being a part assigned to each subsequent slot for which the miner can be delegated to mining, therefore in order to naturally incentivize the distribution of the blockchain network. 2. Metodo implementato da computer secondo la rivendicazione 1 in cui il processo di ridistribuzione può venire ulteriormente configurato in modo tale per cui, se rimane una qualsiasi puntata, essa viene distribuita tra i nodi OVERFLOW fino a quando il maggior numero possibile di nodi ha una puntata pari al valore massimo della puntata, e ciascuna ulteriore puntata viene assegnata al primo nodo OVERFLOW secondo un ordine prestabilito. 2. A computer implemented method according to claim 1 wherein the redistribution process can be further configured such that, if any bet remains, it is distributed among the OVERFLOW nodes until as many nodes as possible have a bet equal to the maximum value of the bet, and each further bet is assigned to the first OVERFLOW node according to a predetermined order. 3. Metodo implementato da computer secondo una delle rivendicazioni precedenti in cui il processo di ridistribuzione comprende in particolare le seguenti fasi: 52: avere una rete blockchain comprendente uno o più indirizzi MAIN, per ciascun indirizzo MAIN essendo associati a loro volta uno o più indirizzi/nodi di OVERFLOW che agiscono come potenziali nodi di mining solo se una quantità minima prestabilita di puntate è assegnata a detto uno o più indirizzi/nodi di OVERFLOW; 55: ottenere come valore TOTAL_AT_STAKE di input per ciascun indirizzo MAIN della rete blockchain corrispondente alla quantità totale di puntate su ciascun indirizzo MAIN 60: calcolo di S_min_VAL = TOTAL AT STAKE/TARGET NUMBER OF_NODES essendo TARGET NUMBER OF_NODES = numero totale di nodi di mining OVERFLOW nella rete della chain, Calcolo di S_MAX_VAL = S_min_VAL * 2 Supponendo un valore di contatore ITERATION = 0 65: se il valore ITERATION è <2, aggiornare il valore del contatore ITERATION = ITERATION 1 70: per ciascun indirizzo MAIN che ottiene come input il valore MAIN_ADDRESS.assigned_stake e se questo valore è> 0, il che significa che l'indirizzo MAIN in esame contiene una quantità di puntata, assegnando questo valore al parametro M_A_S, e se il valore M_A_S è> = S_MAX_VAL ripetere l’operazione 70 fino al successivo indirizzo MAIN, 75: se il valore M_A_S è <S_MAX_VAL ottenere come input il valore OVERFLOW_ADDRESS.assigned_stake per ciascun indirizzo OVERFLOW associato al MAIN in esame, e se il valore OVERFLOW_ADDRESS.assigned_stake è = 0 ripetere l’operazione 75 fino al successivo indirizzo OVERFLOW associato al MAIN in esame e se il valore OVERFLOW_ADDRESS.assigned_stake è ≠ 0, assegnare il valore OVERFLOW_ADDRESS.assigned_stake al parametro O_A_S, calcolando MAIN_ADDRESS.assigned_stake = M_A_S - S_min_VAL, e calcolando OVERFLOW_ADDRESS.assigner_stake = O_A_S S_min_VAL, e ripetendo il punto 75 al successivo indirizzo OVERFLOW associate MAIN in esame. Computer-implemented method according to one of the preceding claims, wherein the redistribution process comprises in particular the following steps: 52: have a blockchain network comprising one or more MAIN addresses, for each MAIN address being associated in turn with one or more OVERFLOW addresses / nodes which act as potential mining nodes only if a predetermined minimum amount of bets is assigned to said one or more OVERFLOW addresses / nodes; 55: Obtain as input TOTAL_AT_STAKE value for each MAIN address of the blockchain network corresponding to the total amount of bets on each MAIN address 60: calculation of S_min_VAL = TOTAL AT STAKE / TARGET NUMBER OF_NODES being TARGET NUMBER OF_NODES = total number of OVERFLOW mining nodes in the chain network, Calculation of S_MAX_VAL = S_min_VAL * 2 Assuming a counter value ITERATION = 0 65: If the ITERATION value is <2, update the ITERATION = ITERATION 1 counter value 70: for each MAIN address that obtains as input the value MAIN_ADDRESS.assigned_stake and if this value is> 0, which means that the MAIN address in question contains an amount of bet, assigning this value to the parameter M_A_S, and if the value M_A_S is> = S_MAX_VAL repeat operation 70 until the next MAIN address, 75: if the M_A_S value is <S_MAX_VAL, obtain as input the OVERFLOW_ADDRESS.assigned_stake value for each OVERFLOW address associated with the MAIN in question, and if the OVERFLOW_ADDRESS.assigned_stake value is = 0 repeat operation 75 until the next OVERFLOW address associated with the MAIN in question and if the OVERFLOW_ADDRESS.assigned_stake value is ≠ 0, assign the OVERFLOW_ADDRESS.assigned_stake value to the O_A_S parameter, calculating MAIN_ADDRESS.assigned_stake = M_A_S - S_min_VAL, and calculating OVERFLOW_ADDRESS.assigner_stake_stake_address = O_A_Stake_Stake_ 75, and repeating OVERFLOW_ADDRESS.assigner_stake_stake_ address = O_A_Stake_Stake_ 75 exam. 4. Metodo implementato da computer secondo una delle precedenti rivendicazioni 1, 2 in cui il processo di penalità comprende in particolare le seguenti fasi: 80: calcolare il totale frozen_fee i 1 come importo del premioi 2 non erogato ai miners in un periodo specifico i 1 per aver minato un numero di slot oltre il limite Slot_MAX 85: calcolare i penalty_slotsi+1 preferibilmente per due volte (o secondo un’altra legge proporzionale) il numero di slot minati oltre il limite, cioè il numero di slot su Slot_MAX 90: calcolare il valore recovered_fee j, i 1 come frozen_feei+1/penalty_slotsi+1, ovvero la commisssione da recuperare per ogni slot 95: aggiungere il valore recovered_feej, i+1 al premio del MAIN_address per il mining del blocco i nel periodoi+1 come premioj, i+1 = un coinbase collect_fee j, i 1 recovered_fee j, i 1 100: calcolare il nuovo valore del parametro frozen_fee i 1 come frozen_fee i 1 - recovered_fee j, i 1 ed il nuovo valore di penalty_slot i 1 come penalità_slot i 1 - 1 e ripetere l’operazione 95 per il seguente blocco j 1 nel periodo i 1 mentre frozen_fee i 1 > 0 o mentre penalty_slot i 2 > 0, per cui quando l'ultimo bloccoj viene minato alla fine di ogni periodoi , penalty_slotsi e frozen_feei vengono trasferiti dal primo nodo OVERFLOW al suo indirizzo MAIN e quando il primo blocco j viene minato all'inizio di ogni periodoi, penalty_slotsi e frozen_feei vengono trasferiti dall'indirizzo MAIN al suo primo nodo OVERFLOW. Computer implemented method according to one of the preceding claims 1, 2 wherein the penalty process comprises in particular the following steps: 80: calculate the total frozen_fee i 1 as the amount of the prize i 2 not paid to miners in a specific period i 1 for mining a number of slots over the Slot_MAX limit 85: calculate the penalty_slotsi + 1 preferably twice (or according to another proportional law) the number of slots mined over the limit, i.e. the number of slots on Slot_MAX 90: calculate the recovered_fee j, i 1 as frozen_feei + 1 / penalty_slotsi + 1, i.e. the fee to be recovered for each slot 95: add the value recovered_feej, i + 1 to the MAIN_address reward for mining block i in period i + 1 as rewardj, i + 1 = a coinbase collect_fee j, i 1 recovered_fee j, i 1 100: calculate the new value of the frozen_fee i 1 parameter as frozen_fee i 1 - recovered_fee j, i 1 and the new value of penalty_slot i 1 as penalty_slot i 1 - 1 and repeat operation 95 for the following block j 1 in period i 1 while frozen_fee i 1> 0 or while penalty_slot i 2> 0, so when the last blockj is mined at the end of each periodi, penalty_slotsi and frozen_feei are transferred from the first OVERFLOW node to its MAIN address and when the first block j is mined at the beginning of each periodi, penalty_slotsi and frozen_feei are transferred from the MAIN address to its first OVERFLOW node. 5. Metodo implementato da computer secondo una delle rivendicazioni precedenti comprendente inoltre un processo di inizializzazione configurato per elencare tutti gli indirizzi MAIN della rete blockchain, per ciascun elenco di indirizzi MAIN i suoi indirizzi/nodi OVERFLOW assegnati e quindi per ciascun indirizzo OVERFLOW/il nodo trasferisce la puntata, se presente, all'indirizzo MAIN assegnato. 5. Method implemented by computer according to one of the preceding claims further comprising an initialization process configured to list all MAIN addresses of the blockchain network, for each MAIN address list its assigned OVERFLOW addresses / nodes and therefore for each OVERFLOW address / node transfers the bet, if present, to the assigned MAIN address. 6. Metodo implementato da computer secondo la rivendicazione 5 in cui il processo di inizializzazione comprende in particolare le seguenti operazioni: 20: avere una rete blockchain comprendente uno o più indirizzi MAIN, per ogni indirizzo MAIN essendo associati a loro volta uno o più indirizzi/nodi OVERFLOW che agiscono come potenziali nodi di mining solo se una quantità minima predeterminata di puntate è assegnata a detto uno o più indirizzi OVERFLOW/nodo; 25: tramite la rete blockchain, ricevere una transazione includendo come indirizzi di input dal registro di indirizzi che comprende gli indirizzi MAIN ed i loro corrispondenti indirizzi OVERFLOW; 30: associare a ciascun indirizzo MAIN un numero progressivo univoco; 35: per ciascun indirizzo MAIN verificare se esso contiene una quantità di puntate e se questo valore è> 0 assegnare questo valore al parametro M_A_S, e se questo valore è <= 0 eseguire l’operazione 35 fino al successivo indirizzo MAIN membro della rete blockchain e generare una transazione incluso l'output che fornisce il valore M_A_S associato al corrispondente indirizzo MAIN, 40: associare a ciascun nodo OVERFLOW un numero progressivo univoco 45: per ciascun nodo OVERFLOW assegnare a ciascun indirizzo MAIN corrispondente verificando se contiene una quantità di puntate definita OVERFLOW_ADDRESS.assigned_stake e se questo valore è> 0 assegnare questo valore al parametro O_A_S, calcolando il valore MAIN_ADDRESS.assigned_stake come M_A_S O_A_S e assegnando O_A_S = 0 e generare una transazione che include l'output che fornisce il valore aggiornato del valore M_A_S associato al corrispondente indirizzo MAIN, quindi eseguire l’operazione 45 fino al successivo indirizzo OVERFLOW assegnato al corrispondente indirizzo MAIN considerato nell’operazione 35, e se OVERFLOW_ADDRESS.assigned_stake è <= 0 eseguire l’operazione 45 fino al successivo indirizzo OVERFLOW assegnato al corrispondente indirizzo MAIN considerato fino all’operazione 35 50: generare una transazione che include l'output del valore aggiornato del valore TOTAL_AT_STAKE per ciascun indirizzo MAIN della rete blockchain corrispondente alla quantità totale di puntate su ciascun indirizzo MAIN dopo aver eseguito le operazioni precedenti. 6. A computer-implemented method according to claim 5 wherein the initialization process comprises in particular the following operations: 20: have a blockchain network comprising one or more MAIN addresses, for each MAIN address being associated in turn with one or more OVERFLOW addresses / nodes which act as potential mining nodes only if a predetermined minimum amount of bets is assigned to said one or multiple OVERFLOW addresses / node; 25: through the blockchain network, receive a transaction including as input addresses from the address register which includes the MAIN addresses and their corresponding OVERFLOW addresses; 30: associate a unique progressive number to each MAIN address; 35: for each MAIN address check if it contains a quantity of bets and if this value is> 0 assign this value to the parameter M_A_S, and if this value is <= 0 carry out the operation 35 up to the next MAIN address which is a member of the blockchain network and generate a transaction including the output providing the M_A_S value associated with the corresponding MAIN address, 40: associate a unique progressive number to each OVERFLOW node 45: for each OVERFLOW node assign to each corresponding MAIN address checking if it contains an amount of bets defined OVERFLOW_ADDRESS.assigned_stake and if this value is> 0 assign this value to the O_A_S parameter, calculating the MAIN_ADDRESS.assigned_stake value as M_A_S O_A_S and assigning O_A_S = 0 and generate a transaction that includes the output that provides the updated value of the M_A_S value associated with the corresponding MAIN address, then perform operation 45 until the next OVERFLOW address assigned to the corresponding MAIN address considered in operation 35, and if OVERFLOW_ADDRESS.assigned_stake is <= 0 execute operation 45 up to the next OVERFLOW address assigned to the corresponding MAIN address considered up to operation 35 50: Generate a transaction that includes the output of the updated value of the TOTAL_AT_STAKE value for each MAIN address of the blockchain network corresponding to the total amount of bets on each MAIN address after performing the above operations. 7. Metodo implementato da computer secondo una delle rivendicazioni precedenti comprendente inoltre un processo di registrazione configurato per registrare uno o più indirizzi MAIN, per registrare uno o più indirizzi/nodi OVERFLOW e per associare uno o più indirizzi/nodi OVERFLOW a detto uno o più indirizzi MAIN e registrare detta associazione. 7. Method implemented by a computer according to one of the preceding claims, further comprising a registration process configured to register one or more MAIN addresses, to register one or more OVERFLOW addresses / nodes and to associate one or more OVERFLOW addresses / nodes to said one or more MAIN addresses and register said association. 8. Metodo implementato da computer secondo una delle rivendicazioni precedenti che comprende inoltre un processo di manutenzione, al fine di mantenere la rete blockchain altamente distribuita anche in caso di guasto di uno o più nodi di mining, detto processo di manutenzione comprendente a sua volta le seguenti operazioni, dato un indirizzo MAIN ed almeno due o più indirizzi OVERFLOW e un nodo che si desidera manutenere: 110: inviare una transazione che include un primo input che fornisce un indirizzo OVERFLOW sostitutivo usando il suo codice privato, il che significa che tale indirizzo OVERFLOW sostitutivo è un nodo che sostituisce il nodo che si desidera manutenere 120: assegnare detto indirizzo OVERFLOW sostitutivo al corrispondente indirizzo MAIN utilizzando il codice privato dell'indirizzo MAIN 130 annullare la registrazione del nodo che si desidera manutenere utilizzando il suo codice privato 8. A computer-implemented method according to one of the preceding claims which further comprises a maintenance process, in order to maintain the highly distributed blockchain network even in the event of the failure of one or more mining nodes, said maintenance process comprising in turn the following operations, given a MAIN address and at least two or more OVERFLOW addresses and a node to be maintained: 110: Send a transaction that includes a first input that provides a replacement OVERFLOW address using its private code, which means that this replacement OVERFLOW address is a node that replaces the node you want to maintain 120: assign said substitute OVERFLOW address to the corresponding MAIN address using the private code of the MAIN address 130 unregister the node you want to maintain using its private code 9. Nodo configurato per implementare un metodo per raggiungere un consenso distribuito basato su una proof of stake per una rete blockchain, permettendo così di raggiungere un livello più alto di distribuzione della rete e di non avere troppe puntate concentrate in troppi nodi, detto nodo comprendendo un dispositivo di interfaccia, un processore accoppiato a detto dispositivo di interfaccia, una memoria accoppiata al processore, la memoria avendo immagazzinato su di esso istruzioni eseguibili da computer che, quando eseguite, configurano il processore per eseguire le corrispondenti operazioni del metodo implementato da computer di una qualsiasi delle rivendicazioni 1 a 8. 9. Node configured to implement a method to reach a distributed consensus based on a proof of stake for a blockchain network, thus allowing to reach a higher level of network distribution and not to have too many bets concentrated in too many nodes, said node including an interface device, a processor coupled to said interface device, a memory coupled to the processor, the memory having stored on it computer executable instructions which, when executed, configure the processor to perform the corresponding operations of the computer implemented method of any one of claims 1 to 8. 10. Supporto di memorizzazione leggibile da computer che comprende istruzioni eseguibili da computer che, una volta eseguite, configurano un processore per eseguire il metodo implementato dal computer di una qualsiasi delle rivendicazioni da 1 a 8. A computer readable storage medium comprising computer executable instructions which, when executed, configure a processor to execute the computer implemented method of any one of claims 1 to 8. 11. Rete di computer per eseguire una transazione basata su blockchain da un primo utente a un secondo utente in una rete di trasferimento elettronico di nodi connessi, in cui i nodi includono almeno un primo nodo, un secondo nodo, secondo la rivendicazione 9, in cui ciascun nodo condivide una stessa blockchain, ed in cui ciascun nodo memorizza un supporto di memorizzazione leggibile da computer secondo la rivendicazione 10. 11. Computer network for performing a blockchain-based transaction from a first user to a second user in an electronic transfer network of connected nodes, wherein the nodes include at least one first node, a second node, according to claim 9, in wherein each node shares a same blockchain, and in which each node stores a computer readable storage medium according to claim 10.
IT102019000018935A 2019-10-15 2019-10-15 COMPUTER-IMPLEMENTED METHOD FOR REACHING A DISTRIBUTED CONSENSUS IN A BLOCKCHAIN NETWORK AND NODE IMPLEMENTING THE METHOD. IT201900018935A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
IT102019000018935A IT201900018935A1 (en) 2019-10-15 2019-10-15 COMPUTER-IMPLEMENTED METHOD FOR REACHING A DISTRIBUTED CONSENSUS IN A BLOCKCHAIN NETWORK AND NODE IMPLEMENTING THE METHOD.
EP20807112.6A EP4046328A1 (en) 2019-10-15 2020-10-15 Computer-implemented method for reaching a distributed consensus in a blockchain network and node implementing the method
PCT/IB2020/059709 WO2021074848A1 (en) 2019-10-15 2020-10-15 Computer-implemented method for reaching a distributed consensus in a blockchain network and node implementing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000018935A IT201900018935A1 (en) 2019-10-15 2019-10-15 COMPUTER-IMPLEMENTED METHOD FOR REACHING A DISTRIBUTED CONSENSUS IN A BLOCKCHAIN NETWORK AND NODE IMPLEMENTING THE METHOD.

Publications (1)

Publication Number Publication Date
IT201900018935A1 true IT201900018935A1 (en) 2021-04-15

Family

ID=69701347

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000018935A IT201900018935A1 (en) 2019-10-15 2019-10-15 COMPUTER-IMPLEMENTED METHOD FOR REACHING A DISTRIBUTED CONSENSUS IN A BLOCKCHAIN NETWORK AND NODE IMPLEMENTING THE METHOD.

Country Status (1)

Country Link
IT (1) IT201900018935A1 (en)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AGGELOS KIAYIAS ET AL: "Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol", vol. 20170821:231952, 23 June 2017 (2017-06-23), pages 1 - 53, XP061023357, Retrieved from the Internet <URL:http://eprint.iacr.org/2016/889.pdf> [retrieved on 20170623] *
BADERTSCHER CHRISTIAN BADI@INF ETHZ CH ET AL: "Ouroboros Genesis Composable Proof-of-Stake Blockchains with Dynamic Availability", COMPUTER AND COMMUNICATIONS SECURITY, ACM, 2 PENN PLAZA, SUITE 701NEW YORKNY10121-0701USA, 15 January 2018 (2018-01-15), pages 913 - 930, XP058449193, ISBN: 978-1-4503-5693-0, DOI: 10.1145/3243734.3243848 *
TOSH DEEPAK ET AL: "CloudPoS: A Proof-of-Stake Consensus Design for Blockchain Integrated Cloud", 2018 IEEE 11TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING (CLOUD), IEEE, 2 July 2018 (2018-07-02), pages 302 - 309, XP033399849, DOI: 10.1109/CLOUD.2018.00045 *

Similar Documents

Publication Publication Date Title
Xu et al. Sok: Decentralized exchanges (dex) with automated market maker (amm) protocols
US11509464B2 (en) System and method using a fitness-gradient blockchain consensus and providing advanced distributed ledger capabilities via specialized data records
Klages-Mundt et al. Stablecoins 2.0: Economic foundations and risk-based models
US20200013027A1 (en) Hybrid proof of work and proof of stake consensus to reduce circulating tokens in a blockchain system
CN110049029B (en) Consensus node determination method, device, computer equipment and storage medium
KR102240939B1 (en) Blockchain system with consensus algorithm based on proof-of -transaction and method there of
Khalil et al. Commit-chains: Secure, scalable off-chain payments
WO2018049713A1 (en) Method and system for data management based on blockchain consistency algorithm
Eklund et al. Factors that impact blockchain scalability
CN109697606A (en) The distributed network and the ecosystem of common recognition agreement are proved based on innovative prestige
Harz et al. Balance: Dynamic adjustment of cryptocurrency deposits
KR20220079564A (en) Distributed Ledger Appliances and How to Use them
CN113474759A (en) Method and apparatus for characterizing a memory device
CN111506783A (en) Transaction request processing method, device, equipment and medium in block chain
CN112015822B (en) Block chain data deleting method and device
Marukhnenko et al. The overview of decentralized systems scaling methods
Barinov et al. POSDAO: Proof of stake decentralized autonomous organization
EP4046328A1 (en) Computer-implemented method for reaching a distributed consensus in a blockchain network and node implementing the method
Ebrahimi et al. Getting blockchain incentives right
Liu et al. Decentralization is vulnerable under the gap game
Tsabary et al. Ledgerhedger: Gas reservation for smart-contract security
Briceño et al. An integrated behavioral model of land use and transport system: a hyper-network equilibrium approach
IT201900018935A1 (en) COMPUTER-IMPLEMENTED METHOD FOR REACHING A DISTRIBUTED CONSENSUS IN A BLOCKCHAIN NETWORK AND NODE IMPLEMENTING THE METHOD.
CN111008835A (en) Method, apparatus, computer-readable storage medium and computer program product for determining transaction verification node of blockchain
Barinov et al. Proof of stake decentralized autonomous organization