un sistema de penalización por entrega tardía de bloque...un sistema de penalización por entrega...

8
Junio 14, 2018 Alberto Garoffolo, Pier Stabilini, Robert Viglione, and Uri Stav PROPUESTA PARA MODIFICAR EL CONSENSO DE SATOSHI PARA MEJORAR LA PROTECCIÓN ANTE LOS ATAQUES DEL 51% Un Sistema de Penalización por Entrega tardía de bloque

Upload: others

Post on 13-Aug-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

Junio 14, 2018Alberto Garoffolo, Pier Stabilini, Robert Viglione, and Uri Stav

PROPUESTA PARA MODIFICAR EL CONSENSO DE SATOSHI

PARA MEJORAR LA PROTECCIÓN ANTE LOS ATAQUES DEL 51% Un Sistema de Penalización por Entrega tardía de bloque

Page 2: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

INTRODUCTION

The longest chain rule, or Satoshi Consensus, worked well in the relatively decentralized

environment in which it was introduced in 2009. Mining resources have since concentrated and

dropped in cost for lease, such that the original dominant strategy of playing by the rules no longer

holds for all proof-of-work (PoW) blockchains that rely on the longest chain rule. As recent events

have proven, in some circumstances it can be economically feasible to launch 51% attacks on

operational public blockchain networks. This paper proposes a novel adjustment to Satoshi

Consensus that makes it exponentially more costly, and hence unlikely, to launch such attacks for

any proof-of-work mineable cryptocurrency system.

The common method for performing a double spend attack is as such:

Execute a transaction T1 sending coins from address A to an exchange address on the current

public chain

Privately mine a block on a parallel forked chain containing a transaction T2 sending coins from

address A to another address

Wait for T1 to be confirmed by the exchange and in the meantime continue to mine privately the

parallel chain at a faster rate than the public chain

Trade the confirmed coins on the exchange, then withdraw funds to private address B

Broadcast to the network the private chain that is longer than the public one

at this point, the network will adopt the attackers private chain as the new public chain (as it is

longer) and miners will start mining on the newly reorganised public chain.

T1 is no longer valid and the attacker already used the coins fraudulently

To summarize, these attacks are possible because the system allows to “overwrite” the current

node view of the blockchain history with the new one after a user accepted a specific transaction

(e.g. after the Exchange waited for the confirmation time). This obeys Satoshi's principles given in

the Bitcoin white paper and implemented by most of PoW cryptocurrencies. Block generation in

PoW consensus is a stochastic process and honest miners can generate blocks in parallel on the

same height (with probability depending on block generation time and network delays), for which

Satoshi Consensus has a simple method to adjudicate by ultimately defaulting to the chain with the

most accumulated work. Thus, pruning shorter branches with lower accumulated work has been

an efficient way to keep the linear sequence of blocks across these distributed systems.

Satoshi's white paper is based on the assumption that a majority of computational power is controlled by

honest nodes ("one-CPU-one-vote" principle), and within this assumption it is almost impossible to

create any reasonable length adversarial branch to implement the double spend attack. Conventional

heuristics have converged on the idea that it is su�cient to wait for several con�rmation blocks to get

very low probability of transaction cancellation.

Many things changed since publishing the Bitcoin white paper. Some of the most signi�cant changes

that jeopardize the longest chain rule, are the appearance of ASIC miners and other computation boost

techniques that completely break the "one-CPU-one-vote" principle. Many cryptocurrencies share the

same mining algorithm, but have extreme di�erences in hashrate, which allows for the computation of

one cryptocurrency mining pool to potentially be used to attack another chain.

Thus, we see that Satoshi's assumption about honest majority of computational power and the

impossibility of long adversarial branches may be broken in the modern environment, evidenced by the

latest 51% attacks on several cryptocurrencies. We need a more advanced and more comprehensive

system that satis�es modern conditions. The core PoW consensus requires corrections to provide secure

services, while still allowing the possibility of honest miners generating con�icting blocks, and legitimate

network delayed synchronization.

To achieve this goal we have identi�ed a modi�cation that signi�cantly increases resources needed for a

successful double spend attack (with no changes in honest hash rate) and shifts the cost of an attack to

become economically senseless. Moreover, the increase of resources needed to make a successful attack

will not require increased con�rmation adjustments by receiving parties, including exchanges.

THE DELAYED BLOCK SUBMISSION PENALTY APPROACH

Considering that private mining is the source of a double spending attack, to make it less effective we

introduce a penalty in the form of a block acceptance delay in relation to the amount of time the block

has been hidden from the public network. Time being measured in block intervals, not temporally via

timestamp.

For example, let’s assume to have the following block reception scenario:

NBi = Normal block

MBi = Malicious block

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Time

Figure 1

In the current system, blocks NB117, NB118, NB119, NB120 are not going to be mined because as soon

as the network received block MB119, the malicious chain becomes the active one and the network

will start mining from block MB119 abandoning the normal chain.

To prevent this, we introduce a fork acceptance delay related to the amount of time the fork has been

hidden from the public network. This delay represents the number of blocks for which the adoption of

the new parallel chain will be postponed. For an adversary it means that he will need to continue to

mine the malicious fork even after revealing it and until the moment when the delay is finished.

For example, let’s consider the following delay function DF. To define DF we first introduce BDi which

effectively represents block reception delay defined as a difference between current main chain

height and height of the received block (e.g. BDmb100=16, BDmb101=15, …, BDmb115=1, BDmb116=0,

BDmb117=-1, BDmb118=-1) or -1 in case the height of the received block is greater than the current main

chain height.

The delay function DF in this case for the whole forked chain will be represented as the SUM of

BDmb[i] values, where i represents indices of the blocks in the forked chain.

In the following example on Figure 2, the delay DF(MB100,...,MB119) = 16+15+14+13+12+....1+0-1-1-1 = 136

- 3 = 133 blocks. So the adversary will need to keep mining his fork after it became public for another

133 blocks until it will be accepted by other nodes.

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Pmb 133 - 132 - 131 - 130

Time

Figure 2

With such a delay function, if we assume for example to adopt a 20 block confirmation time, a 21 block

delay punishment would be 21 * (21 + 1) / 2 = 231, then the minimum number of blocks to be mined to

perform the attack would be 231 + 21 = 252 blocks

Please note that the confirmation time cannot start until a fork is in progress.

Proper tuning of the delay function will complicate an attack to the point of infeasibility since it will

require significantly more resources and will also give an additional opportunity to react on the fork

before its final adoption. The network will learn of the contentious fork and it will have to reduce the

full delay function (DF = 0) before the network defaults to the chain as truth. During this period,

network participants, such as exchanges, can freeze potentially fraudulent deposits until the issue has

been resolved, e.g. either the attempted fraudulent chain is abandoned, or it has successfully driven

DF � 0 through brute force. Honest miners continue to add to the active chain.

The delay function may also consider current mining difficulty (d) to provide better protection for coins

with low hashrate (e.g. increasing delay by a factor inversely proportional to the current difficulty).

Such an augmenting factor to DF’ = DF * f(d) can be ignored by setting f(d) = 1, but any sensible

functional form can be substituted in that has the properties of low impact for the range of honest

simultaneous block contention, then scales exponentially outside any reasonable range for which we

can assign dishonest motives.

Although the introduced feature complicates the whole specter of mining attacks (those executed by

mining private parallel forks), it does not prevent the network from converging in case of a natural split

(e.g. when some parts of the world are completely segregated from each other for some time). The

period of convergence will be longer than the pure longest chain rule, but honest miners will work on

converging chains by driving DF � 0.

Note that if an adversary mines his chain publicly the delay will not be applied, but in this case

everyone can see the fork and is able to take preventive measures (e.g. exchanges will increase

confirmation periods, etc.).

CONCLUSION

The operating environment for cryptocurrency systems has changed significantly from its origins in

2009 when mining power was far more decentralized. Satoshi Consensus, or the longest chain rule,

worked well to adjudicate natural chain forks by simply deferring to the chain with the most

accumulated work. Both technical limitations and economic incentives combined to render the

longest chain rule the dominant strategy for any miner, whether honest or nefarious. This is no longer

the case and public blockchains need to upgrade consensus rules to make it far more costly to

succeed with double spending.

This proposal gives one such method that has a simple form that is, itself, quite promising, but which

can be generalized with a scaling function to make it both technically infeasible and economically

disastrous to attempt double spending. The method permits adjudication of honest miners

simultaneously solving blocks, as well as legitimate network fractures that resolve over time. No

attack vector should ever be considered permanently neutralized, but this method certainly renders

one common method far less likely. Additional research into layered defense strategies, such as

introducing interval block notarization schemes on top of this penalty system could make the system

even more secure and should be investigated.

ACKNOWLEDGEMENTS

SPECIAL THANKS

to the team and community for contributing:

@cronic, Peter Stewart, @ultimateblockage,

Rosario Pabst, Rowan Stone, Gustavo Fialho and Vitalik Demin.

Creatives by Lucy Wang, Linda Baksija and Marko Orčić.

••

INTRODUCCIÓN

La regla de la cadena más larga o el Consenso de Satoshi, funcionó bien en el entorno

relativamente descentralizado en el que se introdujo en 2009. Desde entonces, los recursos

mineros se han estado concentrando, produciendo una disminución de costos de renta, de tal

manera que la estrategia inicial que había planteado Satoshi ya no es válida para todas las

cadenas de bloque de prueba de trabajo (PoW) que dependen de la regla de cadena más larga.

Como los eventos recientes han demostrado, en algunas circunstancias puede ser

económicamente factible lanzar un ataque del 51% contra las redes públicas operativas de

blockchain. Este documento propone un nuevo ajuste al Consenso de Satoshi que hace que sea

exponencialmente más costoso y por lo tanto menos probable, lanzar ataques para cualquier

sistema de criptomoneda minable de prueba de trabajo (PoW).

El método más común para realizar un ataque de doble gasto es el siguiente:

Ejecutar una transacción T1 que envía monedas desde la dirección A a una dirección de centro

cambiario en la actual cadena de bloques pública.

Minar en privado un bloque en una cadena bifurcada en paralelo a la pública que contiene una

transacción T2 que envía monedas de la dirección A a otra dirección.

Esperar a que T1 sea confirmado por el centro cambiario. Mientras se continua minando de

manera privada la cadena paralela a un ritmo más rápido que la cadena pública.

Cambiar las monedas confirmadas en el centro cambiario, luego retirar los fondos a la dirección

privada B

Transmitir o anunciar a la red la cadena privada que es más larga que la pública.

En este punto, la red adoptará la cadena privada de atacantes como la nueva cadena pública

(ya que es más larga). Los mineros comenzarán a minar en la cadena pública recientemente

reorganizada.

T1 ya no es válida y el atacante ya usó las monedas fraudulentamente

En resumen, estos ataques son posibles porque el sistema permite "sobrescribir" la vista actual del

historial de la cadena de bloques del nodo con una nueva cadena más larga, después de que se

haya aceptado una transacción específica (por ejemplo, después de que el centro cambiario

esperó el tiempo de confirmación). Esto obedece a los principios de Satoshi que estableció en el

libro blanco de Bitcoin e implementados por la mayoría de las criptomonedas de prueba de trabajo

(PoW). La generación de bloques en un consenso de prueba de trabajo (PoW) es un proceso

estocástico y los mineros que son honestos pueden también generar bloques en paralelo a la

misma altura de la otra cadena (dependiendo del tiempo de generación de bloques y retrasos de

red), para lo cual el consenso de Satoshi tiene un método simple para solucionar la presencia de

dos cadenas escogiendo a la cadena con el mayor trabajo acumulado. Por lo tanto, cortando

ramas de la cadena corta con menos trabajo acumulado. Esto ha sido una forma eficiente de

mantener una secuencia lineal de bloques en estos sistemas distribuidos.

El libro blanco de Satoshi se basa en la suposición de que la mayoría del poder de cómputo está

controlado por nodos que son honestos (el principio de "una CPU por cada voto"), dentro de esta

suposición es casi imposible crear una rama adversaria de longitud razonable para implementar el

ataque de doble gasto. El método heurístico convencional consiste en la idea de que es suficiente

esperar varios bloques de confirmación para obtener una probabilidad muy baja de cancelación

de la transacción.

Muchas cosas cambiaron desde la publicación del libro blanco de Bitcoin. Algunos de los cambios

más importantes que ponen en peligro la regla de la cadena más larga son la aparición de los

circuitos integrados ASIC y otras técnicas de cómputo que rompen por completo el principio de

"una CPU por cada voto". Muchas criptomonedas comparten el mismo algoritmo de minería, pero

tienen diferencias muy marcadas en el hashrate , lo que permite que el poder computacional de un

grupo de minería (Mining Pool) pueda ser utilizado para atacar otra cadena.

Por lo tanto, vemos que la suposiciones de Satoshi sobre la mayoría del poder computacional

honesto y la imposibilidad de que existan largas ramas adversarias ya no son validas en el entorno

actual, evidenciado por los últimos ataques del 51% en varias criptomonedas. Necesitamos un

sistema más avanzado y más completo que satisfaga los requerimientos y condiciones actuales.

El consenso de prueba de trabajo (PoW ) central requiere correcciones para proporcionar servicios

seguros, al mismo tiempo que permita la posibilidad de que mineros honestos generen bloques

conflictivos y legitimar la sincronización retrasada de la red.

Para lograr este objetivo, hemos identificado una área de oportunidad que aumentaría

significativamente los recursos necesarios para un ataque exitoso de doble gasto (sin cambios en

la hashrate de mineros honestos). Esta modificación cambiaría el costo de un ataque para que no

tenga sentido económico realizarlo. Además, el aumento de los recursos necesarios para realizar

un ataque exitoso causara que las partes receptoras y los centros cambiarios no tengan que

modificar sus ajustes de cantidad de confirmaciones para liberar una transacción.

EL ENFOQUE DE PENALIZACIÓN POR ENVÍO RETRASADO

Considerando que la minería privada es la fuente de un ataque de doble gasto, para hacerlo

menos efectivo, introducimos una penalización en forma de un retraso de aceptación de bloque en

relación con la cantidad de tiempo que el bloque ha estado oculto de la red pública. El tiempo se

mide en intervalos de bloques, no se medirá temporalmente con una estampa de tiempo.

Supongamos que se tiene el siguiente escenario de recepción de bloque en la cadena:

BNi = Bloque Normal

BMi = Bloque Malicioso

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Tiempo

Figura 1

En el sistema actual, los bloques BN117, BN118, BN119, BN120 no serán minados porque tan pronto

como la red recibió el bloque BM119, la cadena maliciosa se convierte en la activa y la red

comenzará a minar desde el bloque BM119 abandonando la cadena original.

Para evitar esto, presentamos un retraso de aceptación de una bifurcación de la cadena de bloque

actual, proporcional a la cantidad de tiempo que la bifurcación se haya ocultado de la red pública.

Este retraso representa el número de bloques para los cuales se pospondrá la adopción de la

