Conociendo la cadena de bloques Decred

Richard Red .- Comencé a explorar la cadena de bloques Decred con más profundidad a fines de 2019 cuando eché un vistazo al plan para la tercera fase del Programa de Investigación de Código Abierto. 

Con una instancia local de dcrdata en funcionamiento, la observé a través de cientos de miles de bloques de datos, creando tablas que representan cada dirección, transacción, entrada, salida y voto, los orígenes y destinos de todos los DCR existentes. Hay algo satisfactorio en ver todo el trabajo que hace para preparar esos datos en bruto para el consumo a través de gráficos y tablas.

Después de la emoción inicial sobre la identificación de diferentes tipos de actividad en la base de datos y la producción de algunos gráficos preliminares, caí en un par de agujeros de conejo relacionados con dar sentido a estos datos. Agrupar direcciones y rastrear lo que sucede con conjuntos específicos de créditos descentralizados.

Un requisito clave para dar sentido a estos datos es saber o inferir cuándo DCR estaba cambiando de manos, en lugar de moverse dentro de las direcciones de un solo titular. Una forma de hacerlo es verificando si se sabe que las direcciones a las que se envía están asociadas con intercambios. jz amablemente me proporcionó algunas direcciones iniciales para todos los principales intercambios de DCR, y después de agregar algunos de los míos, los he expandido para cubrir algunos cientos de miles de direcciones como asociadas con intercambios específicos (aún un trabajo en progreso).

En algún momento en el mapeo de las direcciones utilizadas por los intercambios, me di cuenta de que esta tarea estaba profundamente conectada con la tarea más amplia de auditar la privacidad de las partes interesadas, lo que implicaría agrupar las direcciones. 

Al observar las transacciones de una bolsa en cadena, un requisito clave es saber qué salidas son retiros a los clientes y cuáles son salidas de cambio o transacciones internas entre las billeteras de la bolsa. Reconocer las direcciones como pertenecientes a clústeres que hacen cosas como replanteo o minería significa que pueden identificarse como no pertenecientes al intercambio.

Progreso temprano con clustering

Descubrí que trabajar a través del código para unir todo esto es bastante desafiante, mirar «la cadena» puede tener un efecto desorientador, con todas esas entradas y salidas volando entre direcciones que son prácticamente indistinguibles entre sí para el ojo humano. . Unos pocos han llamado mi atención, sin embargo, al igual que DshitsEnTq4 … .

Después de muchas pruebas y errores con la agrupación de direcciones y el «perfil de actividad» de estos grupos, ya no encuentro errores significativos cuando trabajo con los resultados. Voy a empujar esto durante algunas semanas a través de una lista de agrupaciones de direcciones de interés (Mineros PoW, depositantes de cambio y retirados, votantes PoS a lo grande, contratistas, y probablemente el grupo minero y operadores VSP también). Ahora que he superado el problema y tengo un código que funciona para esto, espero construir un historial profundo de la cadena Decred.

Votar es una gran parte de esa historia y proporciona algunas heurísticas de agrupamiento fuertes. También agrega un componente interesante a la agrupación y agrupación de actores, porque podemos ver si, y también cómo, votaron sobre una variedad de temas.

La mezcla introducida en 2019 es efectivamente un punto final de muchas de las historias que podemos contar sobre los actores de la cadena Decred: una vez que comiencen a mezclar, lo único que podría elegir (al menos hasta ahora) es cuánto poner en la batidora.

También estoy ansioso por esperar hasta que esta mezcla esté más ampliamente disponible (es decir, se libere la integración de Decrediton) antes de publicar demasiado sobre la agrupación de direcciones, porque es, de manera realista, la única forma de evitar que todas las transacciones se asocien fácilmente por cualquiera que esté motivado para hazlo

Ahora que no estoy solucionando ese código cada pocos días, mi atención se ha centrado en pulir los gráficos y escribir todo esto.

Esta primera entrega cubre una selección de análisis más directos que he visto usar con otras cadenas de bloques y que encontré interesante repetir para Decred.

Edad de los créditos que no se han movido

