Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
*
ETH Zurich, Suiza cdecker@tik.ee.ethz.ch
Resumen-Bitcoin es una moneda digital que a diferencia de las monedas tradicionales no depende de una tiene que llegar a un consenso sobre los saldos de las cuentas hace un seguimiento de
autoridad centralizada. En lugar de monedas de bits se basa en una red de voluntarios que implementan las transacciones y que son vlidos. Bitcoin logra este objetivo con garantas que se
colectivamente un libro de contabilidad replicado y verificar las transacciones. En este trabajo se analiza cmo Bitcoin
describe mejor como la coherencia de eventos: las diversas rplicas pueden ser
utiliza una transmisin de mltiples saltos para propagar las transacciones y los bloques a travs de la red para
temporalmente inconsis tienda, pero con el tiempo se sincroniza para reflejar un historial
actualizar las rplicas del libro mayor. A continuacin, utilizamos la informacin recopilada para verificar la conjetura de
que el retardo de propagacin en la red es la causa principal de horquillas blockchain. Blockchain horquillas deben de transacciones comn.
evitarse ya que son sintomticos de inconsistencias entre las rplicas en la red. A continuacin, muestran lo que puede
lograrse presionando el protocolo actual a su lmite con la modificacin unilateral de la conducta del cliente. A medida que las transacciones se validan con los estados de las rplicas, cualquier
inconsistencia introduce incertidumbre sobre la validez de una determinada transaccin.
Por otra parte, una inconsistencia puede jeopar Dize la seguridad del propio consenso.
Esto puede facilitar un atacante que intenta reescribir la historia de la transaccin.
En este trabajo analizamos Bitcoin de una perspec tiva de redes, es decir, cmo se
I. INTRODUCCIN difunde o se propagan en la red Bitcoin informacin, identificamos los puntos dbiles
Bitcoin es la primera tem sys moneda global verdaderamente descentralizado. Al igual clave, as como los problemas sulting re. En particular, se analiza el mecanismo de
que cualquier otra moneda, su principal objetivo es facilitar el intercambio de bienes y sincronizacin que falla para sincronizar la informacin almacenada en el libro mayor con
servicios, ofreciendo una buena comnmente aceptada. A diferencia de las monedas una probabilidad no despreciable. Este problema no slo provoca una inconsistencia
tradicionales Sin embargo, no es emitida por un estado o incluso una sola autoridad. prolongado que pasa desapercibido por un gran nmero de nodos, pero tambin debilita
las defensas del sistema contra los atacantes. entonces Proponemos algunos cambios
Desde su creacin a finales de 2008, Bitcoin ha disfrutado de un rpido crecimiento, en el protocolo actual que, aunque no una solucin a los problemas intrnsecos del
tanto en valor como en el nmero de transacciones. Su xito se debe principalmente al uso modelo de comunicacin utilizado por Bitcoin, puede mitigarlos.
innovador de una red peer-to-peer para poner en prctica todos los aspectos del ciclo de
vida de un monedas, desde su creacin hasta su transferencia entre los usuarios. Esta es la
funda mentales diferencia de investigaciones anteriores, que se concentr en los sistemas
que se basan ya sea en un emisor centralizado [5] la construccin, [16],
II. BITCOlN
En esta seccin se da una visin general sobre Bitcoin, aadiendo los detalles que
[18] o la creacin de crdito inter-usuario [9]. Estos sistemas requeran que los
sern necesarios ms adelante en este documento. Dependiendo del contexto, el
usuarios confan en el emisor original, que todava se utiliza para transacciones finalmente
nombre de Bitcoin puede referirse a cualquiera de las siguientes tres partes del
claros.
ecosistema Bitcoin:
Bitcoin menudo ha sido comparado con dinero en efectivo, las transacciones son casi
instantnea y no es reembolsable. Sin embargo Bitcoin va ms all del alcance de dinero en
Bitcoin, el sistema: el protocolo abstracto primero introducido por Nakamoto en la
efectivo, lo que permite transacciones verdaderamente globales, procesados en la misma publicacin original [14];
velocidad que las locales. Ofrece un historial de transacciones pblica e introduce muchos usos bitcoins o BTC, la unidad monetaria;
nuevos e innovadores, tales como propiedades inteligentes, micropagos, contratos y operaciones bitcoind, la implementacin de referencia. Escrito por
de depsito en garanta para mediation.i controversia Nakamoto como un concepto de prueba de implementacin,
bitcoind sigue siendo el cliente Bitcoin ms utilizado. En este trabajo nos
centramos en el sistema y su protocolo, en particular, sobre cmo la informacin se
Bitcoin est creciendo lentamente a convertirse en un posible carcter subsidiario con
el dlar estadounidense o el euro a medida que ms y ms empresas comienzan bitcoins difunde en la red. En Bitcoin se difunden dos tipos distintos de informacin:
aceptar para sus productos y servicios. El hecho de que Bitcoin es todava alrededor
indica que los principios subyacentes son slidos. Sin embargo, hay un cierto margen de actas y bloques. Las transacciones son las primitivas que permiten la transferencia de
mejora. valor, mientras que los bloques se utilizan para syn estado chronize en todos los nodos
en la red.
El principal problema Bitcoin propone resolver es el seguimiento distribuido y A diferencia de las monedas tradicionales, como el dlar estadounidense o el euro,
validacin de transacciones. Para esto, la red Bitcoin no depende de una autoridad centralizada para controlar el suministro, la
distribucin y la verificacin de la validez de las transacciones. Bitcoin se basa en una red
yo Ver https: llen.bitcoin.itlwikilContracts de voluntarios, a
entradas salidas veces. Esto se llama una doble gastan ing ataque.
Figura 1. La primera F4184F transaccin de bienes. Se afirma que la salida 50 bitcoins ataques dobles de gastos tienen un impacto directo sobre la consistencia de las
de transaccin 0437CD7 y crea dos salidas de 10 y 40 bitcoins respectivamente. Esas salidas son luego reivindicados por las transacciones
rplicas del libro mayor. Durante un doble gasto, ya sea intencional o por error, dos o
EA44E9 y A16F3CE.
ms transacciones intentan reclamar simultneamente la misma salida. El verdadero
equivalente en el mundo de los ataques dobles gasto sera un usuario que presenta
mltiples transacciones a su banco, el gasto de los saldo disponible en mltiples
colectivamente implementar un replicado libro mayor. El libro mayor seguimiento del saldo ocasiones. Si bien en este caso el doble intento de gasto sera reconocido por el banco y
de todas las cuentas en el sistema. Cada nodo mantiene una rplica completa del libro
no dara lugar a una transferencia, en Bitcoin esta contradiccin es ms difcil de
mayor. Es crucial para las rplicas de la balanza de estar en un estado consistente a travs
resolver. Un nodo que recibe la primera transaccin se verificarla y comprometerse a su
de todos los nodos en todo momento como la validez de las transacciones se verifica contra
rplica libro mayor. Cuando el nodo ms tarde recibe las otras transacciones, falla la
ellos.
validacin como la salida ya se ha gastado. Ya que no hay garanta de que todos los
A. Actas
nodos reciben las transacciones en conflicto en el mismo orden,
En lugar de la suma del saldo de cada cuenta, las pistas del libro mayor salidas que A fin de que las rplicas del libro mayor de mantener la coherencia de un orden comn
transfiere los bitcoins a la cuenta corriente alterna. Una salida es una tupla de un valor sobre las transacciones tiene que ser acordado entre los nodos. Estando de acuerdo en un
numrico en bitcoins y una condicin para reclamar o pasar esa salida. Por lo tanto, el orden comn de transacciones en un sistema distribuido no es trivial. Bitcoin resuelve este
saldo de una cuenta es la suma de los valores numricos de todas las salidas no problema al cometer tentativamente transacciones y luego la sincronizacin a intervalos
utilizados de esa cuenta. regulares por radiodifusin una bloquear creado por uno de los nodos. Un bloque segundo contiene
el conjunto de transacciones Tuberculosis
Las transacciones se identifican por el hash de su representacin serializada
(mensaje TX). Una transaccin afirma algunas salidas, proporcionando una prueba de que el nodo que cre el bloque se ha comprometido desde el bloque anterior. El bloque
propiedad. Las referencias a las salidas reivindicados junto con las pruebas de la Forma se distribuye a todos los nodos en la red y cada nodo que recibe rodar hacia atrs las
propiedad de lo que se llama una entrada a la transaccin. La transaccin puede transacciones tentativamente cometidos desde el ltimo bloque y aplicar las operaciones
entonces especificar una o ms nuevas salidas como destino. del bloque actual.
Las salidas son la unidad fundamental de informacin que se realiza un seguimiento en En este punto, todos los nodos han puesto de acuerdo sobre la validez de todas las
el libro mayor y su estado tiene que ser consistente a travs de todas las rplicas. Para que transacciones en el bloque. Las transacciones que se conunitted como parte del bloque
una transaccin sea vlida los siguientes criterios deben ser cumplidos por las salidas que estn confirmados y no tienen que volver a aplicar. Las transacciones que se han
dicen y creen: retrotrado de entonces sern validados de nuevo y volver a aplicar en la parte superior
Una salida puede ser reclamado en ms de una vez; del nuevo estado base. Transacciones que son ahora vlida porque entran en conflicto
Nuevas salidas se crean nicamente como resultado de una transaccin; con las transacciones confirmadas como parte del bloque se descartan.
La suma de los valores de las salidas reivindicados tiene que ser mayor o igual
que la suma de los valores de las salidas recin asignados. El nodo que cre el bloque efectivamente impone su punto de vista de los cambios
desde el bloque anterior. Sin embargo, las decisiones del creador de bloque son
A medida que las transacciones se transmiten a travs de la red el estado de los limitados. El nodo no puede falsificar cualquier transaccin, siempre que el sistema de
cambios en el libro mayor rplicas. Cuando un nodo recibe una nueva transaccin, se cifrado de clave pblica Iprivate subyacente es seguro. El creador de bloque slo se
verifica y se comprometi a la rplica local. Con el tiempo los diferentes rplicas del libro puede decidir en qu transacciones de rdenes llegaron y si se incluyen las
Para determinar qu nodo puede imponer su vista los nodos intento de encontrar una
2Bitcoin utiliza actualmente ECDSA para las firmas.
3El mtodo descrito para enviar bitcoins a una cuenta y reclamar al proporcionarles una firma es slo uno de los posibles escenarios.
solucin a un prueba de trabajo [7] con una probabilidad dada de xito. El trabajo de prueba
Limitamos la descripcin de este mtodo, ya que es el mtodo ms comnmente utilizado. de consiste en encontrar una cadena de bytes, llamado mientras tanto, que combinado con la
cabecera del bloque
2
Conferencia Internacional IEEE de 13 de Computacin Peer-to-Peer
resultados en un hash 1-lb con un nmero dado de los principales bits de cero, o objetivo. Como h = HHead. Esta situacin se denomina tenedor blockchain. Durante un tenedor
hashes criptogrficos son funciones de un solo sentido, la bsqueda de un nonce este tipo blockchain los nodos de la red no estn de acuerdo sobre cul de los bloques en bh es la
slo puede ser realizado por calcular realmente el hash del bloque para todos los posibles cabeza blockchain actual.
valores de uso nico hasta que se encuentre una solucin vlida. Por tanto, es difcil Dos bloques b, bl mi bh estn garantizados para estar en desacuerdo sobre el estado
encontrar una entrada que produce una solucin, pero recta hacia adelante para verificarlo. actual de la balanza, ya que ambos presentan una transaccin recompensa. Por lo tanto,
El valor de uso nico es parte del bloque para que nodos receptores que pueden verificar que un tenedor blockchain implica que el sistema ya no es consistente.
el creador resolvi el comprobante de trabajo. El hash de 1 libra tambin se utiliza como la
identidad del bloque. El objetivo se determina a travs de consenso por todos los nodos con Cuando un nodo, cuya cabeza blockchain bh es a la altura marido,
el fin de lograr un promedio de un resultado cada 10 minutos en toda la red y se ajusta cada recibe un bloque bh, para la altura hi> h que conmuta su cabeza blockchain a este
2016 bloques, que debe ocurrir una vez cada 14 das a la espera. bloque. El nuevo bloque bh' puede ser o bien en la misma rama como bh, es decir, bh es
un antepasado de bh" o en otra rama.
Los nodos que intentan encontrar una solucin a la prueba de trabajo se conocen mineros. debe bloquear bh estar en la misma rama que la cabeza blockchain recin
Para incentivar mineros, el nodo de la bsqueda de un bloque recibe una recompensa en descubierto bh' recuperar todos los bloques intermedios en la rama y aplicar sus
forma de bitcoins de nuevo cuo, cambios de forma incremental. Por otra parte, si bh, ser parte de otra rama, es decir, bh no
es decir, puede incluir una transaccin que no tiene entradas, pero puede especificar es un antepasado de bh"
salidas para un nmero predeterminado de monedas en el bloque. Esta transaccin a continuacin, que comparten un C Olmn el ancestro. Ya que bh,
recompensa slo es vlido si aparece en el bloque y es la nica excepcin a la regla de est en una cadena ms larga que bh Se convierte en el nuevo jefe blockchain, por lo
que la suma de los resultados de una transaccin tiene que ser menor o igual a la suma tanto, el nodo tiene que revertir todos los cambios hasta el antepasado comn y aplicar
de las entradas de la transaccin. los cambios en la rama de bh'.
Un tenedor blockchain puede prolongarse por las particiones de la red para encontrar
DO. Blockchain ms bloques Bh + l, Bh + 2,. . . sobre la base de sus respectivas cabezas blockchain.
Eventualmente una rama ser ms larga que las otras ramas, y las particiones que no
Hasta este punto, los bloques no proporcionan ninguna nizacin sincro aadido en la
adoptaron esta rama como la de ellos cambiar a esta rama. En este punto el tenedor
parte superior de las transacciones individuales. Esto cambia cuando los bloques estn
blockchain se resuelve y las rplicas del libro mayor son consistentes hasta la cabeza
encadenados juntos, creando un orden cronolgico sobre los bloques y por lo tanto sobre
blockchain. Los bloques descartados por la resolucin blockchain se denominan bloques
las transacciones contenidas dentro de ellos.
hurfanos.
Los bloques se organizan en un rbol dirigido. Cada bloque contiene una referencia a
un bloque previamente encontrado. El bloque segundo
referenciado por un bloque licenciado en Derecho se llama su padre. El cierre transitivo de Bitcoin no c Olmn su una transaccin definitivamente. Cada transaccin puede ser
esta relacin da su antepasados. El bloque de raz en el rbol es el bloque gnesis, la invalidado si se crea una cadena ms larga que se inici por debajo del bloque que
cual est codificada en los clientes. Este bloque es un antepasado de todos los bloques, incluye la transaccin. Si una sola entidad podra controlar una mayora de la potencia de
por definicin. clculo en la red, y por lo tanto ser capaz de encontrar los bloques ms rpido que el
los blockchain se define como la trayectoria ms larga de cualquier bloque al bloque de resto de la red combinada, podra revertir cualquier transaccin. Si un atacante intenta
gnesis. La distancia entre un bloque segundo y la gnesis se refiere como su altura del revertir una transaccin que fue incluida en el bloque bh se creara una nueva transaccin
bloque media pensin. El bloque de gnesis que entra en conflicto con la transaccin original e incluirlo en un bloque bh' con hi < marido.
9 por lo tanto tiene altura hg = O. El bloque con la altura mxima, El atacante podra entonces proceder a crear bloques en la parte superior de bh' hasta
es decir, el bloque que est ms lejos del bloque gnesis se denomina cabeza que esta nueva cadena se apodera del blockchain original y se convierte as en el nuevo
blockchain, con la altura HHead. Utilizamos la notacin bh para hacer referencia al blockchain.
matriz. El encadenamiento se utiliza para asignar un orden cronolgico a las transacciones: que las transacciones no estn comprometidos definitivamente. El estrecho acoplamiento
transacciones en bloques de altura inferiores han sido verificadas antes de las operaciones entre los bloques y la validez de una transaccin no slo se ralentiza el tiempo
en los bloques superiores. confinnation de una transaccin sino que tambin limita la confirmacin de ser una
declaracin acerca de la validez probabilstica.
Como slo los bloques que aparecen en el blockchain sern recompensados con
monedas de nuevo cuo que son aceptados por otros usuarios, los mineros siempre
tratar de encontrar un bloque que se basa en la cabeza blockchain actual. Sobre la base III. INFORMACIN DE PROPAGACIN
de un bloque anterior requerira la rama resultante para convertirse ms larga que la
La red Bitcoin es una red de nodos homogneos. No hay funciones de coordinacin y
rama ms larga actualmente, es decir, la blockchain, ser recompensados.
cada nodo mantiene una rplica pleta com de toda la informacin necesaria para verificar
la validez de las transacciones de entrada. Cada nodo verifica la informacin que recibe
RE. horquillas Blockchain de otros nodos de forma independiente y slo hay confianza mnima entre los nodos.
De la definicin de blockchain sigue directamente que no puede haber mltiples
cabezas a la vez, es decir, cuando IBhl> 1 con
3
Conferencia Internacional IEEE de 13 de Computacin Peer-to-Peer
A. Topologa de la red
Por construccin los nodos en la red forman un grafo aleatorio. Cuando un nodo se F verificacin nodo A
une a la red de consulta a un nmero de servidores DNS. Estos servidores DNS estn
dirigidos por voluntarios y devuelven un conjunto aleatorio de nodos de arranque que
estn participando actualmente en la red. Una vez conectado, el nodo que se une
aprende sobre otros nodos pidiendo a sus vecinos por las direcciones conocidas y
escuchar anuncios espontneas de nuevas direcciones. No hay manera explcita a salir
de la red. Las direcciones de los nodos que dejaron la red persisten durante varias horas
antes de que los otros nodos de ellos purgan de sus direcciones conocidas establecidas.
En el momento de la escritura se anunciaban aproximadamente 16.000 direcciones
nicas, de las cuales aproximadamente 3500 eran accesibles a la vez.
nodo B
Fig. 2. Los mensajes intercambiados con el fin de reenviar un mensaje de bloque de un solo salto desde el Nodo A al Nodo B.
Cada nodo intenta mantener un nmero mnimo de ciones CONNEC pag a otros nodos
abrir en todo momento. En caso de que el nmero de conexiones abiertas por debajo pag el
el bloque o transaccin se realiza a travs de bloque individual o mensajes TX. La figura
nodo seleccionar al azar una direccin de su conjunto de direcciones conocidas y tratar
2 visualiza el flujo de protocolo para un solo salto en la emisin. El nodo A recibe un
de establecer una conexin. Por otro lado, la conexin entrante no estn cerrados si
bloque, lo verifica y anuncia a sus vecinos. Nodo B recibe el mensaje y inv, ya que no
resultan en el nmero de conexiones abiertas a estar por encima del tamao de la piscina pag.
sabe nada sobre el bloque, que emitir un mensaje leedato. Al recibir el mensaje
Por consiguiente, el nmero total de conexiones abiertas es probable que sea mayor para
GetData, el nodo A entregar el bloque al Nodo B.
nodos que tambin aceptan conexiones entrantes.
direcciones de red o un servidor de seguridad, el nmero de conexiones simultneas retardo de propagacin. El retardo de propagacin es la combinacin de tiempo de
Particiones en el grfico de conexin no se detectan de forma activa, y en caso de incluye un anuncio en la forma de un mensaje de inv, una solicitud de la parte receptora y
producirse las particiones continuarn operando de forma independiente. Si bien esto es una entrega. Mientras que el INV y los mensajes GetData son relativamente pequeas en
ciertamente deseable desde un punto de vista liveness, el estado rastreado en las tamao (6 1B en la mayora de los casos, como emisiones inmediatos slo contienen un
particiones se divergen con el tiempo, creando dos historiales de transacciones paralelas solo bloque o transaccin que se anunci), el mensaje de bloqueo puede ser muy grande
y posiblemente incompatibles. Por lo tanto, es de suma importancia que se detectan - hasta 500 KB en el momento de la escritura. Antes de que el bloque se anunci a los
particiones de red. Dicha deteccin se puede hacer mediante el seguimiento de la vecinos de un nodo, se verifica. La verificacin de un bloque incluye la verificacin de
potencia de clculo agregado observado en la red. Un rpido descenso de la tasa de cada transaccin en el bloque. Verificacin de transaccin a su vez requiere un acceso
hallazgo de bloque podra indicar que se ha producido una particin. aleatorio a los datos almacenados en los discos.
B. Mtodo de Propagacin Dejar ti, j ser la diferencia de tiempo entre la primera ment anunciar por el origen a la
Para el propsito de actualizar y sincronizar las rplicas del libro mayor nica red y el tiempo en el que el nodo j recibe el artculo yo. Si el nodo 0 es el origen del dato
transaccin ( tx) y el bloque ( bloquear) los mensajes son relevantes. Estos mensajes son
mucho ms comunes que cualquier otro mensaje enviado en la red y pueden crecer yo, es decir, ya sea el buscador del bloque o el nodo que cre la transaccin, entonces TI,
hasta un tamao considerable. Con el fin de evitar el envo de mensajes de o = O.
transacciones y bloquear a los nodos que ya los reciben de otros nodos, no se desvan Los tiempos ti, j en la que los nodos aprender acerca de la existencia de un elemento
directamente. En lugar de ello su disponibilidad es anunciado a los vecinos mediante el de datos siga un comportamiento exponencial doble. Similar a rumor aleatorio difusin
envo de una inv mensaje una vez que la transaccin o bloque ha sido completamente [12], la propagacin de un elemento de datos se puede dividir en dos fases: una fase de
verificado. El mensaje inv contiene un conjunto de valores hash de transaccin y los crecimiento exponencial inicial en la que la mayora de los nodos que reciben mensajes
valores hash de bloques que han sido recibidos por el remitente y ahora estn inv solicitar el correspondiente elemento de datos, ya que no tienen todava , y una fase
disponibles para ser solicitado. Un nodo, que recibe un mensaje de inv para una de reduccin exponencial en la que la mayora de los nodos de recepcin un anuncio ya
transaccin o un bloque que no tiene todava localmente, emitir una obtener datos mensaje tienen el elemento de datos correspondiente.
al remitente del mensaje inv que contiene los valores hash de la informacin que
necesita. La transferencia real de
Para medir el retardo de propagacin se implement el protocolo de red bitcoin y
conectado a una muestra grande de
4
Conferencia Internacional IEEE de 13 de Computacin Peer-to-Peer
"
Iji 1.0
0.5
Fig. 3. El histograma normalizado de veces desde el primer anuncio bloque con curva exponencial equipada. cuesta Fig. 4. retardo para el 50, 75 y 90 percentil. La trama se centra en la ordenada en el rango inferior para mostrar el comportamiento
los nodos en la red. Nuestra aplicacin se comporta exactamente como un nodo nonnal causado por el retardo de ida y vuelta, es decir, el hecho de que incluso los mensajes
con una advertencia: no transmitir mensajes inv, transacciones o bloques. Realiza un pequeos se anuncian a travs de un mensaje de inv y luego recuperan a travs de un
seguimiento de cmo las transacciones y los bloques se propagan a travs de la red mensaje GetData. El retardo de ida y vuelta es dominante para las transacciones como el
mediante la escucha para el anuncio de su disponibilidad en forma de mensajes inv. Una 96% de todas las transacciones son ms pequeos que LKB. Para bloques, cuyo tamao
vez que el nodo de medicin recibe un mensaje de inv contiene la referencia a un bloque es ms grande que 20kB, cada kilobytes de tamao tiene un costo adicional de 80 ms de
sabemos que el nodo que envi el anuncio ha recibido y verificado el bloque. retardo hasta que la mayora sabe sobre el bloque. Por tanto, sera sensato para reenviar
transacciones directamente, y evitando as la sobrecarga de la ida y vuelta aadido. Sin
embargo, el mismo no puede decirse de los bloques en los que la sobrecarga no
contribuye tanto a la hora de difundir general.
Hay una fuerte correlacin entre el tamao de un mensaje y el retardo de propagacin h + 1. La bsqueda de un nuevo bloque bh + l introduce una nueva particin
en la red. los costo de retardo Ph + l, b que contiene los nodos que creen que este bloque a la cabeza, es decir, es el
se define como el retardo de tiempo de cada kilobyte provoca a la difusin de una primer bloque para la altura h + 1 ellos recibieron. Si no se encuentra ningn otro bloque,
transaccin o bloque. Observe que el costo es una combinacin de ambos verificacin y a continuacin, los nodos adyacentes al corte entre ph y Ph + l, b salir ph y unirse Ph +
transmisin en tiempo. Figura 4 parcelas los costes para el 50, 75 y 90 percentil para 1, b hasta
varios tamaos. Para tamaos ms grandes que 20kB el costo se puede decir que sea ph est vaco y la red como un todo procede con la nueva altura blockchain h + 1.
constante, mientras que para tamaos pequeos hay una sobrecarga considerable. La
sobrecarga para los pequeos tamaos es Por otro lado, en caso de otro bloque b + l para la altura
h + 1 ser encontrado por un nodo en ph, de nuevo introduce una nueva
5
Conferencia Internacional IEEE de 13 de Computacin Peer-to-Peer
y Ph + l, b' simultneamente hasta ph est vaca, y todos los nodos estn en una de las
particiones con la altura h + 1.
10
Slo los nodos adyacentes al corte entre Ph + l, b y Ph + l, b'
sabr tanto b y b' y por lo tanto capaz de detectar el tenedor blockchain resultante. Los
nodos que se encuentran en la particin
Ph + 1, b, y no adyacente a Ph + 1, b" slo s B y ser completamente ajeno a la
existencia de un bloque en conflicto. Una particin Ph + l, b potencialmente podra
contener solamente un nico nodo, en el caso de que los vecinos del nodo ya saben un
bloque en conflicto y ilmnediately detener la propagacin de b.
Lo anterior tambin se aplica para las transacciones que se estn propagando. Si dos
transacciones que intenten pasar la misma salida se propagan en la red slo la primera
Blockchain Altura
transaccin de un nodo recibe ser considerada vlida, la segunda transaccin no ser
vlida de acuerdo al estado de ese nodo y por tanto no ser anunciado a sus vecinos.
Higo. S. Histograma de horquillas blockchain de 10'000 parrilla de salida a la altura de 180'000, observ durante su participacin en la red.
IV. BLOCKCHAIN BIFURCACIONES conflicto se propaga en la red. Reivindicamos que se bifurca blockchain son causadas
por el retardo de propagacin de bloque en la red.
En esta seccin nos centramos en la propagacin de bloque y las horquillas blockchain
que se producen en la red. Se demuestra que los tenedores blockchain son causadas por el
1) Probabilidad de encontrar un bloque: El protocolo bitcoin ajusta la dificultad del
tiempo de propagacin de largo por la presentacin de un modelo que coincida con la tasa
trabajo de prueba de necesario para encontrar un bloque de manera que la espera a una
observada blockchain tenedor.
cuadra se encuentra cada 10
minutos.
A. La observacin de las horquillas Blockchain Si xb es la variable aleatoria de la diferencia de tiempo en segundos entre un bloque
siendo encontrado y su predecesor siendo encontrado, entonces la probabilidad de un
Algunos tenedores blockchain pueden ser observados por los participantes en la red
bloque de ser encontrado por la red como un todo, en cualquier segundo dado es
y la recepcin de los dos bloques en conflicto. La observacin de todas las horquillas
blockchain sin embargo es difcil. Si un nodo detecta que una llamada entrante conflictos
de bloque con el bloque que cree que es la cabeza de la cadena, entonces no va a
propagar el bloque ms lejos.
Pb = Pr [Xb <t + llXb:? T] 1/600 (1)
Recordemos que las particiones en un tenedor blockchain pueden tener el tamao 2) La parte de la red que podra encontrar un bloque en conflicto:
1. Como consecuencia directa, la presentacin de informes fielmente todos tenedor Un tenedor blockchain se produce si, durante la propagacin de un bloque
blockchain requerira estar conectado a cada nodo en la red. Debido a algunos nodos no b, se encuentra un bloque en conflicto b'. Dicho bloque B' slo se puede encontrar por la
ser alcanzable, ya sea porque estn detrs de un cortafuegos o traduccin de parte de la red que todava no sabe sobre b.
direcciones de red, slo una aproximacin del nmero real de horquillas blockchain se
puede dar. Dejar TJ ser el tiempo en segundos en el que el nodo j aprende acerca de la
existencia de B ya que se ha encontrado. Deja el Ij (t) ser la funcin de indicador de si el
Utilizando la aplicacin de la Seccin III se recogieron los bloques que se han nodo j sabe sobre B en el momento
propagado en la red entre t. Dejar Eso) ser la funcin indicadora que cuenta el nmero de
6
Conferencia Internacional IEEE de 13 de Computacin Peer-to-Peer
nodos informadas, es decir, los nodos que han recibido y el bloque verificados segundo, en el momento t.
0,0016
{o tj> t Ij
(t) = 1 TJ t
I (t) = L Ij (t)
JEV
Mediante la extraccin de las marcas de tiempo de los bloques a la altura del 180'000 a
travs de 190'000 obtenemos la distribucin que se muestra en la figura 6. Mediante el ajuste
de la distribucin observada a la distribucin exponencial nos encontramos con un valor de, \
DO. Mediciones
= 0.001578 y por lo tanto un tiempo esperado entre dos bloques de 1 /, \ = 633,68
Para validar el modelo se compara la probabilidad resultante de un tenedor blockchain
con la tasa observada de horquillas blockchain.
segundos. Mediante el ajuste de la densidad de probabilidad del tiempo entre primeros
anuncios partir de las mediciones nos encontramos con un valor
1) Probabilidad de encontrar un bloque: Cada bloque incluye una marca de tiempo de la
,\ = 0.001576 lo que resulta en un tiempo esperado entre dos bloques de 1 /, \ = 634.17.
vez que se encontr el bloque. A medida que los nodos no se sincronizan los relojes, sino
Las dos aproximaciones, \ son consistentes, pero ambos son ligeramente por encima del
que muestrean la hora actual de sus vecinos, hay un desplazamiento de reloj no trivial de las
valor objetivo de
marcas de tiempo.
600 segundos. La diferencia es ms probable debido a una disminucin de la potencia
En algunos casos, el desplazamiento de reloj es bastante pronunciada, pro ducing hasta de clculo en el network.4
constelaciones imposibles. Por ejemplo el bloque a la altura de 209.873 en el blockchain
2) Bloquear la propagacin en la red: Debido a la cin Normaliza el histograma de la
tiene una marca de tiempo de 22: 10: 13 mientras que el siguiente bloque a la altura de
figura 3 tambin representa la funcin de densidad de probabilidad (PDF) de las variables
209.874 tiene una marca de tiempo para 22:08:44. Puesto que la ltima incluye el hash de la
aleatorias tb, j para todos los bloques segundo en el intervalo de medicin. Por lo tanto,
primera, los bloques se encuentran en el orden correcto. As, las marcas de tiempo en
la relacin de nodos informadas f (t) es el rea bajo el histograma hasta el momento t.
conflicto solamente pueden ser causados por los relojes no sincronizados.
7
Conferencia Internacional IEEE de 13 de Computacin Peer-to-Peer
: C 1' : 0. 0006
la red es suficiente para un atacante para volver finalmente cualquier transaccin en las
condiciones actuales. Mientras que incluso esto es difcil de lograr, el aumento de retardo
mi
0. 0002
Y. Acelerar el PROPAGACIN
0. 0000
0
Tiempo [sl En la seccin anterior hemos demostrado que la infor macin forma en que se
propaga en la red hace que blockchain horquillas. En esta seccin exploramos cules
Fig. 7. funcin de densidad de probabilidad de un bloque en conflicto que se encontr mientras que otro bloque est emitiendo. son los lmites del protocolo existente y si son cambios unilaterales en el comportamiento
de los nodos pueden cambiar la tasa tenedor blockchain. Hay varias maneras de mejorar
la propagacin de informacin en la red:
por solamente 5%. para verificar un bloque antes de anunciar a la red. Hay una fuerte correlacin entre el
La probabilidad predicha ligeramente superior es posiblemente debido a la suposicin de tamao de un bloque y el tiempo para verificarlo. Como cada salto en la propagacin es
que la potencia de clculo se distribuye uniformemente sobre todos los nodos en la red. necesario verificar con el bloque antes de retransmitirla a sus vecinos el retardo se
Sin embargo, la buena calidad del ajuste sugiere que el modelo es un buen partido para multiplica por la longitud de las trayectorias de propagacin.
la realidad.
Actualmente hay un lmite de tamao de bloque de 500 KB por bloque impuesta por
Debido a que el nmero de transacciones y el tamao de la red es probable que bitcoind, pero es probable que estar relajado cada vez ms como el tamao medio de
crezca como la adopcin de Bitcoin como forma de pago recoge la tasa de horquillas bloques crece, por lo que puede incluir ms transacciones.
blockchain est obligado a aumentar. Una red ms grande, con la topologa de azar y el
tamao de la piscina conexin fija aumenta el dimetro y la distancia media entre los La primera idea es que la verificacin se puede dividir en dos fases:
8
L3-V Conferencia Internacional IEEE sobre Computacin Peer-to-Peer
verificacin
10
nodo B
Blockchain Altura
Fig. 8. intercambio de mensajes despus el comportamiento descrito modificaciones. En comparacin con la Figura 2, hay una diferencia
notable. los inv mensaje se reenva inmediatamente y la verificacin se divide en dos, acelerando la propagacin.
Cualquier cambio en el comportamiento de los nodos de la red tiene que ser la creacin de una cantidad arbitraria de las transacciones y de ponerla en la red. Como
aprobada en contra de la posibilidad de ser mal utilizado por un atacante para daar la el nodo atacar puede proporcionar la transaccin coincidente, no ser reconocido como
red. En particular, la informacin de retransmisin que no ha sido validado podra permitir un ataque.
a un atacante enviar cantidades arbitrarias de datos que se retransmite entonces, La Figura 2 y la Figura 8 muestran los cambios en el comportamiento. El nodo A es el
abrumando algunos nodos en la red y que resulta en un ataque de denegacin de nodo cuyo comportamiento ha sido alterado. No Tice la verificacin se divide en dos
servicio. fases ( diff y
verificacin) y el mensaje que se enva inv mucho antes.
Este cambio no aumenta el riesgo de sufrir un ataque de denegacin de servicio De nuevo, esto acelera un salto nico y es poco probable que resulte en una gran
como la produccin de un bloque no vlido que pasa la comprobacin de dificultad es tan mejora si se aplica solamente por un nico nodo en la red.
duro como la produccin de un bloque vlido con la misma dificultad. En el lado negativo
de este cambio es poco probable que tenga un gran impacto en el retraso de
propagacin global si se aplica solamente por un nico nodo que no est bien conectado. DO. aumento de la conectividad
Se acelera un solo salto en la ruta desde el origen a los nodos.
El problema ms influyente es la gran distancia entre el origen de una transaccin o
un bloque y los nodos. Para reducir al mnimo la distancia entre dos nodos cualesquiera
que intent conectarse a cada nodo en la red de la creacin de un sub-grfico estrella
B. PipeZining propagacin bloque que se utiliza como un centro de comunicacin central, acelerando la propagacin de
mensajes inv, bloques y transacciones.
Una mejora adicional se puede conseguir mediante entrante inmediatamente reenvo inv
mensajes a los vecinos. El objetivo de esto es para amortizar los tiempos de ida y vuelta
Instruimos a nuestra aplicacin para mantener un pool de conexiones de 4000
entre el nodo y sus vecinos anunciando preventivamente la disponibilidad de un bloque
conexiones abiertas. Esto hizo que se conecte a todas las direcciones anuncian sola,
antes de lo que realmente es. el entrante obtener datos mes sabios para el bloque se
como menos de 4000 nodos eran accesibles en cualquier momento.
ponen en cola a continuacin, hasta que el bloque ha sido recibido y la comprobacin de
dificultad anterior se ha realizado, entonces el bloque es enviado a los vecinos que lo
El resultado es que la distancia entre cualquier par de nodos del cubo conectado a
soliciten. A diferencia del primer cambio, esto puede causar algunos mensajes
est cerca de 2.
adicionales que se envan a partir del hash del bloque de ninguna validacin puede
hacerse. Un atacante podra anunciar un nmero arbitrario de bloques sin ser capaz de
RE. Mediciones
proporcionarles cuando se le pregunt por ello. Los nodos que reciben estos anuncia de
spam transmitirlas a sus vecinos. En caso de que un nodo de detectar que uno de sus Los cambios anteriores se llevaron a cabo en nuestro cliente y probados desde la
vecinos est anunciando bloques que no puede proporcionar que puede volver al altura blockchain 200'000 a 210'000. Durante este tiempo, el cliente se conecta a un
comportamiento original de bloques de verificar primero antes de anunciar ellos. promedio de 3048 nodos de la red y subido a 20,5 millones de mensajes de bloque. Para
cada bloque del nodo recibi un promedio de 2048 solicitudes.
9
Conferencia Internacional IEEE de 13 de Computacin Peer-to-Peer
Como se mencion antes, la canalizacin y la minimizacin de verificacin slo comerciantes y sus clientes. CommitCoin [6] es otro sistema que se basa en la
tienen un pequeo efecto, que se multiplica por el ltimo cambio. El ltimo cambio sin blockchain a los compromisos de la fecha de carbono.
embargo tiene requerimientos de ancho de banda de alta como bloques causados picos
VII. CONCLUSIN
de ancho de banda de hasta alrededor de 100 MB / s y dio lugar a una carga total,
durante las mediciones, de datos de bloque en bruto 2,3 1 TB. En este trabajo se analiz cmo la informacin en la red Bitcoin se difunde con el
fin de sincronizar las rplicas del libro mayor. La dependencia de los bloques no slo
retrasa la compensacin de las transacciones, sino que tambin representa una
VI. TRABAJO RELACIONADO amenaza para la propia red. Los grandes bloques se propagan lentamente en la red,
Aunque relativamente joven como un sistema, Bitcoin ha despertado un gran dando un atacante una ventaja.
El problema de la doble gasto ha sido abordada en el artculo original de blockchain son sintomticos de una inconsistencia en las rplicas del libro mayor, es
Nakamoto, pero slo en teora. Karame et al. [1 1] tienen un anlisis en importante que los nodos de la red son conscientes de ellos. Sin embargo, debido a la
profundidad de la probabilidad de un ataque doble gasto para tener xito en varios informacin que eclipsa, la mayora de los nodos no son capaces de detectarlas.
concepto de eclipsar la informacin, lo que hace que este problema. Bamert et al. Bitcoin que reducen el riesgo de un tenedor blockchain. Nuestras mediciones
[3] proponer algunas mitigaciones para el problema de duplicar el gasto en muestran que un nico nodo de la aplicacin de estos cambios reduce el nmero de
escenarios de pago rpido. horquillas blockchain en la red ms de un 50%. La causa raz del problema sin
embargo es intrnseca a la forma en que la informacin se propaga en la red. Los
Babaioff et al. [2] analizado los incentivos para los nodos que transmita la cambios pueden mitigar el problema en el corto plazo, hasta que se encuentre una
informacin en absoluto en la red y encontraron que son insuficientes. Una estrategia solucin escalable a largo plazo.
[5] David Chaum. firmas ciegas para pagos imposibles de rastrear. En Crypto,
volumen 82, pgina 199203, 1982.
Otro tema muy debatido es el anonimato de las transacciones Bitcoin. El hecho de [6] Jeremy Clark y Aleksander Essex. Commitcoin: La datacin por carbono com
que todas las transacciones se registran en un libro de contabilidad replicada y que los compromisos con Bitcoin. En La criptografa financiera y seguridad de datos.
2012.
detalles de las transacciones son por lo tanto accesible por cualquier participante en la
[7] Cynthia Dwork y Moni Naor. Precios a travs de procesamiento o combatir
red podra sugerir que la privacidad no es posible. Sin embargo, Nakamoto afirma correo basura. En Avances en criptologa.
que, puesto que la identidad del titular de una cuenta y la identidad de la cuenta se [8] Matthew Elias. Bitcoin: Templar el anillo de Giges o digital del
privacidad pecuniaria inverosmil. Disponible en SSRN 1937769, 2011.
mantienen separados, la privacidad puede decirse que es bajo seudnimo. Reid et al.
[9] Ryan Fugger. El dinero como pagars en las redes sociales de confianza y una propuesta de
[15] analizar esta afirmacin y sealan que al ponerse de acuerdo la informacin de un protocolo de red moneda descentralizada. 2004. [10] I1ja Gerhardt y Timo Hanke. direcciones de pago y
varias cuentas que participaron en un detalles de la transaccin sobre el propietario de homomrficas
el protocolo de pago por contrato. Corr, abs / 1212.3257, 2012. [II] GO Karame, E. Androulaki, y S. Capkun.
hecho, puede ser recuperado. Shamir et al [17] analiz el grfico de transaccin,
Dos bitcoins en el precio
derivando algunas estadsticas globales, incluyendo una estimacin de que 78% de de uno? ataques de doble gasto en pagos rpidos en Bitcoin. En Proc. de la Conferencia sobre la Seguridad
los bitcoins emitidos no estn circulando, y un anlisis en profundidad de una regin Informtica y Comunicacin, 2012.
por contrato que se construye en la parte superior de Bitcoin y asegura las transacciones [18] Beverly Yang y Hctor Garca Molina. Ppay: micropagos para pares
sistemas-to-peer. En Proc. de la seguridad informtica y comunicaciones.
entre
10