nueva cadena. Para un atacante, significa que tendrá que seguir minando la bifurcación de la

cadena de bloques maliciosa incluso después de revelarlo hasta el momento en que el retraso

haya terminado.

Por ejemplo, consideremos la siguiente función de retraso FR. Para definir FR primero presentamos

el parámetro RBi que representa el retraso de recepción de bloque mediante una diferencia entre

la altura actual de la cadena principal y la altura del bloque recibido (Ejemplo: RBBM100 = 16,

RBBM101 = 15, ..., RBBM115 = 1, RBBM116= 0, RBBM117 = -1, RBBM118 = -1) o -1 en caso de que la altura del

bloque recibido sea mayor que la altura actual de la cadena principal.

La función de retraso FR en este caso para toda la cadena bifurcada se representará como la

SUMA de valores RBBMi, donde i representa los índices de los bloques en la cadena bifurcada.

En el siguiente ejemplo de la Figura 2, el valor de FR (MB100, ..., MB119) = 16 + 15 + 14 + 13 + 12 + ....

1 + 0-1-1-1 = 136 - 3 = 133 bloques. Por lo tanto, el atacante tendrá que seguir minando su bifurcación

después de que se haya hecho pública por otros 133 bloques para que pueda ser aceptada por

otros nodos como la cadena principal.

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Pmb 133 - 132 - 131 - 130

Tiempo

Figure 2.

Con la función de retraso presentado anteriormente, si suponemos, que se adoptara un tiempo de

confirmación de 20 bloques, un castigo de demora de 21 bloques sería 21 * (21 + 1) / 2 = 231, que

significa que el número mínimo de bloques que se tendrán que minar para poder realizar el ataque

serían 231 + 21 = 252 bloques.

Tenga en cuenta que el tiempo de confirmación no puede comenzar hasta que una bifurcación esté

en progreso.

El ajuste adecuado de la función de retardo complicará un ataque hasta el punto de que no sea

factible ya que requerirá una cantidad de recursos significativamente mayor y también dará una

oportunidad adicional de reaccionar en la bifurcación de la cadena de bloques antes de su

adopción final. La red se enterará sobre la bifurcación paralela y el atacante deberá seguir

minando hasta reducir la función de retardo completamente (DF = 0) antes de que la red adopte la

cadena paralela como la más larga. Durante este período, los participantes de la red, como los

centros cambiarios, pueden congelar depósitos potencialmente fraudulentos hasta que se

resuelva el problema. Supongamos que el intento de cadena fraudulenta se abandona, o se ha

conducido con éxito el tiempo de retraso (DF = 0) a través de la fuerza bruta. Los mineros honestos

continuarán agregando a la cadena activa mientras el tiempo de retraso se consume.

La función de retraso también puede considerar la dificultad actual de minería (d) para

proporcionar una mejor protección para las monedas con bajo índice de hashrate (por ejemplo, el

aumento de la función de retraso se vería afectada de manera inversamente proporcional a la

dificultad actual de minado). Tal factor de aumento se podría ver reflejado de tal manera: DF'= DF

* f (d) puede ignorarse estableciendo f (d) = 1, pero puede sustituirse acuerdo a las necesidades,

mismo que tiene las propiedades de bajo impacto para el rango de bifurcación paralela de bloque

honesta, también puede escalar exponencialmente fuera de cualquier rango razonable para los

mineros deshonestos.

Aunque la característica introducida complica todo el espectro de ataques de minería (los que

ejecutan minando bifurcaciones paralelas de manera privada), no impide que la red adopte una

nueva cadena de bloques más larga en caso de una división natural (por ejemplo, cuando en

algunas partes del mundo están completamente segregadas entre sí por algún tiempo

determinado). El período de adopción de una cadena más larga será más prolongado que la regla

del consenso de Satoshi, pero los mineros honestos trabajarán en la cadena paralela hasta

conducir a DF=0.

Tenga en cuenta que si un adversario mina su cadena públicamente, no se aplicará la demora, pero en

este caso todos pueden ver la bifurcación y tomar medidas preventivas (por ejemplo, los centros

cambiarios aumentarán los períodos de confirmación, etc.).

CONCLUSIÓN

El entorno operativo para las criptomonedas ha cambiado significativamente desde sus orígenes en 2009,

cuando la minería estaba mucho más descentralizada. El Consenso de Satoshi, o la regla de la cadena

más larga, funcionó bien para adjudicar las bifurcaciones de cadenas naturales al simplemente adoptar

la cadena con el mayor trabajo acumulado. Tanto las limitaciones técnicas como los incentivos

económicos se combinan para hacer que la cadena más larga gobierne la estrategia dominante para

cualquier minero, ya sea honesto o con malas intenciones. Este ya no es el caso y las cadenas de bloque

públicas necesitan actualizar las reglas de consenso para que sea mucho más costoso tener éxito con los

ataques de doble gasto.

Esta propuesta brinda uno de esos métodos que tiene una forma simple que, en sí misma, es bastante

prometedora, pero que se puede generalizar con una función de escalado para que sea técnicamente

inviable y económicamente desastroso para intentar el gasto doble. El método permite que los que minan

de manera honesta puedan resolver bloques de manera paralela, así como en el caso de las fracturas de

red legítimas que se resuelven con el tiempo. Ninguna estrategia de ataque debe considerarse

neutralizada permanentemente, pero este método ciertamente hace menos probable un método común

de ataque. La investigación adicional en estrategias de defensa en capas, como la introducción de

esquemas de notarización de bloque de intervalo en la parte superior de este sistema de penalización

podría hacer que el sistema sea aún más seguro y una investigación de implementación se debería de

llevar acabo.

2

Page 3: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

INTRODUCTION

The longest chain rule, or Satoshi Consensus, worked well in the relatively decentralized

environment in which it was introduced in 2009. Mining resources have since concentrated and

dropped in cost for lease, such that the original dominant strategy of playing by the rules no longer

holds for all proof-of-work (PoW) blockchains that rely on the longest chain rule. As recent events

have proven, in some circumstances it can be economically feasible to launch 51% attacks on

operational public blockchain networks. This paper proposes a novel adjustment to Satoshi

Consensus that makes it exponentially more costly, and hence unlikely, to launch such attacks for

any proof-of-work mineable cryptocurrency system.

The common method for performing a double spend attack is as such:

Execute a transaction T1 sending coins from address A to an exchange address on the current

public chain

Privately mine a block on a parallel forked chain containing a transaction T2 sending coins from

address A to another address

Wait for T1 to be confirmed by the exchange and in the meantime continue to mine privately the

parallel chain at a faster rate than the public chain

Trade the confirmed coins on the exchange, then withdraw funds to private address B

Broadcast to the network the private chain that is longer than the public one

at this point, the network will adopt the attackers private chain as the new public chain (as it is

longer) and miners will start mining on the newly reorganised public chain.

T1 is no longer valid and the attacker already used the coins fraudulently

To summarize, these attacks are possible because the system allows to “overwrite” the current

node view of the blockchain history with the new one after a user accepted a specific transaction

(e.g. after the Exchange waited for the confirmation time). This obeys Satoshi's principles given in

the Bitcoin white paper and implemented by most of PoW cryptocurrencies. Block generation in

PoW consensus is a stochastic process and honest miners can generate blocks in parallel on the

same height (with probability depending on block generation time and network delays), for which

Satoshi Consensus has a simple method to adjudicate by ultimately defaulting to the chain with the

most accumulated work. Thus, pruning shorter branches with lower accumulated work has been

an efficient way to keep the linear sequence of blocks across these distributed systems.

Satoshi's white paper is based on the assumption that a majority of computational power is controlled by

honest nodes ("one-CPU-one-vote" principle), and within this assumption it is almost impossible to

create any reasonable length adversarial branch to implement the double spend attack. Conventional

heuristics have converged on the idea that it is su�cient to wait for several con�rmation blocks to get

very low probability of transaction cancellation.

Many things changed since publishing the Bitcoin white paper. Some of the most signi�cant changes

that jeopardize the longest chain rule, are the appearance of ASIC miners and other computation boost

techniques that completely break the "one-CPU-one-vote" principle. Many cryptocurrencies share the

same mining algorithm, but have extreme di�erences in hashrate, which allows for the computation of

one cryptocurrency mining pool to potentially be used to attack another chain.

Thus, we see that Satoshi's assumption about honest majority of computational power and the

impossibility of long adversarial branches may be broken in the modern environment, evidenced by the

latest 51% attacks on several cryptocurrencies. We need a more advanced and more comprehensive

system that satis�es modern conditions. The core PoW consensus requires corrections to provide secure

services, while still allowing the possibility of honest miners generating con�icting blocks, and legitimate

network delayed synchronization.

To achieve this goal we have identi�ed a modi�cation that signi�cantly increases resources needed for a

successful double spend attack (with no changes in honest hash rate) and shifts the cost of an attack to

become economically senseless. Moreover, the increase of resources needed to make a successful attack

will not require increased con�rmation adjustments by receiving parties, including exchanges.

THE DELAYED BLOCK SUBMISSION PENALTY APPROACH

Considering that private mining is the source of a double spending attack, to make it less effective we

introduce a penalty in the form of a block acceptance delay in relation to the amount of time the block

has been hidden from the public network. Time being measured in block intervals, not temporally via

timestamp.

For example, let’s assume to have the following block reception scenario:

NBi = Normal block

MBi = Malicious block

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Time

Figure 1

In the current system, blocks NB117, NB118, NB119, NB120 are not going to be mined because as soon

as the network received block MB119, the malicious chain becomes the active one and the network

will start mining from block MB119 abandoning the normal chain.

To prevent this, we introduce a fork acceptance delay related to the amount of time the fork has been

hidden from the public network. This delay represents the number of blocks for which the adoption of

the new parallel chain will be postponed. For an adversary it means that he will need to continue to

mine the malicious fork even after revealing it and until the moment when the delay is finished.

For example, let’s consider the following delay function DF. To define DF we first introduce BDi which

effectively represents block reception delay defined as a difference between current main chain

height and height of the received block (e.g. BDmb100=16, BDmb101=15, …, BDmb115=1, BDmb116=0,

BDmb117=-1, BDmb118=-1) or -1 in case the height of the received block is greater than the current main

chain height.

The delay function DF in this case for the whole forked chain will be represented as the SUM of

BDmb[i] values, where i represents indices of the blocks in the forked chain.

In the following example on Figure 2, the delay DF(MB100,...,MB119) = 16+15+14+13+12+....1+0-1-1-1 = 136

- 3 = 133 blocks. So the adversary will need to keep mining his fork after it became public for another

133 blocks until it will be accepted by other nodes.

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Pmb 133 - 132 - 131 - 130

Time

Figure 2

With such a delay function, if we assume for example to adopt a 20 block confirmation time, a 21 block

delay punishment would be 21 * (21 + 1) / 2 = 231, then the minimum number of blocks to be mined to

perform the attack would be 231 + 21 = 252 blocks

Please note that the confirmation time cannot start until a fork is in progress.

Proper tuning of the delay function will complicate an attack to the point of infeasibility since it will

require significantly more resources and will also give an additional opportunity to react on the fork

before its final adoption. The network will learn of the contentious fork and it will have to reduce the

full delay function (DF = 0) before the network defaults to the chain as truth. During this period,

network participants, such as exchanges, can freeze potentially fraudulent deposits until the issue has

been resolved, e.g. either the attempted fraudulent chain is abandoned, or it has successfully driven

DF � 0 through brute force. Honest miners continue to add to the active chain.

The delay function may also consider current mining difficulty (d) to provide better protection for coins

with low hashrate (e.g. increasing delay by a factor inversely proportional to the current difficulty).

Such an augmenting factor to DF’ = DF * f(d) can be ignored by setting f(d) = 1, but any sensible

functional form can be substituted in that has the properties of low impact for the range of honest

simultaneous block contention, then scales exponentially outside any reasonable range for which we

can assign dishonest motives.

Although the introduced feature complicates the whole specter of mining attacks (those executed by

mining private parallel forks), it does not prevent the network from converging in case of a natural split

(e.g. when some parts of the world are completely segregated from each other for some time). The

period of convergence will be longer than the pure longest chain rule, but honest miners will work on

converging chains by driving DF � 0.

Note that if an adversary mines his chain publicly the delay will not be applied, but in this case

everyone can see the fork and is able to take preventive measures (e.g. exchanges will increase

confirmation periods, etc.).

CONCLUSION

The operating environment for cryptocurrency systems has changed significantly from its origins in

2009 when mining power was far more decentralized. Satoshi Consensus, or the longest chain rule,

worked well to adjudicate natural chain forks by simply deferring to the chain with the most

accumulated work. Both technical limitations and economic incentives combined to render the

longest chain rule the dominant strategy for any miner, whether honest or nefarious. This is no longer

the case and public blockchains need to upgrade consensus rules to make it far more costly to

succeed with double spending.

This proposal gives one such method that has a simple form that is, itself, quite promising, but which

can be generalized with a scaling function to make it both technically infeasible and economically

disastrous to attempt double spending. The method permits adjudication of honest miners

simultaneously solving blocks, as well as legitimate network fractures that resolve over time. No

attack vector should ever be considered permanently neutralized, but this method certainly renders

one common method far less likely. Additional research into layered defense strategies, such as

introducing interval block notarization schemes on top of this penalty system could make the system

even more secure and should be investigated.

ACKNOWLEDGEMENTS

SPECIAL THANKS

to the team and community for contributing:

@cronic, Peter Stewart, @ultimateblockage,

Rosario Pabst, Rowan Stone, Gustavo Fialho and Vitalik Demin.

Creatives by Lucy Wang, Linda Baksija and Marko Orčić.

INTRODUCCIÓN

La regla de la cadena más larga o el Consenso de Satoshi, funcionó bien en el entorno

relativamente descentralizado en el que se introdujo en 2009. Desde entonces, los recursos

mineros se han estado concentrando, produciendo una disminución de costos de renta, de tal

manera que la estrategia inicial que había planteado Satoshi ya no es válida para todas las

cadenas de bloque de prueba de trabajo (PoW) que dependen de la regla de cadena más larga.

Como los eventos recientes han demostrado, en algunas circunstancias puede ser

económicamente factible lanzar un ataque del 51% contra las redes públicas operativas de

blockchain. Este documento propone un nuevo ajuste al Consenso de Satoshi que hace que sea

exponencialmente más costoso y por lo tanto menos probable, lanzar ataques para cualquier

sistema de criptomoneda minable de prueba de trabajo (PoW).

El método más común para realizar un ataque de doble gasto es el siguiente:

Ejecutar una transacción T1 que envía monedas desde la dirección A a una dirección de centro

cambiario en la actual cadena de bloques pública.

Minar en privado un bloque en una cadena bifurcada en paralelo a la pública que contiene una

transacción T2 que envía monedas de la dirección A a otra dirección.

Esperar a que T1 sea confirmado por el centro cambiario. Mientras se continua minando de

manera privada la cadena paralela a un ritmo más rápido que la cadena pública.