Echemos un vistazo a cuándo se movió por última vez todo el DCR no gastado (a partir de mayo de 2020).

Mes en que todos los DCR circulantes se movieron por última vez

Una gran cantidad de DCR en circulación se ha movido en los últimos meses, lo que no sorprende a nadie que sepa que aproximadamente el 50% de ella está participando en PoS.

La otra presencia significativa en este gráfico es la pre-mina de 1.68 millones de DCR, de los cuales 762k permanecen sin gastar. Como parte de la mina previa , el 4% del suministro final se destinó a desarrolladores y el 4% a 2,972 participantes de lanzamiento aéreo. Esto permite que esas monedas se dividan en monedas fundadoras y de lanzamiento aéreo.

465K de los pre-mineros Fundadores permanecen intactos, junto con ~ 290k de DCR de lanzamiento de aire, o 1,024 gotas de aire. Como alguien relativamente nuevo en el análisis de cadenas, me pareció muy interesante que pueda obtener esta información simplemente mirando esa transacción en dcrdata. Cuente las filas con Gastado == falso y obtendrá los números anteriores (o lo habría hecho el día que escribí esto).

También podemos ver todos los DCR no gastados en términos de cuál fue su última transacción, representada en el mismo gráfico a continuación.

Mes en que todos los DCR circulantes se movieron por última vez (con el tipo de última transacción)

Los segmentos verdes en estas barras representan el tipo de transacción regular que constituye la totalidad de una cadena de bloques como Bitcoin. Ha habido un «flujo» constante de DCR que deja de moverse y simplemente se queda allí (titulares a largo plazo), con algunos DCR que abandonan cada mes y lo que parecen ser picos anuales.

Distribución de créditos no gastados entre direcciones

Algunas direcciones tienen grandes saldos de DCR, y algunas solo tienen un crédito parcial, y cualquier número de direcciones diferentes pueden ser generadas por la misma billetera. Existen límites para la cantidad de información que se puede obtener al mirar direcciones individuales, por lo que no dedicaré mucho tiempo a ellas ahora, ya que este tipo de análisis será más interesante cuando se realice con clústeres.

Primero veamos dónde está el DCR. Para estos gráficos, las direcciones se han agrupado por su saldo en contenedores, las etiquetas de eje (por ejemplo, «10») son los límites superiores de los contenedores (es decir, «1 a 10»).

DCR no gastado por tamaño del saldo de la dirección

La mayor parte de la DCR en circulación (95%) se encuentra en direcciones con saldos> 100 DCR. La dirección con saldos de entre 100–1,000 DCR es donde descansa el 44.5% de la DCR circulante, gran parte probablemente relacionada con transacciones para comprar boletos.

Número de direcciones con saldo no utilizado

Al mismo tiempo, hay muchas direcciones con pequeños saldos no gastados, que incluyen acciones como pagos a mineros de PoW y tarifas para operadores de VSP, que tienden a permanecer estacionarias durante algún tiempo antes de gastarse.

Dado que las direcciones no representan actores o carteras individuales, hay una visión limitada que se puede obtener mediante el uso de medidas como un coeficiente de Gini con estos datos. Para Gini específicamente, la presencia de una gran cantidad de direcciones distintas con pequeños saldos aparecería como una masa de ciudadanos empobrecidos. 

Lo ejecuté de todos modos por curiosidad, el coeficiente sale a 0.88 para el conjunto de datos de la dirección completa (sin la dirección del Tesoro, ya que este es un caso especial). Se reduce a 0,75 si se excluyen las direcciones con saldo de menos de 1 crédito. 

Estos son números en el extremo de «alta desigualdad» de la escala. Cuando el trabajo de agrupación haya progresado, debería ser posible obtener un coeficiente de Gini más significativo para los años de premezcla de Decred utilizando los datos para agrupaciones.

Para hacer eco de una medida que he visto para Bitcoin ( donde es del 13%), las 100 direcciones principales de Decred por saldo no gastado (excluyendo el Tesoro) controlan 3.25 millones de DCR, o 30% del DCR circulante (excluyendo el saldo del Tesoro).