Cambiar las monedas confirmadas en el centro cambiario, luego retirar los fondos a la dirección

privada B

Transmitir o anunciar a la red la cadena privada que es más larga que la pública.

En este punto, la red adoptará la cadena privada de atacantes como la nueva cadena pública

(ya que es más larga). Los mineros comenzarán a minar en la cadena pública recientemente

reorganizada.

T1 ya no es válida y el atacante ya usó las monedas fraudulentamente

En resumen, estos ataques son posibles porque el sistema permite "sobrescribir" la vista actual del

historial de la cadena de bloques del nodo con una nueva cadena más larga, después de que se

haya aceptado una transacción específica (por ejemplo, después de que el centro cambiario

esperó el tiempo de confirmación). Esto obedece a los principios de Satoshi que estableció en el

libro blanco de Bitcoin e implementados por la mayoría de las criptomonedas de prueba de trabajo

(PoW). La generación de bloques en un consenso de prueba de trabajo (PoW) es un proceso

estocástico y los mineros que son honestos pueden también generar bloques en paralelo a la

misma altura de la otra cadena (dependiendo del tiempo de generación de bloques y retrasos de

red), para lo cual el consenso de Satoshi tiene un método simple para solucionar la presencia de

dos cadenas escogiendo a la cadena con el mayor trabajo acumulado. Por lo tanto, cortando

ramas de la cadena corta con menos trabajo acumulado. Esto ha sido una forma eficiente de

mantener una secuencia lineal de bloques en estos sistemas distribuidos.

El libro blanco de Satoshi se basa en la suposición de que la mayoría del poder de cómputo está

controlado por nodos que son honestos (el principio de "una CPU por cada voto"), dentro de esta

suposición es casi imposible crear una rama adversaria de longitud razonable para implementar el

ataque de doble gasto. El método heurístico convencional consiste en la idea de que es suficiente

esperar varios bloques de confirmación para obtener una probabilidad muy baja de cancelación

de la transacción.

Muchas cosas cambiaron desde la publicación del libro blanco de Bitcoin. Algunos de los cambios

más importantes que ponen en peligro la regla de la cadena más larga son la aparición de los

circuitos integrados ASIC y otras técnicas de cómputo que rompen por completo el principio de

"una CPU por cada voto". Muchas criptomonedas comparten el mismo algoritmo de minería, pero

tienen diferencias muy marcadas en el hashrate , lo que permite que el poder computacional de un

grupo de minería (Mining Pool) pueda ser utilizado para atacar otra cadena.

Por lo tanto, vemos que la suposiciones de Satoshi sobre la mayoría del poder computacional

honesto y la imposibilidad de que existan largas ramas adversarias ya no son validas en el entorno

actual, evidenciado por los últimos ataques del 51% en varias criptomonedas. Necesitamos un

sistema más avanzado y más completo que satisfaga los requerimientos y condiciones actuales.

El consenso de prueba de trabajo (PoW ) central requiere correcciones para proporcionar servicios

seguros, al mismo tiempo que permita la posibilidad de que mineros honestos generen bloques

conflictivos y legitimar la sincronización retrasada de la red.

Para lograr este objetivo, hemos identificado una área de oportunidad que aumentaría

significativamente los recursos necesarios para un ataque exitoso de doble gasto (sin cambios en

la hashrate de mineros honestos). Esta modificación cambiaría el costo de un ataque para que no

tenga sentido económico realizarlo. Además, el aumento de los recursos necesarios para realizar

un ataque exitoso causara que las partes receptoras y los centros cambiarios no tengan que

modificar sus ajustes de cantidad de confirmaciones para liberar una transacción.

EL ENFOQUE DE PENALIZACIÓN POR ENVÍO RETRASADO

Considerando que la minería privada es la fuente de un ataque de doble gasto, para hacerlo

menos efectivo, introducimos una penalización en forma de un retraso de aceptación de bloque en

relación con la cantidad de tiempo que el bloque ha estado oculto de la red pública. El tiempo se

mide en intervalos de bloques, no se medirá temporalmente con una estampa de tiempo.

Supongamos que se tiene el siguiente escenario de recepción de bloque en la cadena:

BNi = Bloque Normal

BMi = Bloque Malicioso

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Tiempo

Figura 1

En el sistema actual, los bloques BN117, BN118, BN119, BN120 no serán minados porque tan pronto

como la red recibió el bloque BM119, la cadena maliciosa se convierte en la activa y la red

comenzará a minar desde el bloque BM119 abandonando la cadena original.

Para evitar esto, presentamos un retraso de aceptación de una bifurcación de la cadena de bloque

actual, proporcional a la cantidad de tiempo que la bifurcación se haya ocultado de la red pública.

Este retraso representa el número de bloques para los cuales se pospondrá la adopción de la

nueva cadena. Para un atacante, significa que tendrá que seguir minando la bifurcación de la

cadena de bloques maliciosa incluso después de revelarlo hasta el momento en que el retraso

haya terminado.

Por ejemplo, consideremos la siguiente función de retraso FR. Para definir FR primero presentamos

el parámetro RBi que representa el retraso de recepción de bloque mediante una diferencia entre

la altura actual de la cadena principal y la altura del bloque recibido (Ejemplo: RBBM100 = 16,

RBBM101 = 15, ..., RBBM115 = 1, RBBM116= 0, RBBM117 = -1, RBBM118 = -1) o -1 en caso de que la altura del

bloque recibido sea mayor que la altura actual de la cadena principal.

La función de retraso FR en este caso para toda la cadena bifurcada se representará como la

SUMA de valores RBBMi, donde i representa los índices de los bloques en la cadena bifurcada.

En el siguiente ejemplo de la Figura 2, el valor de FR (MB100, ..., MB119) = 16 + 15 + 14 + 13 + 12 + ....

1 + 0-1-1-1 = 136 - 3 = 133 bloques. Por lo tanto, el atacante tendrá que seguir minando su bifurcación

después de que se haya hecho pública por otros 133 bloques para que pueda ser aceptada por

otros nodos como la cadena principal.

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Pmb 133 - 132 - 131 - 130

Tiempo

Figure 2.

Con la función de retraso presentado anteriormente, si suponemos, que se adoptara un tiempo de

confirmación de 20 bloques, un castigo de demora de 21 bloques sería 21 * (21 + 1) / 2 = 231, que

significa que el número mínimo de bloques que se tendrán que minar para poder realizar el ataque

serían 231 + 21 = 252 bloques.

Tenga en cuenta que el tiempo de confirmación no puede comenzar hasta que una bifurcación esté

en progreso.

El ajuste adecuado de la función de retardo complicará un ataque hasta el punto de que no sea

factible ya que requerirá una cantidad de recursos significativamente mayor y también dará una

oportunidad adicional de reaccionar en la bifurcación de la cadena de bloques antes de su

adopción final. La red se enterará sobre la bifurcación paralela y el atacante deberá seguir

minando hasta reducir la función de retardo completamente (DF = 0) antes de que la red adopte la

cadena paralela como la más larga. Durante este período, los participantes de la red, como los

centros cambiarios, pueden congelar depósitos potencialmente fraudulentos hasta que se

resuelva el problema. Supongamos que el intento de cadena fraudulenta se abandona, o se ha

conducido con éxito el tiempo de retraso (DF = 0) a través de la fuerza bruta. Los mineros honestos

continuarán agregando a la cadena activa mientras el tiempo de retraso se consume.

La función de retraso también puede considerar la dificultad actual de minería (d) para

proporcionar una mejor protección para las monedas con bajo índice de hashrate (por ejemplo, el

aumento de la función de retraso se vería afectada de manera inversamente proporcional a la

dificultad actual de minado). Tal factor de aumento se podría ver reflejado de tal manera: DF'= DF

* f (d) puede ignorarse estableciendo f (d) = 1, pero puede sustituirse acuerdo a las necesidades,

mismo que tiene las propiedades de bajo impacto para el rango de bifurcación paralela de bloque

honesta, también puede escalar exponencialmente fuera de cualquier rango razonable para los

mineros deshonestos.

Aunque la característica introducida complica todo el espectro de ataques de minería (los que

ejecutan minando bifurcaciones paralelas de manera privada), no impide que la red adopte una

nueva cadena de bloques más larga en caso de una división natural (por ejemplo, cuando en

algunas partes del mundo están completamente segregadas entre sí por algún tiempo

determinado). El período de adopción de una cadena más larga será más prolongado que la regla

del consenso de Satoshi, pero los mineros honestos trabajarán en la cadena paralela hasta

conducir a DF=0.

Tenga en cuenta que si un adversario mina su cadena públicamente, no se aplicará la demora, pero en

este caso todos pueden ver la bifurcación y tomar medidas preventivas (por ejemplo, los centros

cambiarios aumentarán los períodos de confirmación, etc.).

CONCLUSIÓN

El entorno operativo para las criptomonedas ha cambiado significativamente desde sus orígenes en 2009,

cuando la minería estaba mucho más descentralizada. El Consenso de Satoshi, o la regla de la cadena

más larga, funcionó bien para adjudicar las bifurcaciones de cadenas naturales al simplemente adoptar

la cadena con el mayor trabajo acumulado. Tanto las limitaciones técnicas como los incentivos

económicos se combinan para hacer que la cadena más larga gobierne la estrategia dominante para

cualquier minero, ya sea honesto o con malas intenciones. Este ya no es el caso y las cadenas de bloque

públicas necesitan actualizar las reglas de consenso para que sea mucho más costoso tener éxito con los

ataques de doble gasto.

Esta propuesta brinda uno de esos métodos que tiene una forma simple que, en sí misma, es bastante

prometedora, pero que se puede generalizar con una función de escalado para que sea técnicamente

inviable y económicamente desastroso para intentar el gasto doble. El método permite que los que minan

de manera honesta puedan resolver bloques de manera paralela, así como en el caso de las fracturas de

red legítimas que se resuelven con el tiempo. Ninguna estrategia de ataque debe considerarse

neutralizada permanentemente, pero este método ciertamente hace menos probable un método común

de ataque. La investigación adicional en estrategias de defensa en capas, como la introducción de

esquemas de notarización de bloque de intervalo en la parte superior de este sistema de penalización

podría hacer que el sistema sea aún más seguro y una investigación de implementación se debería de

llevar acabo.

3

Page 4: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

INTRODUCTION

The longest chain rule, or Satoshi Consensus, worked well in the relatively decentralized

environment in which it was introduced in 2009. Mining resources have since concentrated and

dropped in cost for lease, such that the original dominant strategy of playing by the rules no longer

holds for all proof-of-work (PoW) blockchains that rely on the longest chain rule. As recent events

have proven, in some circumstances it can be economically feasible to launch 51% attacks on

operational public blockchain networks. This paper proposes a novel adjustment to Satoshi

Consensus that makes it exponentially more costly, and hence unlikely, to launch such attacks for

any proof-of-work mineable cryptocurrency system.

The common method for performing a double spend attack is as such:

Execute a transaction T1 sending coins from address A to an exchange address on the current

public chain

Privately mine a block on a parallel forked chain containing a transaction T2 sending coins from

address A to another address

Wait for T1 to be confirmed by the exchange and in the meantime continue to mine privately the

parallel chain at a faster rate than the public chain

Trade the confirmed coins on the exchange, then withdraw funds to private address B

Broadcast to the network the private chain that is longer than the public one

at this point, the network will adopt the attackers private chain as the new public chain (as it is

longer) and miners will start mining on the newly reorganised public chain.

T1 is no longer valid and the attacker already used the coins fraudulently

To summarize, these attacks are possible because the system allows to “overwrite” the current

node view of the blockchain history with the new one after a user accepted a specific transaction

(e.g. after the Exchange waited for the confirmation time). This obeys Satoshi's principles given in

the Bitcoin white paper and implemented by most of PoW cryptocurrencies. Block generation in

PoW consensus is a stochastic process and honest miners can generate blocks in parallel on the

same height (with probability depending on block generation time and network delays), for which

Satoshi Consensus has a simple method to adjudicate by ultimately defaulting to the chain with the

most accumulated work. Thus, pruning shorter branches with lower accumulated work has been

an efficient way to keep the linear sequence of blocks across these distributed systems.

Satoshi's white paper is based on the assumption that a majority of computational power is controlled by

honest nodes ("one-CPU-one-vote" principle), and within this assumption it is almost impossible to

create any reasonable length adversarial branch to implement the double spend attack. Conventional

heuristics have converged on the idea that it is su�cient to wait for several con�rmation blocks to get

very low probability of transaction cancellation.

Many things changed since publishing the Bitcoin white paper. Some of the most signi�cant changes

that jeopardize the longest chain rule, are the appearance of ASIC miners and other computation boost

techniques that completely break the "one-CPU-one-vote" principle. Many cryptocurrencies share the

same mining algorithm, but have extreme di�erences in hashrate, which allows for the computation of

one cryptocurrency mining pool to potentially be used to attack another chain.

Thus, we see that Satoshi's assumption about honest majority of computational power and the

impossibility of long adversarial branches may be broken in the modern environment, evidenced by the

latest 51% attacks on several cryptocurrencies. We need a more advanced and more comprehensive

system that satis�es modern conditions. The core PoW consensus requires corrections to provide secure

services, while still allowing the possibility of honest miners generating con�icting blocks, and legitimate

network delayed synchronization.

To achieve this goal we have identi�ed a modi�cation that signi�cantly increases resources needed for a

successful double spend attack (with no changes in honest hash rate) and shifts the cost of an attack to

become economically senseless. Moreover, the increase of resources needed to make a successful attack

will not require increased con�rmation adjustments by receiving parties, including exchanges.

THE DELAYED BLOCK SUBMISSION PENALTY APPROACH

Considering that private mining is the source of a double spending attack, to make it less effective we

introduce a penalty in the form of a block acceptance delay in relation to the amount of time the block

has been hidden from the public network. Time being measured in block intervals, not temporally via

timestamp.

For example, let’s assume to have the following block reception scenario:

NBi = Normal block

MBi = Malicious block

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Time

Figure 1

In the current system, blocks NB117, NB118, NB119, NB120 are not going to be mined because as soon

as the network received block MB119, the malicious chain becomes the active one and the network

will start mining from block MB119 abandoning the normal chain.

To prevent this, we introduce a fork acceptance delay related to the amount of time the fork has been

hidden from the public network. This delay represents the number of blocks for which the adoption of

the new parallel chain will be postponed. For an adversary it means that he will need to continue to

mine the malicious fork even after revealing it and until the moment when the delay is finished.

For example, let’s consider the following delay function DF. To define DF we first introduce BDi which

effectively represents block reception delay defined as a difference between current main chain

height and height of the received block (e.g. BDmb100=16, BDmb101=15, …, BDmb115=1, BDmb116=0,

BDmb117=-1, BDmb118=-1) or -1 in case the height of the received block is greater than the current main

chain height.

The delay function DF in this case for the whole forked chain will be represented as the SUM of

BDmb[i] values, where i represents indices of the blocks in the forked chain.