Distribución acumulativa de DCR no gastada

Esta es la distribución acumulativa de DCR no gastada entre direcciones (direcciones agrupadas por orden de magnitud nuevamente) con transformación logarítmica de ambos ejes. Una línea diagonal recta en este tipo de diagrama es indicativa de una distribución de la ley de potencia. En el extremo superior, las direcciones grandes tienen menos DCR de lo que se esperaría bajo dicha distribución.

Acción de la transacción

La cadena de bloques Decred (en el momento en que mi base de datos está preparada) registra los detalles de 7.7 millones de transacciones, de una variedad de diferentes tipos.

Transacciones por día por tipo

Este gráfico muestra el recuento bruto de transacciones por día para cada uno de los 4 tipos que utiliza dcrdata para clasificar las transacciones. Las transacciones de Tipo 1 implican comprar boletos, el Tipo 2 es votar y las transacciones de Tipo 3 son revocaciones de boletos vencidos o perdidos. Después de la volatilidad temprana en los recuentos de transacciones asociadas con el replanteo (debido al antiguo algoritmo del precio del boleto y que finalizó una vez que se reemplazó a mediados de 2017), el ritmo de las transacciones se volvió bastante estable.

~ El 58% de las transacciones declaradas hasta este momento se refieren al replanteo, con 3,22 millones de transacciones (41,6%) no directamente relacionadas con el replanteo.

Dentro de este conjunto de transacciones de «tipo 0» podemos identificar algunas más que están relacionadas con el replanteo. Las transacciones de compra de boletos (tipo 1) casi siempre van precedidas de una transacción estándar que establece la compra de 1 o más boletos preparando primero los insumos precisos necesarios para comprar esos boletos (precio del boleto más tarifas de minería más posible tarifa de VSP para usuarios de VSP) .

Hay 1.389.691 transacciones de este tipo, que representan el 43% de todas las transacciones de tipo 0, lo que lleva el número máximo de transacciones que no tienen nada que ver con PoS a 1,83 millones.

Transacciones no relacionadas con apuestas por día

Taxonomía de transacciones

Estoy construyendo una taxonomía más completa de diferentes tipos de transacciones y las formas de identificarlos en las tablas dcrdata. Esta sección considera la cantidad de espacio en la cadena de bloques utilizada por diferentes tipos de transacciones que son fácilmente identificables, y cuánto se paga en tarifas para realizar estas transacciones.

Cantidad de transacciones por tipo

Esto introduce el tipo de transacción coinbase (regular) y también divide las transacciones de mezcla de las transacciones regulares. También distingue entre transacciones utilizadas para comprar boletos que por parte de los apostadores individuales de los usuarios de VSP (dcrdata tiene un campo para esto en su tabla de boletos). A lo largo de la historia completa de la cadena Decred, ha habido más boletos votados en solitario.

Tamaño de todas las transacciones por tipo

Este gráfico muestra la cantidad de espacio ocupado por los datos sobre diferentes tipos de transacciones. Considerado con el gráfico anterior, se puede inferir que las transacciones de boletos y votaciones son más pequeñas que las transacciones regulares promedio, y que las transacciones para comprar boletos con un VSP son más grandes que las de boletos de votación individual.

Tarifas pagadas por transacciones por tipo

Aquí la barra negativa para las transacciones de coinbase muestra que los mineros de PoW han recibido 78.300 DCR en tarifas de transacción a lo largo de la historia de la cadena Decred. Teniendo en cuenta que los 6 millones de mineros DCR PoW han recibido de una nueva emisión, las tarifas han representado aproximadamente el 1% de los ingresos del minero. El gráfico anterior muestra que la mayoría de las tarifas están relacionadas con las transacciones de compra de boletos. También se relacionan principalmente con la parte anterior de la historia de Decred, donde el algoritmo original del precio del boleto produjo volatilidad y llevó a la competencia para que los mineros aceptaran las transacciones de compra de boletos. Este cuadro en dcrdata muestra que la mayor parte de esta acción de tarifa ocurrió en los primeros años.