In the following example on Figure 2, the delay DF(MB100,...,MB119) = 16+15+14+13+12+....1+0-1-1-1 = 136

- 3 = 133 blocks. So the adversary will need to keep mining his fork after it became public for another

133 blocks until it will be accepted by other nodes.

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Pmb 133 - 132 - 131 - 130

Time

Figure 2

With such a delay function, if we assume for example to adopt a 20 block confirmation time, a 21 block

delay punishment would be 21 * (21 + 1) / 2 = 231, then the minimum number of blocks to be mined to

perform the attack would be 231 + 21 = 252 blocks

Please note that the confirmation time cannot start until a fork is in progress.

Proper tuning of the delay function will complicate an attack to the point of infeasibility since it will

require significantly more resources and will also give an additional opportunity to react on the fork

before its final adoption. The network will learn of the contentious fork and it will have to reduce the

full delay function (DF = 0) before the network defaults to the chain as truth. During this period,

network participants, such as exchanges, can freeze potentially fraudulent deposits until the issue has

been resolved, e.g. either the attempted fraudulent chain is abandoned, or it has successfully driven

DF � 0 through brute force. Honest miners continue to add to the active chain.

The delay function may also consider current mining difficulty (d) to provide better protection for coins

with low hashrate (e.g. increasing delay by a factor inversely proportional to the current difficulty).

Such an augmenting factor to DF’ = DF * f(d) can be ignored by setting f(d) = 1, but any sensible

functional form can be substituted in that has the properties of low impact for the range of honest

simultaneous block contention, then scales exponentially outside any reasonable range for which we

can assign dishonest motives.

Although the introduced feature complicates the whole specter of mining attacks (those executed by

mining private parallel forks), it does not prevent the network from converging in case of a natural split

(e.g. when some parts of the world are completely segregated from each other for some time). The

period of convergence will be longer than the pure longest chain rule, but honest miners will work on

converging chains by driving DF � 0.

Note that if an adversary mines his chain publicly the delay will not be applied, but in this case

everyone can see the fork and is able to take preventive measures (e.g. exchanges will increase

confirmation periods, etc.).

CONCLUSION

The operating environment for cryptocurrency systems has changed significantly from its origins in

2009 when mining power was far more decentralized. Satoshi Consensus, or the longest chain rule,

worked well to adjudicate natural chain forks by simply deferring to the chain with the most

accumulated work. Both technical limitations and economic incentives combined to render the

longest chain rule the dominant strategy for any miner, whether honest or nefarious. This is no longer

the case and public blockchains need to upgrade consensus rules to make it far more costly to

succeed with double spending.

This proposal gives one such method that has a simple form that is, itself, quite promising, but which

can be generalized with a scaling function to make it both technically infeasible and economically

disastrous to attempt double spending. The method permits adjudication of honest miners

simultaneously solving blocks, as well as legitimate network fractures that resolve over time. No

attack vector should ever be considered permanently neutralized, but this method certainly renders

one common method far less likely. Additional research into layered defense strategies, such as

introducing interval block notarization schemes on top of this penalty system could make the system

even more secure and should be investigated.

ACKNOWLEDGEMENTS

SPECIAL THANKS

to the team and community for contributing:

@cronic, Peter Stewart, @ultimateblockage,

Rosario Pabst, Rowan Stone, Gustavo Fialho and Vitalik Demin.

Creatives by Lucy Wang, Linda Baksija and Marko Orčić.

INTRODUCCIÓN

La regla de la cadena más larga o el Consenso de Satoshi, funcionó bien en el entorno

relativamente descentralizado en el que se introdujo en 2009. Desde entonces, los recursos

mineros se han estado concentrando, produciendo una disminución de costos de renta, de tal

manera que la estrategia inicial que había planteado Satoshi ya no es válida para todas las

cadenas de bloque de prueba de trabajo (PoW) que dependen de la regla de cadena más larga.

Como los eventos recientes han demostrado, en algunas circunstancias puede ser

económicamente factible lanzar un ataque del 51% contra las redes públicas operativas de

blockchain. Este documento propone un nuevo ajuste al Consenso de Satoshi que hace que sea

exponencialmente más costoso y por lo tanto menos probable, lanzar ataques para cualquier

sistema de criptomoneda minable de prueba de trabajo (PoW).

El método más común para realizar un ataque de doble gasto es el siguiente:

Ejecutar una transacción T1 que envía monedas desde la dirección A a una dirección de centro

cambiario en la actual cadena de bloques pública.

Minar en privado un bloque en una cadena bifurcada en paralelo a la pública que contiene una

transacción T2 que envía monedas de la dirección A a otra dirección.

Esperar a que T1 sea confirmado por el centro cambiario. Mientras se continua minando de

manera privada la cadena paralela a un ritmo más rápido que la cadena pública.

Cambiar las monedas confirmadas en el centro cambiario, luego retirar los fondos a la dirección

privada B

Transmitir o anunciar a la red la cadena privada que es más larga que la pública.

En este punto, la red adoptará la cadena privada de atacantes como la nueva cadena pública

(ya que es más larga). Los mineros comenzarán a minar en la cadena pública recientemente

reorganizada.

T1 ya no es válida y el atacante ya usó las monedas fraudulentamente

En resumen, estos ataques son posibles porque el sistema permite "sobrescribir" la vista actual del

historial de la cadena de bloques del nodo con una nueva cadena más larga, después de que se

haya aceptado una transacción específica (por ejemplo, después de que el centro cambiario

esperó el tiempo de confirmación). Esto obedece a los principios de Satoshi que estableció en el

libro blanco de Bitcoin e implementados por la mayoría de las criptomonedas de prueba de trabajo

(PoW). La generación de bloques en un consenso de prueba de trabajo (PoW) es un proceso

estocástico y los mineros que son honestos pueden también generar bloques en paralelo a la

misma altura de la otra cadena (dependiendo del tiempo de generación de bloques y retrasos de

red), para lo cual el consenso de Satoshi tiene un método simple para solucionar la presencia de

dos cadenas escogiendo a la cadena con el mayor trabajo acumulado. Por lo tanto, cortando

ramas de la cadena corta con menos trabajo acumulado. Esto ha sido una forma eficiente de

mantener una secuencia lineal de bloques en estos sistemas distribuidos.

El libro blanco de Satoshi se basa en la suposición de que la mayoría del poder de cómputo está

controlado por nodos que son honestos (el principio de "una CPU por cada voto"), dentro de esta

suposición es casi imposible crear una rama adversaria de longitud razonable para implementar el

ataque de doble gasto. El método heurístico convencional consiste en la idea de que es suficiente

esperar varios bloques de confirmación para obtener una probabilidad muy baja de cancelación

de la transacción.

Muchas cosas cambiaron desde la publicación del libro blanco de Bitcoin. Algunos de los cambios

más importantes que ponen en peligro la regla de la cadena más larga son la aparición de los

circuitos integrados ASIC y otras técnicas de cómputo que rompen por completo el principio de

"una CPU por cada voto". Muchas criptomonedas comparten el mismo algoritmo de minería, pero

tienen diferencias muy marcadas en el hashrate , lo que permite que el poder computacional de un

grupo de minería (Mining Pool) pueda ser utilizado para atacar otra cadena.

Por lo tanto, vemos que la suposiciones de Satoshi sobre la mayoría del poder computacional

honesto y la imposibilidad de que existan largas ramas adversarias ya no son validas en el entorno

actual, evidenciado por los últimos ataques del 51% en varias criptomonedas. Necesitamos un

sistema más avanzado y más completo que satisfaga los requerimientos y condiciones actuales.

El consenso de prueba de trabajo (PoW ) central requiere correcciones para proporcionar servicios

seguros, al mismo tiempo que permita la posibilidad de que mineros honestos generen bloques

conflictivos y legitimar la sincronización retrasada de la red.

Para lograr este objetivo, hemos identificado una área de oportunidad que aumentaría

significativamente los recursos necesarios para un ataque exitoso de doble gasto (sin cambios en

la hashrate de mineros honestos). Esta modificación cambiaría el costo de un ataque para que no

tenga sentido económico realizarlo. Además, el aumento de los recursos necesarios para realizar

un ataque exitoso causara que las partes receptoras y los centros cambiarios no tengan que

modificar sus ajustes de cantidad de confirmaciones para liberar una transacción.

EL ENFOQUE DE PENALIZACIÓN POR ENVÍO RETRASADO

Considerando que la minería privada es la fuente de un ataque de doble gasto, para hacerlo

menos efectivo, introducimos una penalización en forma de un retraso de aceptación de bloque en

relación con la cantidad de tiempo que el bloque ha estado oculto de la red pública. El tiempo se

mide en intervalos de bloques, no se medirá temporalmente con una estampa de tiempo.

Supongamos que se tiene el siguiente escenario de recepción de bloque en la cadena:

BNi = Bloque Normal

BMi = Bloque Malicioso

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Tiempo

Figura 1

En el sistema actual, los bloques BN117, BN118, BN119, BN120 no serán minados porque tan pronto

como la red recibió el bloque BM119, la cadena maliciosa se convierte en la activa y la red

comenzará a minar desde el bloque BM119 abandonando la cadena original.

Para evitar esto, presentamos un retraso de aceptación de una bifurcación de la cadena de bloque

actual, proporcional a la cantidad de tiempo que la bifurcación se haya ocultado de la red pública.

Este retraso representa el número de bloques para los cuales se pospondrá la adopción de la

nueva cadena. Para un atacante, significa que tendrá que seguir minando la bifurcación de la

cadena de bloques maliciosa incluso después de revelarlo hasta el momento en que el retraso

haya terminado.

Por ejemplo, consideremos la siguiente función de retraso FR. Para definir FR primero presentamos

el parámetro RBi que representa el retraso de recepción de bloque mediante una diferencia entre

la altura actual de la cadena principal y la altura del bloque recibido (Ejemplo: RBBM100 = 16,

RBBM101 = 15, ..., RBBM115 = 1, RBBM116= 0, RBBM117 = -1, RBBM118 = -1) o -1 en caso de que la altura del

bloque recibido sea mayor que la altura actual de la cadena principal.

La función de retraso FR en este caso para toda la cadena bifurcada se representará como la

SUMA de valores RBBMi, donde i representa los índices de los bloques en la cadena bifurcada.

En el siguiente ejemplo de la Figura 2, el valor de FR (MB100, ..., MB119) = 16 + 15 + 14 + 13 + 12 + ....

1 + 0-1-1-1 = 136 - 3 = 133 bloques. Por lo tanto, el atacante tendrá que seguir minando su bifurcación

después de que se haya hecho pública por otros 133 bloques para que pueda ser aceptada por

otros nodos como la cadena principal.

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Pmb 133 - 132 - 131 - 130

Tiempo

Figure 2.

Con la función de retraso presentado anteriormente, si suponemos, que se adoptara un tiempo de

confirmación de 20 bloques, un castigo de demora de 21 bloques sería 21 * (21 + 1) / 2 = 231, que

significa que el número mínimo de bloques que se tendrán que minar para poder realizar el ataque

serían 231 + 21 = 252 bloques.

Tenga en cuenta que el tiempo de confirmación no puede comenzar hasta que una bifurcación esté

en progreso.

El ajuste adecuado de la función de retardo complicará un ataque hasta el punto de que no sea

factible ya que requerirá una cantidad de recursos significativamente mayor y también dará una

oportunidad adicional de reaccionar en la bifurcación de la cadena de bloques antes de su

adopción final. La red se enterará sobre la bifurcación paralela y el atacante deberá seguir

minando hasta reducir la función de retardo completamente (DF = 0) antes de que la red adopte la

cadena paralela como la más larga. Durante este período, los participantes de la red, como los

centros cambiarios, pueden congelar depósitos potencialmente fraudulentos hasta que se

resuelva el problema. Supongamos que el intento de cadena fraudulenta se abandona, o se ha

conducido con éxito el tiempo de retraso (DF = 0) a través de la fuerza bruta. Los mineros honestos

continuarán agregando a la cadena activa mientras el tiempo de retraso se consume.

La función de retraso también puede considerar la dificultad actual de minería (d) para

proporcionar una mejor protección para las monedas con bajo índice de hashrate (por ejemplo, el

aumento de la función de retraso se vería afectada de manera inversamente proporcional a la

dificultad actual de minado). Tal factor de aumento se podría ver reflejado de tal manera: DF'= DF

* f (d) puede ignorarse estableciendo f (d) = 1, pero puede sustituirse acuerdo a las necesidades,

mismo que tiene las propiedades de bajo impacto para el rango de bifurcación paralela de bloque

honesta, también puede escalar exponencialmente fuera de cualquier rango razonable para los

mineros deshonestos.

Aunque la característica introducida complica todo el espectro de ataques de minería (los que

ejecutan minando bifurcaciones paralelas de manera privada), no impide que la red adopte una

nueva cadena de bloques más larga en caso de una división natural (por ejemplo, cuando en

algunas partes del mundo están completamente segregadas entre sí por algún tiempo

determinado). El período de adopción de una cadena más larga será más prolongado que la regla

del consenso de Satoshi, pero los mineros honestos trabajarán en la cadena paralela hasta

conducir a DF=0.

Tenga en cuenta que si un adversario mina su cadena públicamente, no se aplicará la demora, pero en

este caso todos pueden ver la bifurcación y tomar medidas preventivas (por ejemplo, los centros

cambiarios aumentarán los períodos de confirmación, etc.).

CONCLUSIÓN

El entorno operativo para las criptomonedas ha cambiado significativamente desde sus orígenes en 2009,

cuando la minería estaba mucho más descentralizada. El Consenso de Satoshi, o la regla de la cadena

más larga, funcionó bien para adjudicar las bifurcaciones de cadenas naturales al simplemente adoptar

la cadena con el mayor trabajo acumulado. Tanto las limitaciones técnicas como los incentivos

económicos se combinan para hacer que la cadena más larga gobierne la estrategia dominante para

cualquier minero, ya sea honesto o con malas intenciones. Este ya no es el caso y las cadenas de bloque

públicas necesitan actualizar las reglas de consenso para que sea mucho más costoso tener éxito con los

ataques de doble gasto.

Esta propuesta brinda uno de esos métodos que tiene una forma simple que, en sí misma, es bastante

prometedora, pero que se puede generalizar con una función de escalado para que sea técnicamente

inviable y económicamente desastroso para intentar el gasto doble. El método permite que los que minan

de manera honesta puedan resolver bloques de manera paralela, así como en el caso de las fracturas de

red legítimas que se resuelven con el tiempo. Ninguna estrategia de ataque debe considerarse

neutralizada permanentemente, pero este método ciertamente hace menos probable un método común

de ataque. La investigación adicional en estrategias de defensa en capas, como la introducción de

esquemas de notarización de bloque de intervalo en la parte superior de este sistema de penalización

podría hacer que el sistema sea aún más seguro y una investigación de implementación se debería de

llevar acabo.

4

Page 5: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

INTRODUCTION

The longest chain rule, or Satoshi Consensus, worked well in the relatively decentralized

environment in which it was introduced in 2009. Mining resources have since concentrated and

dropped in cost for lease, such that the original dominant strategy of playing by the rules no longer

holds for all proof-of-work (PoW) blockchains that rely on the longest chain rule. As recent events

have proven, in some circumstances it can be economically feasible to launch 51% attacks on

operational public blockchain networks. This paper proposes a novel adjustment to Satoshi

Consensus that makes it exponentially more costly, and hence unlikely, to launch such attacks for

any proof-of-work mineable cryptocurrency system.

The common method for performing a double spend attack is as such:

Execute a transaction T1 sending coins from address A to an exchange address on the current

public chain

Privately mine a block on a parallel forked chain containing a transaction T2 sending coins from

address A to another address

Wait for T1 to be confirmed by the exchange and in the meantime continue to mine privately the

parallel chain at a faster rate than the public chain

Trade the confirmed coins on the exchange, then withdraw funds to private address B

Broadcast to the network the private chain that is longer than the public one

at this point, the network will adopt the attackers private chain as the new public chain (as it is

longer) and miners will start mining on the newly reorganised public chain.

T1 is no longer valid and the attacker already used the coins fraudulently

To summarize, these attacks are possible because the system allows to “overwrite” the current

node view of the blockchain history with the new one after a user accepted a specific transaction

(e.g. after the Exchange waited for the confirmation time). This obeys Satoshi's principles given in

the Bitcoin white paper and implemented by most of PoW cryptocurrencies. Block generation in

PoW consensus is a stochastic process and honest miners can generate blocks in parallel on the

same height (with probability depending on block generation time and network delays), for which

Satoshi Consensus has a simple method to adjudicate by ultimately defaulting to the chain with the

most accumulated work. Thus, pruning shorter branches with lower accumulated work has been

an efficient way to keep the linear sequence of blocks across these distributed systems.

Satoshi's white paper is based on the assumption that a majority of computational power is controlled by

honest nodes ("one-CPU-one-vote" principle), and within this assumption it is almost impossible to

create any reasonable length adversarial branch to implement the double spend attack. Conventional

heuristics have converged on the idea that it is su�cient to wait for several con�rmation blocks to get

very low probability of transaction cancellation.

Many things changed since publishing the Bitcoin white paper. Some of the most signi�cant changes

that jeopardize the longest chain rule, are the appearance of ASIC miners and other computation boost

techniques that completely break the "one-CPU-one-vote" principle. Many cryptocurrencies share the

same mining algorithm, but have extreme di�erences in hashrate, which allows for the computation of

one cryptocurrency mining pool to potentially be used to attack another chain.

Thus, we see that Satoshi's assumption about honest majority of computational power and the

impossibility of long adversarial branches may be broken in the modern environment, evidenced by the

latest 51% attacks on several cryptocurrencies. We need a more advanced and more comprehensive

system that satis�es modern conditions. The core PoW consensus requires corrections to provide secure

services, while still allowing the possibility of honest miners generating con�icting blocks, and legitimate

network delayed synchronization.

To achieve this goal we have identi�ed a modi�cation that signi�cantly increases resources needed for a

successful double spend attack (with no changes in honest hash rate) and shifts the cost of an attack to

become economically senseless. Moreover, the increase of resources needed to make a successful attack

will not require increased con�rmation adjustments by receiving parties, including exchanges.

THE DELAYED BLOCK SUBMISSION PENALTY APPROACH

Considering that private mining is the source of a double spending attack, to make it less effective we

introduce a penalty in the form of a block acceptance delay in relation to the amount of time the block

has been hidden from the public network. Time being measured in block intervals, not temporally via

timestamp.

For example, let’s assume to have the following block reception scenario:

NBi = Normal block

MBi = Malicious block

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Time

Figure 1

In the current system, blocks NB117, NB118, NB119, NB120 are not going to be mined because as soon

as the network received block MB119, the malicious chain becomes the active one and the network

will start mining from block MB119 abandoning the normal chain.

To prevent this, we introduce a fork acceptance delay related to the amount of time the fork has been

hidden from the public network. This delay represents the number of blocks for which the adoption of

the new parallel chain will be postponed. For an adversary it means that he will need to continue to

mine the malicious fork even after revealing it and until the moment when the delay is finished.

For example, let’s consider the following delay function DF. To define DF we first introduce BDi which

effectively represents block reception delay defined as a difference between current main chain

height and height of the received block (e.g. BDmb100=16, BDmb101=15, …, BDmb115=1, BDmb116=0,

BDmb117=-1, BDmb118=-1) or -1 in case the height of the received block is greater than the current main

chain height.

The delay function DF in this case for the whole forked chain will be represented as the SUM of

BDmb[i] values, where i represents indices of the blocks in the forked chain.

In the following example on Figure 2, the delay DF(MB100,...,MB119) = 16+15+14+13+12+....1+0-1-1-1 = 136

- 3 = 133 blocks. So the adversary will need to keep mining his fork after it became public for another

133 blocks until it will be accepted by other nodes.

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Pmb 133 - 132 - 131 - 130

Time

Figure 2

With such a delay function, if we assume for example to adopt a 20 block confirmation time, a 21 block

delay punishment would be 21 * (21 + 1) / 2 = 231, then the minimum number of blocks to be mined to

perform the attack would be 231 + 21 = 252 blocks

Please note that the confirmation time cannot start until a fork is in progress.

Proper tuning of the delay function will complicate an attack to the point of infeasibility since it will

require significantly more resources and will also give an additional opportunity to react on the fork

before its final adoption. The network will learn of the contentious fork and it will have to reduce the

full delay function (DF = 0) before the network defaults to the chain as truth. During this period,

network participants, such as exchanges, can freeze potentially fraudulent deposits until the issue has

been resolved, e.g. either the attempted fraudulent chain is abandoned, or it has successfully driven

DF � 0 through brute force. Honest miners continue to add to the active chain.

The delay function may also consider current mining difficulty (d) to provide better protection for coins

with low hashrate (e.g. increasing delay by a factor inversely proportional to the current difficulty).

Such an augmenting factor to DF’ = DF * f(d) can be ignored by setting f(d) = 1, but any sensible

functional form can be substituted in that has the properties of low impact for the range of honest

simultaneous block contention, then scales exponentially outside any reasonable range for which we

can assign dishonest motives.

Although the introduced feature complicates the whole specter of mining attacks (those executed by

mining private parallel forks), it does not prevent the network from converging in case of a natural split

(e.g. when some parts of the world are completely segregated from each other for some time). The

period of convergence will be longer than the pure longest chain rule, but honest miners will work on

converging chains by driving DF � 0.

Note that if an adversary mines his chain publicly the delay will not be applied, but in this case

everyone can see the fork and is able to take preventive measures (e.g. exchanges will increase

confirmation periods, etc.).

CONCLUSION

The operating environment for cryptocurrency systems has changed significantly from its origins in

2009 when mining power was far more decentralized. Satoshi Consensus, or the longest chain rule,

worked well to adjudicate natural chain forks by simply deferring to the chain with the most

accumulated work. Both technical limitations and economic incentives combined to render the

longest chain rule the dominant strategy for any miner, whether honest or nefarious. This is no longer

the case and public blockchains need to upgrade consensus rules to make it far more costly to

succeed with double spending.

This proposal gives one such method that has a simple form that is, itself, quite promising, but which

can be generalized with a scaling function to make it both technically infeasible and economically

disastrous to attempt double spending. The method permits adjudication of honest miners

simultaneously solving blocks, as well as legitimate network fractures that resolve over time. No

attack vector should ever be considered permanently neutralized, but this method certainly renders

one common method far less likely. Additional research into layered defense strategies, such as

introducing interval block notarization schemes on top of this penalty system could make the system

even more secure and should be investigated.

ACKNOWLEDGEMENTS

SPECIAL THANKS

to the team and community for contributing:

@cronic, Peter Stewart, @ultimateblockage,

Rosario Pabst, Rowan Stone, Gustavo Fialho and Vitalik Demin.

Creatives by Lucy Wang, Linda Baksija and Marko Orčić.

INTRODUCCIÓN

La regla de la cadena más larga o el Consenso de Satoshi, funcionó bien en el entorno

relativamente descentralizado en el que se introdujo en 2009. Desde entonces, los recursos

mineros se han estado concentrando, produciendo una disminución de costos de renta, de tal

manera que la estrategia inicial que había planteado Satoshi ya no es válida para todas las

cadenas de bloque de prueba de trabajo (PoW) que dependen de la regla de cadena más larga.

Como los eventos recientes han demostrado, en algunas circunstancias puede ser

económicamente factible lanzar un ataque del 51% contra las redes públicas operativas de

blockchain. Este documento propone un nuevo ajuste al Consenso de Satoshi que hace que sea

exponencialmente más costoso y por lo tanto menos probable, lanzar ataques para cualquier

sistema de criptomoneda minable de prueba de trabajo (PoW).

El método más común para realizar un ataque de doble gasto es el siguiente:

Ejecutar una transacción T1 que envía monedas desde la dirección A a una dirección de centro

cambiario en la actual cadena de bloques pública.

Minar en privado un bloque en una cadena bifurcada en paralelo a la pública que contiene una

transacción T2 que envía monedas de la dirección A a otra dirección.

Esperar a que T1 sea confirmado por el centro cambiario. Mientras se continua minando de

manera privada la cadena paralela a un ritmo más rápido que la cadena pública.

Cambiar las monedas confirmadas en el centro cambiario, luego retirar los fondos a la dirección

privada B

Transmitir o anunciar a la red la cadena privada que es más larga que la pública.

En este punto, la red adoptará la cadena privada de atacantes como la nueva cadena pública

(ya que es más larga). Los mineros comenzarán a minar en la cadena pública recientemente

reorganizada.

T1 ya no es válida y el atacante ya usó las monedas fraudulentamente

En resumen, estos ataques son posibles porque el sistema permite "sobrescribir" la vista actual del

historial de la cadena de bloques del nodo con una nueva cadena más larga, después de que se

haya aceptado una transacción específica (por ejemplo, después de que el centro cambiario

esperó el tiempo de confirmación). Esto obedece a los principios de Satoshi que estableció en el

libro blanco de Bitcoin e implementados por la mayoría de las criptomonedas de prueba de trabajo

(PoW). La generación de bloques en un consenso de prueba de trabajo (PoW) es un proceso

estocástico y los mineros que son honestos pueden también generar bloques en paralelo a la

misma altura de la otra cadena (dependiendo del tiempo de generación de bloques y retrasos de

red), para lo cual el consenso de Satoshi tiene un método simple para solucionar la presencia de

dos cadenas escogiendo a la cadena con el mayor trabajo acumulado. Por lo tanto, cortando

ramas de la cadena corta con menos trabajo acumulado. Esto ha sido una forma eficiente de

mantener una secuencia lineal de bloques en estos sistemas distribuidos.

El libro blanco de Satoshi se basa en la suposición de que la mayoría del poder de cómputo está

controlado por nodos que son honestos (el principio de "una CPU por cada voto"), dentro de esta

suposición es casi imposible crear una rama adversaria de longitud razonable para implementar el

ataque de doble gasto. El método heurístico convencional consiste en la idea de que es suficiente

esperar varios bloques de confirmación para obtener una probabilidad muy baja de cancelación

de la transacción.

Muchas cosas cambiaron desde la publicación del libro blanco de Bitcoin. Algunos de los cambios

más importantes que ponen en peligro la regla de la cadena más larga son la aparición de los

circuitos integrados ASIC y otras técnicas de cómputo que rompen por completo el principio de

"una CPU por cada voto". Muchas criptomonedas comparten el mismo algoritmo de minería, pero

tienen diferencias muy marcadas en el hashrate , lo que permite que el poder computacional de un

grupo de minería (Mining Pool) pueda ser utilizado para atacar otra cadena.

Por lo tanto, vemos que la suposiciones de Satoshi sobre la mayoría del poder computacional

honesto y la imposibilidad de que existan largas ramas adversarias ya no son validas en el entorno

actual, evidenciado por los últimos ataques del 51% en varias criptomonedas. Necesitamos un

sistema más avanzado y más completo que satisfaga los requerimientos y condiciones actuales.

El consenso de prueba de trabajo (PoW ) central requiere correcciones para proporcionar servicios

seguros, al mismo tiempo que permita la posibilidad de que mineros honestos generen bloques

conflictivos y legitimar la sincronización retrasada de la red.

Para lograr este objetivo, hemos identificado una área de oportunidad que aumentaría

significativamente los recursos necesarios para un ataque exitoso de doble gasto (sin cambios en

la hashrate de mineros honestos). Esta modificación cambiaría el costo de un ataque para que no

tenga sentido económico realizarlo. Además, el aumento de los recursos necesarios para realizar

un ataque exitoso causara que las partes receptoras y los centros cambiarios no tengan que

modificar sus ajustes de cantidad de confirmaciones para liberar una transacción.

EL ENFOQUE DE PENALIZACIÓN POR ENVÍO RETRASADO

Considerando que la minería privada es la fuente de un ataque de doble gasto, para hacerlo

menos efectivo, introducimos una penalización en forma de un retraso de aceptación de bloque en

relación con la cantidad de tiempo que el bloque ha estado oculto de la red pública. El tiempo se

mide en intervalos de bloques, no se medirá temporalmente con una estampa de tiempo.

Supongamos que se tiene el siguiente escenario de recepción de bloque en la cadena:

BNi = Bloque Normal

BMi = Bloque Malicioso

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Tiempo

Figura 1

En el sistema actual, los bloques BN117, BN118, BN119, BN120 no serán minados porque tan pronto

como la red recibió el bloque BM119, la cadena maliciosa se convierte en la activa y la red

comenzará a minar desde el bloque BM119 abandonando la cadena original.

Para evitar esto, presentamos un retraso de aceptación de una bifurcación de la cadena de bloque

actual, proporcional a la cantidad de tiempo que la bifurcación se haya ocultado de la red pública.

Este retraso representa el número de bloques para los cuales se pospondrá la adopción de la

nueva cadena. Para un atacante, significa que tendrá que seguir minando la bifurcación de la

cadena de bloques maliciosa incluso después de revelarlo hasta el momento en que el retraso

haya terminado.

Por ejemplo, consideremos la siguiente función de retraso FR. Para definir FR primero presentamos

el parámetro RBi que representa el retraso de recepción de bloque mediante una diferencia entre

la altura actual de la cadena principal y la altura del bloque recibido (Ejemplo: RBBM100 = 16,

RBBM101 = 15, ..., RBBM115 = 1, RBBM116= 0, RBBM117 = -1, RBBM118 = -1) o -1 en caso de que la altura del

bloque recibido sea mayor que la altura actual de la cadena principal.

La función de retraso FR en este caso para toda la cadena bifurcada se representará como la

SUMA de valores RBBMi, donde i representa los índices de los bloques en la cadena bifurcada.

En el siguiente ejemplo de la Figura 2, el valor de FR (MB100, ..., MB119) = 16 + 15 + 14 + 13 + 12 + ....