Hay otros tipos de transacciones de tipo 0 que se pueden identificar, como las asociadas con los grupos de minería PoW y la operación VSP, o depositar / retirar DCR de los intercambios. El trabajo de agrupamiento los utiliza como indicadores para determinar qué tipo de actor representa el grupo, y debería ser capaz de construir una imagen más inteligible que elimine el ruido de las entradas y salidas que vuelan entre muchas direcciones para observar específicamente las relaciones. entre grupos de direcciones que probablemente representan diferentes actores.

Taint tracking

Además de las técnicas de agrupamiento, el «seguimiento de la contaminación» es uno de los aspectos en los que he pasado más tiempo. Esto implica tomar un conjunto de direcciones o transacciones y preguntar cómo se utilizó esa DCR. Si bien puede ser difícil saber si algunas transacciones reflejan la transferencia de DCR entre los titulares o dentro de las propias direcciones del titular, algunas transacciones tienen una interpretación muy clara. Usar el DCR para comprar un boleto es un resultado obvio , es fácil de detectar y tiene un significado claro: están en espera y quieren participar en el gobierno, no les importa bloquear sus créditos.

Enviar DCR a una dirección de intercambio es otro tipo de resultado obvio, significa que quien lo tenía anteriormente probablemente lo vendió. Una vez que salga por el otro extremo, sin embargo, el intercambio maneja DCR dentro de sus propias direcciones, el DCR probablemente estará en manos de otro titular. Detectar cuándo se envía DCR a un intercambio en cadena significa saber qué direcciones pertenecen a los intercambios, no hay nada más para identificar estas transacciones.

El seguimiento de la contaminación significa seguir un conjunto particular de resultados (como los pagos del Tesoro a los contratistas a continuación) a través de varios «saltos». La forma en que las transacciones se ramifican para incluir múltiples entradas y salidas hace que esto sea bastante difícil, requiere hacer un seguimiento de qué proporción de la «mancha» original ha entrado en qué transacciones, de modo que cuando se alcanza un «resultado» algunos saltos más adelante sabemos cuánto representa el pago original que proviene de ese resultado.

Gastos de Treasury (Tesoro)/contractor

Este análisis se basa en una instantánea de datos tomada antes de los últimos pagos del Tesoro en mayo de 2020, mientras que el total de DCR gastado fue de 344,689. Las cifras se basan en seguir la mancha de estas transacciones durante 3 saltos. Quizás esto todavía no sea 100% confiable, porque está utilizando un nuevo método que procesa todas las transacciones a la vez y considera el momento en que ocurrieron los resultados. Primero desarrollé un método que se basa en seguir cada salida individualmente, pero esto toma mucho más tiempo en ejecutarse.

Resultados por pagos del Tesoro a contratistas
  • 92,640 DCR pagados por el Tesoro (~ 27%) no han sido tocados desde que el contratista lo recibió. Otros 30K de los pagos del Tesoro se transfieren al menos una vez antes de permanecer sin gastar, probablemente retenidos a largo plazo por el contratista, o posiblemente alguien a quien le vendieron directamente. En total, el 35.5% de DCR pagado por el Tesoro no se gasta sin haber sido estacado o enviado a una dirección de cambio conocida.
  • El 23.7% del DCR pagado por el Tesoro terminó en una dirección de cambio conocida. Al menos uno de los contratistas parece usar una dirección de cambio directamente en sus facturas.
  • El 23.5% de este DCR ha sido apostado, casi seguramente por los contratistas que lo recibieron.
  • El 1.7% de la DCR recibida por los contratistas fue mixta, incluido el 0.5% que se mezcló en las transacciones de compra de boletos.
  • El 15.7% del DCR que se está rastreando todavía se movía después de 3 saltos, por lo que se desconoce su destino.

La proporción de resultados desconocidos puede reducirse aún más siguiendo más saltos, aunque esto aumentaría la posibilidad de que el contratista negocie con alguien más a través de medios no rastreados en el camino y, por lo tanto, clasifique mal los resultados. Los resultados desconocidos también se pueden reducir agregando más direcciones de intercambio a la tabla que se utiliza para verificarlas. Hay algunos intercambios más pequeños para los que todavía no tengo direcciones, y todavía no estoy aportando datos de ningún intercambio descentralizado que enumere DCR.

Gasto minero PoW

Este está recién salido de la terminal R, así que manipúlelo con cuidado. Con las recompensas de mineros PoW, encontré la necesidad de seguir la mancha para obtener más saltos, porque para los mineros que usan grupos habrá algunos saltos asociados con la recompensa que se mueve desde la base de monedas al grupo a su dirección de minería y luego tal vez se consolide en otra dirección antes de ser utilizado para comprar un boleto o enviado a un intercambio. Seguí la mancha de recompensa PoW durante 5 saltos, o hasta que llegó a un resultado. Como hay muchas más transacciones involucradas, tuve que podar los datos establecidos a medida que avanzaba por los saltos para evitar problemas de memoria. Descarté transacciones en las que se rastreó menos de 0.1 DCR de contaminación de recompensa PoW, puede ver el DCR que esto representa como una línea en la parte inferior del gráfico a continuación.

En el momento en que la base de datos estaba preparada, los mineros de PoW habían recibido un total de 580K DCR (subsidio de bloque y tarifas de transacción).

  • El 60% de las recompensas han terminado en direcciones asociadas con intercambios.
  • Se ha apostado el 10% para boletos de PoS
  • 6% está sentado sin gastar en algún lugar dentro de los primeros 5 saltos
  • Se ha mezclado el equivalente de 5 DCR extraídas de forma algo reciente. Los mineros no parecen mezclarse.
  • Para el 34% de las recompensas de los mineros PoW, todavía no estoy seguro de qué pasó con ellos. Los escritorios OTC y los intercambios menos conocidos probablemente explican algo de esto.
Resultados de las recompensas pagadas a los mineros de PoW

Esto se basa en el tiempo de bloqueo de las transacciones donde detecté un resultado. Los resultados ocurren con demoras variables después de que se emitieron las recompensas en una transacción de coinbase, el gráfico muestra las piezas de contaminación que se agregan a medida que se alcanzan los resultados.

El gran evento aquí fue el cambio de la minería de GPU a los ASIC. En el período inicial, la minería de fusión con ETH era popular. Se especuló que los mineros venderían el DCR para ayudar a cubrir los costos, y eso está respaldado por estos datos. A principios de 2018, el hashrate de Decred comenzó a aumentar a medida que varias empresas fabricaron, probaron y vendieron ASIC. En el momento de la primera edición de Decred Journal que cubre abril de 2018, ya hay informes de unidades recibidas y fechas de envío para otros modelos a fines de abril o principios de mayo. Hay un claro aumento en la cantidad de DCR extraído que se está estacando o retenida en este momento, lo que sugiere que algunos de los primeros mineros de ASIC estaban minando para adquirir DCR para poder comprar boletos.

El tema de los mineros y contratistas que venden DCR a menudo se discute en la comunidad Decred como una presión a la baja sobre el precio. Este análisis sugiere que los mineros son responsables de significativamente más DCR que afecta directamente a los intercambios (3,46 millones), en comparación con los contratistas que son pagados por el Tesoro (~ 80K). Sin embargo, debe tenerse en cuenta que los resultados marcados como estacados no se siguen más allá de la compra inicial del boleto. Por el momento, el análisis no rastrea cuántas veces se apostaron estas recompensas o durante cuánto tiempo, se podrían apostar una vez que se vendieron o el minero aún podría estar apostando ahora. Este es el tipo de pregunta que el trabajo de agrupamiento debería permitirme abordar.

Próximamente

En este momento estoy ejecutando y puliendo mi código de agrupación y seguimiento, con el objetivo de llevar esto a un punto en el que pueda poner casi todas las direcciones que se han utilizado en clústeres que dicen algo acerca de dónde vino su DCR, dónde se fue, y si lo apostaron o lo mezclaron. El objetivo principal de este proyecto ahora es unir esas piezas en una historia de la cadena Decred, mientras busca pistas adicionales que puedan usarse para encontrar debilidades en la privacidad ofrecida por DCR mixto.