1 + 0-1-1-1 = 136 - 3 = 133 bloques. Por lo tanto, el atacante tendrá que seguir minando su bifurcación

después de que se haya hecho pública por otros 133 bloques para que pueda ser aceptada por

otros nodos como la cadena principal.

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Pmb 133 - 132 - 131 - 130

Tiempo

Figure 2.

Con la función de retraso presentado anteriormente, si suponemos, que se adoptara un tiempo de

confirmación de 20 bloques, un castigo de demora de 21 bloques sería 21 * (21 + 1) / 2 = 231, que

significa que el número mínimo de bloques que se tendrán que minar para poder realizar el ataque

serían 231 + 21 = 252 bloques.

Tenga en cuenta que el tiempo de confirmación no puede comenzar hasta que una bifurcación esté

en progreso.

El ajuste adecuado de la función de retardo complicará un ataque hasta el punto de que no sea

factible ya que requerirá una cantidad de recursos significativamente mayor y también dará una

oportunidad adicional de reaccionar en la bifurcación de la cadena de bloques antes de su

adopción final. La red se enterará sobre la bifurcación paralela y el atacante deberá seguir

minando hasta reducir la función de retardo completamente (DF = 0) antes de que la red adopte la

cadena paralela como la más larga. Durante este período, los participantes de la red, como los

centros cambiarios, pueden congelar depósitos potencialmente fraudulentos hasta que se

resuelva el problema. Supongamos que el intento de cadena fraudulenta se abandona, o se ha

conducido con éxito el tiempo de retraso (DF = 0) a través de la fuerza bruta. Los mineros honestos

continuarán agregando a la cadena activa mientras el tiempo de retraso se consume.

La función de retraso también puede considerar la dificultad actual de minería (d) para

proporcionar una mejor protección para las monedas con bajo índice de hashrate (por ejemplo, el

aumento de la función de retraso se vería afectada de manera inversamente proporcional a la

dificultad actual de minado). Tal factor de aumento se podría ver reflejado de tal manera: DF'= DF

* f (d) puede ignorarse estableciendo f (d) = 1, pero puede sustituirse acuerdo a las necesidades,

mismo que tiene las propiedades de bajo impacto para el rango de bifurcación paralela de bloque

honesta, también puede escalar exponencialmente fuera de cualquier rango razonable para los

mineros deshonestos.

Aunque la característica introducida complica todo el espectro de ataques de minería (los que

ejecutan minando bifurcaciones paralelas de manera privada), no impide que la red adopte una

nueva cadena de bloques más larga en caso de una división natural (por ejemplo, cuando en

algunas partes del mundo están completamente segregadas entre sí por algún tiempo

determinado). El período de adopción de una cadena más larga será más prolongado que la regla

del consenso de Satoshi, pero los mineros honestos trabajarán en la cadena paralela hasta

conducir a DF=0.

Tenga en cuenta que si un adversario mina su cadena públicamente, no se aplicará la demora, pero en

este caso todos pueden ver la bifurcación y tomar medidas preventivas (por ejemplo, los centros

cambiarios aumentarán los períodos de confirmación, etc.).

CONCLUSIÓN

El entorno operativo para las criptomonedas ha cambiado significativamente desde sus orígenes en 2009,

cuando la minería estaba mucho más descentralizada. El Consenso de Satoshi, o la regla de la cadena

más larga, funcionó bien para adjudicar las bifurcaciones de cadenas naturales al simplemente adoptar

la cadena con el mayor trabajo acumulado. Tanto las limitaciones técnicas como los incentivos

económicos se combinan para hacer que la cadena más larga gobierne la estrategia dominante para

cualquier minero, ya sea honesto o con malas intenciones. Este ya no es el caso y las cadenas de bloque

públicas necesitan actualizar las reglas de consenso para que sea mucho más costoso tener éxito con los

ataques de doble gasto.

Esta propuesta brinda uno de esos métodos que tiene una forma simple que, en sí misma, es bastante

prometedora, pero que se puede generalizar con una función de escalado para que sea técnicamente

inviable y económicamente desastroso para intentar el gasto doble. El método permite que los que minan

de manera honesta puedan resolver bloques de manera paralela, así como en el caso de las fracturas de

red legítimas que se resuelven con el tiempo. Ninguna estrategia de ataque debe considerarse

neutralizada permanentemente, pero este método ciertamente hace menos probable un método común

de ataque. La investigación adicional en estrategias de defensa en capas, como la introducción de

esquemas de notarización de bloque de intervalo en la parte superior de este sistema de penalización

podría hacer que el sistema sea aún más seguro y una investigación de implementación se debería de

llevar acabo.

5

Page 6: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

INTRODUCTION

The longest chain rule, or Satoshi Consensus, worked well in the relatively decentralized

environment in which it was introduced in 2009. Mining resources have since concentrated and

dropped in cost for lease, such that the original dominant strategy of playing by the rules no longer

holds for all proof-of-work (PoW) blockchains that rely on the longest chain rule. As recent events

have proven, in some circumstances it can be economically feasible to launch 51% attacks on

operational public blockchain networks. This paper proposes a novel adjustment to Satoshi

Consensus that makes it exponentially more costly, and hence unlikely, to launch such attacks for

any proof-of-work mineable cryptocurrency system.

The common method for performing a double spend attack is as such:

Execute a transaction T1 sending coins from address A to an exchange address on the current

public chain

Privately mine a block on a parallel forked chain containing a transaction T2 sending coins from

address A to another address

Wait for T1 to be confirmed by the exchange and in the meantime continue to mine privately the

parallel chain at a faster rate than the public chain

Trade the confirmed coins on the exchange, then withdraw funds to private address B

Broadcast to the network the private chain that is longer than the public one

at this point, the network will adopt the attackers private chain as the new public chain (as it is

longer) and miners will start mining on the newly reorganised public chain.

T1 is no longer valid and the attacker already used the coins fraudulently

To summarize, these attacks are possible because the system allows to “overwrite” the current

node view of the blockchain history with the new one after a user accepted a specific transaction

(e.g. after the Exchange waited for the confirmation time). This obeys Satoshi's principles given in

the Bitcoin white paper and implemented by most of PoW cryptocurrencies. Block generation in

PoW consensus is a stochastic process and honest miners can generate blocks in parallel on the

same height (with probability depending on block generation time and network delays), for which

Satoshi Consensus has a simple method to adjudicate by ultimately defaulting to the chain with the

most accumulated work. Thus, pruning shorter branches with lower accumulated work has been

an efficient way to keep the linear sequence of blocks across these distributed systems.

Satoshi's white paper is based on the assumption that a majority of computational power is controlled by

honest nodes ("one-CPU-one-vote" principle), and within this assumption it is almost impossible to

create any reasonable length adversarial branch to implement the double spend attack. Conventional

heuristics have converged on the idea that it is su�cient to wait for several con�rmation blocks to get

very low probability of transaction cancellation.

Many things changed since publishing the Bitcoin white paper. Some of the most signi�cant changes

that jeopardize the longest chain rule, are the appearance of ASIC miners and other computation boost

techniques that completely break the "one-CPU-one-vote" principle. Many cryptocurrencies share the

same mining algorithm, but have extreme di�erences in hashrate, which allows for the computation of

one cryptocurrency mining pool to potentially be used to attack another chain.

Thus, we see that Satoshi's assumption about honest majority of computational power and the

impossibility of long adversarial branches may be broken in the modern environment, evidenced by the

latest 51% attacks on several cryptocurrencies. We need a more advanced and more comprehensive

system that satis�es modern conditions. The core PoW consensus requires corrections to provide secure

services, while still allowing the possibility of honest miners generating con�icting blocks, and legitimate

network delayed synchronization.

To achieve this goal we have identi�ed a modi�cation that signi�cantly increases resources needed for a

successful double spend attack (with no changes in honest hash rate) and shifts the cost of an attack to

become economically senseless. Moreover, the increase of resources needed to make a successful attack

will not require increased con�rmation adjustments by receiving parties, including exchanges.

THE DELAYED BLOCK SUBMISSION PENALTY APPROACH

Considering that private mining is the source of a double spending attack, to make it less effective we

introduce a penalty in the form of a block acceptance delay in relation to the amount of time the block

has been hidden from the public network. Time being measured in block intervals, not temporally via

timestamp.

For example, let’s assume to have the following block reception scenario:

NBi = Normal block

MBi = Malicious block

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Time

Figure 1

In the current system, blocks NB117, NB118, NB119, NB120 are not going to be mined because as soon

as the network received block MB119, the malicious chain becomes the active one and the network

will start mining from block MB119 abandoning the normal chain.

To prevent this, we introduce a fork acceptance delay related to the amount of time the fork has been

hidden from the public network. This delay represents the number of blocks for which the adoption of

the new parallel chain will be postponed. For an adversary it means that he will need to continue to

mine the malicious fork even after revealing it and until the moment when the delay is finished.

For example, let’s consider the following delay function DF. To define DF we first introduce BDi which

effectively represents block reception delay defined as a difference between current main chain

height and height of the received block (e.g. BDmb100=16, BDmb101=15, …, BDmb115=1, BDmb116=0,

BDmb117=-1, BDmb118=-1) or -1 in case the height of the received block is greater than the current main

chain height.

The delay function DF in this case for the whole forked chain will be represented as the SUM of

BDmb[i] values, where i represents indices of the blocks in the forked chain.

In the following example on Figure 2, the delay DF(MB100,...,MB119) = 16+15+14+13+12+....1+0-1-1-1 = 136

- 3 = 133 blocks. So the adversary will need to keep mining his fork after it became public for another

133 blocks until it will be accepted by other nodes.

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Pmb 133 - 132 - 131 - 130

Time

Figure 2

With such a delay function, if we assume for example to adopt a 20 block confirmation time, a 21 block

delay punishment would be 21 * (21 + 1) / 2 = 231, then the minimum number of blocks to be mined to

perform the attack would be 231 + 21 = 252 blocks

Please note that the confirmation time cannot start until a fork is in progress.

Proper tuning of the delay function will complicate an attack to the point of infeasibility since it will

require significantly more resources and will also give an additional opportunity to react on the fork

before its final adoption. The network will learn of the contentious fork and it will have to reduce the

full delay function (DF = 0) before the network defaults to the chain as truth. During this period,

network participants, such as exchanges, can freeze potentially fraudulent deposits until the issue has

been resolved, e.g. either the attempted fraudulent chain is abandoned, or it has successfully driven

DF � 0 through brute force. Honest miners continue to add to the active chain.

The delay function may also consider current mining difficulty (d) to provide better protection for coins

with low hashrate (e.g. increasing delay by a factor inversely proportional to the current difficulty).

Such an augmenting factor to DF’ = DF * f(d) can be ignored by setting f(d) = 1, but any sensible

functional form can be substituted in that has the properties of low impact for the range of honest

simultaneous block contention, then scales exponentially outside any reasonable range for which we

can assign dishonest motives.

Although the introduced feature complicates the whole specter of mining attacks (those executed by

mining private parallel forks), it does not prevent the network from converging in case of a natural split

(e.g. when some parts of the world are completely segregated from each other for some time). The

period of convergence will be longer than the pure longest chain rule, but honest miners will work on

converging chains by driving DF � 0.

Note that if an adversary mines his chain publicly the delay will not be applied, but in this case

everyone can see the fork and is able to take preventive measures (e.g. exchanges will increase

confirmation periods, etc.).

CONCLUSION

The operating environment for cryptocurrency systems has changed significantly from its origins in

2009 when mining power was far more decentralized. Satoshi Consensus, or the longest chain rule,

worked well to adjudicate natural chain forks by simply deferring to the chain with the most

accumulated work. Both technical limitations and economic incentives combined to render the

longest chain rule the dominant strategy for any miner, whether honest or nefarious. This is no longer

the case and public blockchains need to upgrade consensus rules to make it far more costly to

succeed with double spending.

This proposal gives one such method that has a simple form that is, itself, quite promising, but which

can be generalized with a scaling function to make it both technically infeasible and economically

disastrous to attempt double spending. The method permits adjudication of honest miners

simultaneously solving blocks, as well as legitimate network fractures that resolve over time. No

attack vector should ever be considered permanently neutralized, but this method certainly renders

one common method far less likely. Additional research into layered defense strategies, such as

introducing interval block notarization schemes on top of this penalty system could make the system

even more secure and should be investigated.

ACKNOWLEDGEMENTS

SPECIAL THANKS

to the team and community for contributing:

@cronic, Peter Stewart, @ultimateblockage,

Rosario Pabst, Rowan Stone, Gustavo Fialho and Vitalik Demin.

Creatives by Lucy Wang, Linda Baksija and Marko Orčić.

INTRODUCCIÓN

La regla de la cadena más larga o el Consenso de Satoshi, funcionó bien en el entorno

relativamente descentralizado en el que se introdujo en 2009. Desde entonces, los recursos

mineros se han estado concentrando, produciendo una disminución de costos de renta, de tal

manera que la estrategia inicial que había planteado Satoshi ya no es válida para todas las

cadenas de bloque de prueba de trabajo (PoW) que dependen de la regla de cadena más larga.

Como los eventos recientes han demostrado, en algunas circunstancias puede ser

económicamente factible lanzar un ataque del 51% contra las redes públicas operativas de

blockchain. Este documento propone un nuevo ajuste al Consenso de Satoshi que hace que sea

exponencialmente más costoso y por lo tanto menos probable, lanzar ataques para cualquier

sistema de criptomoneda minable de prueba de trabajo (PoW).

El método más común para realizar un ataque de doble gasto es el siguiente:

Ejecutar una transacción T1 que envía monedas desde la dirección A a una dirección de centro

cambiario en la actual cadena de bloques pública.

Minar en privado un bloque en una cadena bifurcada en paralelo a la pública que contiene una

transacción T2 que envía monedas de la dirección A a otra dirección.

Esperar a que T1 sea confirmado por el centro cambiario. Mientras se continua minando de

manera privada la cadena paralela a un ritmo más rápido que la cadena pública.

Cambiar las monedas confirmadas en el centro cambiario, luego retirar los fondos a la dirección

privada B

Transmitir o anunciar a la red la cadena privada que es más larga que la pública.

En este punto, la red adoptará la cadena privada de atacantes como la nueva cadena pública

(ya que es más larga). Los mineros comenzarán a minar en la cadena pública recientemente

reorganizada.

T1 ya no es válida y el atacante ya usó las monedas fraudulentamente

En resumen, estos ataques son posibles porque el sistema permite "sobrescribir" la vista actual del

historial de la cadena de bloques del nodo con una nueva cadena más larga, después de que se

haya aceptado una transacción específica (por ejemplo, después de que el centro cambiario

esperó el tiempo de confirmación). Esto obedece a los principios de Satoshi que estableció en el

libro blanco de Bitcoin e implementados por la mayoría de las criptomonedas de prueba de trabajo

(PoW). La generación de bloques en un consenso de prueba de trabajo (PoW) es un proceso

estocástico y los mineros que son honestos pueden también generar bloques en paralelo a la

misma altura de la otra cadena (dependiendo del tiempo de generación de bloques y retrasos de

red), para lo cual el consenso de Satoshi tiene un método simple para solucionar la presencia de

dos cadenas escogiendo a la cadena con el mayor trabajo acumulado. Por lo tanto, cortando

ramas de la cadena corta con menos trabajo acumulado. Esto ha sido una forma eficiente de

mantener una secuencia lineal de bloques en estos sistemas distribuidos.

El libro blanco de Satoshi se basa en la suposición de que la mayoría del poder de cómputo está

controlado por nodos que son honestos (el principio de "una CPU por cada voto"), dentro de esta

suposición es casi imposible crear una rama adversaria de longitud razonable para implementar el

ataque de doble gasto. El método heurístico convencional consiste en la idea de que es suficiente

esperar varios bloques de confirmación para obtener una probabilidad muy baja de cancelación

de la transacción.

Muchas cosas cambiaron desde la publicación del libro blanco de Bitcoin. Algunos de los cambios

más importantes que ponen en peligro la regla de la cadena más larga son la aparición de los

circuitos integrados ASIC y otras técnicas de cómputo que rompen por completo el principio de

"una CPU por cada voto". Muchas criptomonedas comparten el mismo algoritmo de minería, pero

tienen diferencias muy marcadas en el hashrate , lo que permite que el poder computacional de un

grupo de minería (Mining Pool) pueda ser utilizado para atacar otra cadena.

Por lo tanto, vemos que la suposiciones de Satoshi sobre la mayoría del poder computacional

honesto y la imposibilidad de que existan largas ramas adversarias ya no son validas en el entorno

actual, evidenciado por los últimos ataques del 51% en varias criptomonedas. Necesitamos un

sistema más avanzado y más completo que satisfaga los requerimientos y condiciones actuales.

El consenso de prueba de trabajo (PoW ) central requiere correcciones para proporcionar servicios

seguros, al mismo tiempo que permita la posibilidad de que mineros honestos generen bloques

conflictivos y legitimar la sincronización retrasada de la red.

Para lograr este objetivo, hemos identificado una área de oportunidad que aumentaría

significativamente los recursos necesarios para un ataque exitoso de doble gasto (sin cambios en

la hashrate de mineros honestos). Esta modificación cambiaría el costo de un ataque para que no

tenga sentido económico realizarlo. Además, el aumento de los recursos necesarios para realizar

un ataque exitoso causara que las partes receptoras y los centros cambiarios no tengan que

modificar sus ajustes de cantidad de confirmaciones para liberar una transacción.

EL ENFOQUE DE PENALIZACIÓN POR ENVÍO RETRASADO

Considerando que la minería privada es la fuente de un ataque de doble gasto, para hacerlo

menos efectivo, introducimos una penalización en forma de un retraso de aceptación de bloque en

relación con la cantidad de tiempo que el bloque ha estado oculto de la red pública. El tiempo se

mide en intervalos de bloques, no se medirá temporalmente con una estampa de tiempo.

Supongamos que se tiene el siguiente escenario de recepción de bloque en la cadena:

BNi = Bloque Normal

BMi = Bloque Malicioso

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Tiempo

Figura 1

En el sistema actual, los bloques BN117, BN118, BN119, BN120 no serán minados porque tan pronto

como la red recibió el bloque BM119, la cadena maliciosa se convierte en la activa y la red

comenzará a minar desde el bloque BM119 abandonando la cadena original.

Para evitar esto, presentamos un retraso de aceptación de una bifurcación de la cadena de bloque

actual, proporcional a la cantidad de tiempo que la bifurcación se haya ocultado de la red pública.

Este retraso representa el número de bloques para los cuales se pospondrá la adopción de la

nueva cadena. Para un atacante, significa que tendrá que seguir minando la bifurcación de la

cadena de bloques maliciosa incluso después de revelarlo hasta el momento en que el retraso

haya terminado.

Por ejemplo, consideremos la siguiente función de retraso FR. Para definir FR primero presentamos

el parámetro RBi que representa el retraso de recepción de bloque mediante una diferencia entre

la altura actual de la cadena principal y la altura del bloque recibido (Ejemplo: RBBM100 = 16,

RBBM101 = 15, ..., RBBM115 = 1, RBBM116= 0, RBBM117 = -1, RBBM118 = -1) o -1 en caso de que la altura del

bloque recibido sea mayor que la altura actual de la cadena principal.

La función de retraso FR en este caso para toda la cadena bifurcada se representará como la

SUMA de valores RBBMi, donde i representa los índices de los bloques en la cadena bifurcada.

En el siguiente ejemplo de la Figura 2, el valor de FR (MB100, ..., MB119) = 16 + 15 + 14 + 13 + 12 + ....

1 + 0-1-1-1 = 136 - 3 = 133 bloques. Por lo tanto, el atacante tendrá que seguir minando su bifurcación

después de que se haya hecho pública por otros 133 bloques para que pueda ser aceptada por

otros nodos como la cadena principal.

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Pmb 133 - 132 - 131 - 130

Tiempo

Figure 2.

Con la función de retraso presentado anteriormente, si suponemos, que se adoptara un tiempo de

confirmación de 20 bloques, un castigo de demora de 21 bloques sería 21 * (21 + 1) / 2 = 231, que

significa que el número mínimo de bloques que se tendrán que minar para poder realizar el ataque

serían 231 + 21 = 252 bloques.

Tenga en cuenta que el tiempo de confirmación no puede comenzar hasta que una bifurcación esté

en progreso.

El ajuste adecuado de la función de retardo complicará un ataque hasta el punto de que no sea

factible ya que requerirá una cantidad de recursos significativamente mayor y también dará una

oportunidad adicional de reaccionar en la bifurcación de la cadena de bloques antes de su

adopción final. La red se enterará sobre la bifurcación paralela y el atacante deberá seguir

minando hasta reducir la función de retardo completamente (DF = 0) antes de que la red adopte la

cadena paralela como la más larga. Durante este período, los participantes de la red, como los

centros cambiarios, pueden congelar depósitos potencialmente fraudulentos hasta que se

resuelva el problema. Supongamos que el intento de cadena fraudulenta se abandona, o se ha

conducido con éxito el tiempo de retraso (DF = 0) a través de la fuerza bruta. Los mineros honestos

continuarán agregando a la cadena activa mientras el tiempo de retraso se consume.

La función de retraso también puede considerar la dificultad actual de minería (d) para

proporcionar una mejor protección para las monedas con bajo índice de hashrate (por ejemplo, el

aumento de la función de retraso se vería afectada de manera inversamente proporcional a la

dificultad actual de minado). Tal factor de aumento se podría ver reflejado de tal manera: DF'= DF

* f (d) puede ignorarse estableciendo f (d) = 1, pero puede sustituirse acuerdo a las necesidades,

mismo que tiene las propiedades de bajo impacto para el rango de bifurcación paralela de bloque

honesta, también puede escalar exponencialmente fuera de cualquier rango razonable para los

mineros deshonestos.

Aunque la característica introducida complica todo el espectro de ataques de minería (los que

ejecutan minando bifurcaciones paralelas de manera privada), no impide que la red adopte una

nueva cadena de bloques más larga en caso de una división natural (por ejemplo, cuando en

algunas partes del mundo están completamente segregadas entre sí por algún tiempo

determinado). El período de adopción de una cadena más larga será más prolongado que la regla

del consenso de Satoshi, pero los mineros honestos trabajarán en la cadena paralela hasta

conducir a DF=0.

Tenga en cuenta que si un adversario mina su cadena públicamente, no se aplicará la demora, pero en

este caso todos pueden ver la bifurcación y tomar medidas preventivas (por ejemplo, los centros

cambiarios aumentarán los períodos de confirmación, etc.).

CONCLUSIÓN

El entorno operativo para las criptomonedas ha cambiado significativamente desde sus orígenes en 2009,

cuando la minería estaba mucho más descentralizada. El Consenso de Satoshi, o la regla de la cadena

más larga, funcionó bien para adjudicar las bifurcaciones de cadenas naturales al simplemente adoptar

la cadena con el mayor trabajo acumulado. Tanto las limitaciones técnicas como los incentivos

económicos se combinan para hacer que la cadena más larga gobierne la estrategia dominante para

cualquier minero, ya sea honesto o con malas intenciones. Este ya no es el caso y las cadenas de bloque

públicas necesitan actualizar las reglas de consenso para que sea mucho más costoso tener éxito con los

ataques de doble gasto.

Esta propuesta brinda uno de esos métodos que tiene una forma simple que, en sí misma, es bastante

prometedora, pero que se puede generalizar con una función de escalado para que sea técnicamente

inviable y económicamente desastroso para intentar el gasto doble. El método permite que los que minan

de manera honesta puedan resolver bloques de manera paralela, así como en el caso de las fracturas de

red legítimas que se resuelven con el tiempo. Ninguna estrategia de ataque debe considerarse

neutralizada permanentemente, pero este método ciertamente hace menos probable un método común

de ataque. La investigación adicional en estrategias de defensa en capas, como la introducción de

esquemas de notarización de bloque de intervalo en la parte superior de este sistema de penalización

podría hacer que el sistema sea aún más seguro y una investigación de implementación se debería de

llevar acabo.

6

Page 7: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

INTRODUCTION

The longest chain rule, or Satoshi Consensus, worked well in the relatively decentralized

environment in which it was introduced in 2009. Mining resources have since concentrated and

dropped in cost for lease, such that the original dominant strategy of playing by the rules no longer

holds for all proof-of-work (PoW) blockchains that rely on the longest chain rule. As recent events

have proven, in some circumstances it can be economically feasible to launch 51% attacks on

operational public blockchain networks. This paper proposes a novel adjustment to Satoshi

Consensus that makes it exponentially more costly, and hence unlikely, to launch such attacks for

any proof-of-work mineable cryptocurrency system.

The common method for performing a double spend attack is as such:

Execute a transaction T1 sending coins from address A to an exchange address on the current

public chain

Privately mine a block on a parallel forked chain containing a transaction T2 sending coins from

address A to another address

Wait for T1 to be confirmed by the exchange and in the meantime continue to mine privately the

parallel chain at a faster rate than the public chain

Trade the confirmed coins on the exchange, then withdraw funds to private address B

Broadcast to the network the private chain that is longer than the public one

at this point, the network will adopt the attackers private chain as the new public chain (as it is

longer) and miners will start mining on the newly reorganised public chain.

T1 is no longer valid and the attacker already used the coins fraudulently

To summarize, these attacks are possible because the system allows to “overwrite” the current

node view of the blockchain history with the new one after a user accepted a specific transaction

(e.g. after the Exchange waited for the confirmation time). This obeys Satoshi's principles given in

the Bitcoin white paper and implemented by most of PoW cryptocurrencies. Block generation in

PoW consensus is a stochastic process and honest miners can generate blocks in parallel on the

same height (with probability depending on block generation time and network delays), for which

Satoshi Consensus has a simple method to adjudicate by ultimately defaulting to the chain with the

most accumulated work. Thus, pruning shorter branches with lower accumulated work has been

an efficient way to keep the linear sequence of blocks across these distributed systems.

Satoshi's white paper is based on the assumption that a majority of computational power is controlled by

honest nodes ("one-CPU-one-vote" principle), and within this assumption it is almost impossible to

create any reasonable length adversarial branch to implement the double spend attack. Conventional

heuristics have converged on the idea that it is su�cient to wait for several con�rmation blocks to get

very low probability of transaction cancellation.

Many things changed since publishing the Bitcoin white paper. Some of the most signi�cant changes

that jeopardize the longest chain rule, are the appearance of ASIC miners and other computation boost

techniques that completely break the "one-CPU-one-vote" principle. Many cryptocurrencies share the

same mining algorithm, but have extreme di�erences in hashrate, which allows for the computation of

one cryptocurrency mining pool to potentially be used to attack another chain.

Thus, we see that Satoshi's assumption about honest majority of computational power and the

impossibility of long adversarial branches may be broken in the modern environment, evidenced by the

latest 51% attacks on several cryptocurrencies. We need a more advanced and more comprehensive

system that satis�es modern conditions. The core PoW consensus requires corrections to provide secure

services, while still allowing the possibility of honest miners generating con�icting blocks, and legitimate

network delayed synchronization.

To achieve this goal we have identi�ed a modi�cation that signi�cantly increases resources needed for a

successful double spend attack (with no changes in honest hash rate) and shifts the cost of an attack to

become economically senseless. Moreover, the increase of resources needed to make a successful attack

will not require increased con�rmation adjustments by receiving parties, including exchanges.

THE DELAYED BLOCK SUBMISSION PENALTY APPROACH

Considering that private mining is the source of a double spending attack, to make it less effective we

introduce a penalty in the form of a block acceptance delay in relation to the amount of time the block

has been hidden from the public network. Time being measured in block intervals, not temporally via

timestamp.

For example, let’s assume to have the following block reception scenario:

NBi = Normal block

MBi = Malicious block

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Time

Figure 1

In the current system, blocks NB117, NB118, NB119, NB120 are not going to be mined because as soon

as the network received block MB119, the malicious chain becomes the active one and the network

will start mining from block MB119 abandoning the normal chain.

To prevent this, we introduce a fork acceptance delay related to the amount of time the fork has been

hidden from the public network. This delay represents the number of blocks for which the adoption of

the new parallel chain will be postponed. For an adversary it means that he will need to continue to

mine the malicious fork even after revealing it and until the moment when the delay is finished.

For example, let’s consider the following delay function DF. To define DF we first introduce BDi which

effectively represents block reception delay defined as a difference between current main chain

height and height of the received block (e.g. BDmb100=16, BDmb101=15, …, BDmb115=1, BDmb116=0,

BDmb117=-1, BDmb118=-1) or -1 in case the height of the received block is greater than the current main

chain height.

The delay function DF in this case for the whole forked chain will be represented as the SUM of

BDmb[i] values, where i represents indices of the blocks in the forked chain.

In the following example on Figure 2, the delay DF(MB100,...,MB119) = 16+15+14+13+12+....1+0-1-1-1 = 136

- 3 = 133 blocks. So the adversary will need to keep mining his fork after it became public for another

133 blocks until it will be accepted by other nodes.

NB100 - NB101 - NB102 - NB103 - NB104 - [...] - NB116 - NB117 - NB118 - NB119 - NB120

MB100

MB101

MB102

[ ... ]

MB119 - MB120 - MB121 - MB122

Pmb 133 - 132 - 131 - 130

Time

Figure 2

With such a delay function, if we assume for example to adopt a 20 block confirmation time, a 21 block

delay punishment would be 21 * (21 + 1) / 2 = 231, then the minimum number of blocks to be mined to

perform the attack would be 231 + 21 = 252 blocks

Please note that the confirmation time cannot start until a fork is in progress.

Proper tuning of the delay function will complicate an attack to the point of infeasibility since it will

require significantly more resources and will also give an additional opportunity to react on the fork

before its final adoption. The network will learn of the contentious fork and it will have to reduce the

full delay function (DF = 0) before the network defaults to the chain as truth. During this period,

network participants, such as exchanges, can freeze potentially fraudulent deposits until the issue has

been resolved, e.g. either the attempted fraudulent chain is abandoned, or it has successfully driven

DF � 0 through brute force. Honest miners continue to add to the active chain.

The delay function may also consider current mining difficulty (d) to provide better protection for coins

with low hashrate (e.g. increasing delay by a factor inversely proportional to the current difficulty).

Such an augmenting factor to DF’ = DF * f(d) can be ignored by setting f(d) = 1, but any sensible

functional form can be substituted in that has the properties of low impact for the range of honest

simultaneous block contention, then scales exponentially outside any reasonable range for which we

can assign dishonest motives.

Although the introduced feature complicates the whole specter of mining attacks (those executed by

mining private parallel forks), it does not prevent the network from converging in case of a natural split

(e.g. when some parts of the world are completely segregated from each other for some time). The

period of convergence will be longer than the pure longest chain rule, but honest miners will work on

converging chains by driving DF � 0.

Note that if an adversary mines his chain publicly the delay will not be applied, but in this case

everyone can see the fork and is able to take preventive measures (e.g. exchanges will increase

confirmation periods, etc.).

CONCLUSION

The operating environment for cryptocurrency systems has changed significantly from its origins in

2009 when mining power was far more decentralized. Satoshi Consensus, or the longest chain rule,

worked well to adjudicate natural chain forks by simply deferring to the chain with the most

accumulated work. Both technical limitations and economic incentives combined to render the

longest chain rule the dominant strategy for any miner, whether honest or nefarious. This is no longer

the case and public blockchains need to upgrade consensus rules to make it far more costly to

succeed with double spending.

This proposal gives one such method that has a simple form that is, itself, quite promising, but which

can be generalized with a scaling function to make it both technically infeasible and economically

disastrous to attempt double spending. The method permits adjudication of honest miners

simultaneously solving blocks, as well as legitimate network fractures that resolve over time. No

attack vector should ever be considered permanently neutralized, but this method certainly renders

one common method far less likely. Additional research into layered defense strategies, such as

introducing interval block notarization schemes on top of this penalty system could make the system

even more secure and should be investigated.

ACKNOWLEDGEMENTS

SPECIAL THANKS

to the team and community for contributing:

@cronic, Peter Stewart, @ultimateblockage,

Rosario Pabst, Rowan Stone, Gustavo Fialho and Vitalik Demin.

Creatives by Lucy Wang, Linda Baksija and Marko Orčić.

INTRODUCCIÓN

La regla de la cadena más larga o el Consenso de Satoshi, funcionó bien en el entorno

relativamente descentralizado en el que se introdujo en 2009. Desde entonces, los recursos

mineros se han estado concentrando, produciendo una disminución de costos de renta, de tal

manera que la estrategia inicial que había planteado Satoshi ya no es válida para todas las

cadenas de bloque de prueba de trabajo (PoW) que dependen de la regla de cadena más larga.

Como los eventos recientes han demostrado, en algunas circunstancias puede ser

económicamente factible lanzar un ataque del 51% contra las redes públicas operativas de

blockchain. Este documento propone un nuevo ajuste al Consenso de Satoshi que hace que sea

exponencialmente más costoso y por lo tanto menos probable, lanzar ataques para cualquier

sistema de criptomoneda minable de prueba de trabajo (PoW).

El método más común para realizar un ataque de doble gasto es el siguiente:

Ejecutar una transacción T1 que envía monedas desde la dirección A a una dirección de centro

cambiario en la actual cadena de bloques pública.

Minar en privado un bloque en una cadena bifurcada en paralelo a la pública que contiene una

transacción T2 que envía monedas de la dirección A a otra dirección.

Esperar a que T1 sea confirmado por el centro cambiario. Mientras se continua minando de

manera privada la cadena paralela a un ritmo más rápido que la cadena pública.

Cambiar las monedas confirmadas en el centro cambiario, luego retirar los fondos a la dirección

privada B

Transmitir o anunciar a la red la cadena privada que es más larga que la pública.

En este punto, la red adoptará la cadena privada de atacantes como la nueva cadena pública

(ya que es más larga). Los mineros comenzarán a minar en la cadena pública recientemente

reorganizada.

T1 ya no es válida y el atacante ya usó las monedas fraudulentamente

En resumen, estos ataques son posibles porque el sistema permite "sobrescribir" la vista actual del

historial de la cadena de bloques del nodo con una nueva cadena más larga, después de que se

haya aceptado una transacción específica (por ejemplo, después de que el centro cambiario

esperó el tiempo de confirmación). Esto obedece a los principios de Satoshi que estableció en el

libro blanco de Bitcoin e implementados por la mayoría de las criptomonedas de prueba de trabajo

(PoW). La generación de bloques en un consenso de prueba de trabajo (PoW) es un proceso

estocástico y los mineros que son honestos pueden también generar bloques en paralelo a la

misma altura de la otra cadena (dependiendo del tiempo de generación de bloques y retrasos de

red), para lo cual el consenso de Satoshi tiene un método simple para solucionar la presencia de

dos cadenas escogiendo a la cadena con el mayor trabajo acumulado. Por lo tanto, cortando

ramas de la cadena corta con menos trabajo acumulado. Esto ha sido una forma eficiente de

mantener una secuencia lineal de bloques en estos sistemas distribuidos.

El libro blanco de Satoshi se basa en la suposición de que la mayoría del poder de cómputo está

controlado por nodos que son honestos (el principio de "una CPU por cada voto"), dentro de esta

suposición es casi imposible crear una rama adversaria de longitud razonable para implementar el

ataque de doble gasto. El método heurístico convencional consiste en la idea de que es suficiente

esperar varios bloques de confirmación para obtener una probabilidad muy baja de cancelación

de la transacción.

Muchas cosas cambiaron desde la publicación del libro blanco de Bitcoin. Algunos de los cambios

más importantes que ponen en peligro la regla de la cadena más larga son la aparición de los

circuitos integrados ASIC y otras técnicas de cómputo que rompen por completo el principio de

"una CPU por cada voto". Muchas criptomonedas comparten el mismo algoritmo de minería, pero

tienen diferencias muy marcadas en el hashrate , lo que permite que el poder computacional de un

grupo de minería (Mining Pool) pueda ser utilizado para atacar otra cadena.

Por lo tanto, vemos que la suposiciones de Satoshi sobre la mayoría del poder computacional

honesto y la imposibilidad de que existan largas ramas adversarias ya no son validas en el entorno

actual, evidenciado por los últimos ataques del 51% en varias criptomonedas. Necesitamos un

sistema más avanzado y más completo que satisfaga los requerimientos y condiciones actuales.

El consenso de prueba de trabajo (PoW ) central requiere correcciones para proporcionar servicios

seguros, al mismo tiempo que permita la posibilidad de que mineros honestos generen bloques

conflictivos y legitimar la sincronización retrasada de la red.

Para lograr este objetivo, hemos identificado una área de oportunidad que aumentaría

significativamente los recursos necesarios para un ataque exitoso de doble gasto (sin cambios en

la hashrate de mineros honestos). Esta modificación cambiaría el costo de un ataque para que no

tenga sentido económico realizarlo. Además, el aumento de los recursos necesarios para realizar

un ataque exitoso causara que las partes receptoras y los centros cambiarios no tengan que

modificar sus ajustes de cantidad de confirmaciones para liberar una transacción.

EL ENFOQUE DE PENALIZACIÓN POR ENVÍO RETRASADO

Considerando que la minería privada es la fuente de un ataque de doble gasto, para hacerlo

menos efectivo, introducimos una penalización en forma de un retraso de aceptación de bloque en

relación con la cantidad de tiempo que el bloque ha estado oculto de la red pública. El tiempo se

mide en intervalos de bloques, no se medirá temporalmente con una estampa de tiempo.

Supongamos que se tiene el siguiente escenario de recepción de bloque en la cadena:

BNi = Bloque Normal

BMi = Bloque Malicioso

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Tiempo

Figura 1

En el sistema actual, los bloques BN117, BN118, BN119, BN120 no serán minados porque tan pronto

como la red recibió el bloque BM119, la cadena maliciosa se convierte en la activa y la red

comenzará a minar desde el bloque BM119 abandonando la cadena original.

Para evitar esto, presentamos un retraso de aceptación de una bifurcación de la cadena de bloque

actual, proporcional a la cantidad de tiempo que la bifurcación se haya ocultado de la red pública.

Este retraso representa el número de bloques para los cuales se pospondrá la adopción de la

nueva cadena. Para un atacante, significa que tendrá que seguir minando la bifurcación de la

cadena de bloques maliciosa incluso después de revelarlo hasta el momento en que el retraso

haya terminado.

Por ejemplo, consideremos la siguiente función de retraso FR. Para definir FR primero presentamos

el parámetro RBi que representa el retraso de recepción de bloque mediante una diferencia entre

la altura actual de la cadena principal y la altura del bloque recibido (Ejemplo: RBBM100 = 16,

RBBM101 = 15, ..., RBBM115 = 1, RBBM116= 0, RBBM117 = -1, RBBM118 = -1) o -1 en caso de que la altura del

bloque recibido sea mayor que la altura actual de la cadena principal.

La función de retraso FR en este caso para toda la cadena bifurcada se representará como la

SUMA de valores RBBMi, donde i representa los índices de los bloques en la cadena bifurcada.

En el siguiente ejemplo de la Figura 2, el valor de FR (MB100, ..., MB119) = 16 + 15 + 14 + 13 + 12 + ....

1 + 0-1-1-1 = 136 - 3 = 133 bloques. Por lo tanto, el atacante tendrá que seguir minando su bifurcación

después de que se haya hecho pública por otros 133 bloques para que pueda ser aceptada por

otros nodos como la cadena principal.

BN100 - BN101 - BN102 - BN103 - BN104 - [...] - BN116 - BN117 - BN118 - BN119 - BN120

BM100

BM101

BM102

[ ... ]

BM119 - BM120 - BM121 - BM122

Pmb 133 - 132 - 131 - 130

Tiempo

Figure 2.

Con la función de retraso presentado anteriormente, si suponemos, que se adoptara un tiempo de

confirmación de 20 bloques, un castigo de demora de 21 bloques sería 21 * (21 + 1) / 2 = 231, que

significa que el número mínimo de bloques que se tendrán que minar para poder realizar el ataque

serían 231 + 21 = 252 bloques.

Tenga en cuenta que el tiempo de confirmación no puede comenzar hasta que una bifurcación esté

en progreso.

El ajuste adecuado de la función de retardo complicará un ataque hasta el punto de que no sea

factible ya que requerirá una cantidad de recursos significativamente mayor y también dará una

oportunidad adicional de reaccionar en la bifurcación de la cadena de bloques antes de su

adopción final. La red se enterará sobre la bifurcación paralela y el atacante deberá seguir

minando hasta reducir la función de retardo completamente (DF = 0) antes de que la red adopte la

cadena paralela como la más larga. Durante este período, los participantes de la red, como los

centros cambiarios, pueden congelar depósitos potencialmente fraudulentos hasta que se

resuelva el problema. Supongamos que el intento de cadena fraudulenta se abandona, o se ha

conducido con éxito el tiempo de retraso (DF = 0) a través de la fuerza bruta. Los mineros honestos

continuarán agregando a la cadena activa mientras el tiempo de retraso se consume.

La función de retraso también puede considerar la dificultad actual de minería (d) para

proporcionar una mejor protección para las monedas con bajo índice de hashrate (por ejemplo, el

aumento de la función de retraso se vería afectada de manera inversamente proporcional a la

dificultad actual de minado). Tal factor de aumento se podría ver reflejado de tal manera: DF'= DF

* f (d) puede ignorarse estableciendo f (d) = 1, pero puede sustituirse acuerdo a las necesidades,

mismo que tiene las propiedades de bajo impacto para el rango de bifurcación paralela de bloque

honesta, también puede escalar exponencialmente fuera de cualquier rango razonable para los

mineros deshonestos.

Aunque la característica introducida complica todo el espectro de ataques de minería (los que

ejecutan minando bifurcaciones paralelas de manera privada), no impide que la red adopte una

nueva cadena de bloques más larga en caso de una división natural (por ejemplo, cuando en

algunas partes del mundo están completamente segregadas entre sí por algún tiempo

determinado). El período de adopción de una cadena más larga será más prolongado que la regla

del consenso de Satoshi, pero los mineros honestos trabajarán en la cadena paralela hasta

conducir a DF=0.

Tenga en cuenta que si un adversario mina su cadena públicamente, no se aplicará la demora, pero en

este caso todos pueden ver la bifurcación y tomar medidas preventivas (por ejemplo, los centros

cambiarios aumentarán los períodos de confirmación, etc.).

CONCLUSIÓN

El entorno operativo para las criptomonedas ha cambiado significativamente desde sus orígenes en 2009,

cuando la minería estaba mucho más descentralizada. El Consenso de Satoshi, o la regla de la cadena

más larga, funcionó bien para adjudicar las bifurcaciones de cadenas naturales al simplemente adoptar

la cadena con el mayor trabajo acumulado. Tanto las limitaciones técnicas como los incentivos

económicos se combinan para hacer que la cadena más larga gobierne la estrategia dominante para

cualquier minero, ya sea honesto o con malas intenciones. Este ya no es el caso y las cadenas de bloque

públicas necesitan actualizar las reglas de consenso para que sea mucho más costoso tener éxito con los

ataques de doble gasto.

Esta propuesta brinda uno de esos métodos que tiene una forma simple que, en sí misma, es bastante

prometedora, pero que se puede generalizar con una función de escalado para que sea técnicamente

inviable y económicamente desastroso para intentar el gasto doble. El método permite que los que minan

de manera honesta puedan resolver bloques de manera paralela, así como en el caso de las fracturas de

red legítimas que se resuelven con el tiempo. Ninguna estrategia de ataque debe considerarse

neutralizada permanentemente, pero este método ciertamente hace menos probable un método común

de ataque. La investigación adicional en estrategias de defensa en capas, como la introducción de

esquemas de notarización de bloque de intervalo en la parte superior de este sistema de penalización

podría hacer que el sistema sea aún más seguro y una investigación de implementación se debería de

llevar acabo.

7

Page 8: Un Sistema de Penalización por Entrega tardía de bloque...Un Sistema de Penalización por Entrega tardía de bloque INTRODUCTION The longest chain rule, or Satoshi Consensus, worked

RECONOCIMIENTOS

AGRACEDIMIENTOS ESPECIALES A

el equipo y a la comunidad por contribuir:

@cronic, Peter Stewart, @ultimateblockage,

Rosario Pabst, Rowan Stone, Gustavo Fialho and Vitalik Demin.

Diseño: por Lucy Wang, Linda Baksija and Marko Orčić.

Traducido al Español por: @UANL91

8