Soy Pedro y esta es la edición cuarenta y cuatro de La Cadena. Si quieres descentralizar los canales de comunicación e información, entonces apoya a este medio digital independiente. Este boletín es gratis, pero no barato. No estoy promocionando un producto ni un servicio, sino explicando la tecnología de Bitcoin de la forma más sencilla y neutral posible. Si quieres apoyar esa misión, suscríbete y entra a Patreon para ayudar a mantener este medio abierto para todos y todas.
En el mundo de las blockchains, existen los llamados mecanismos de consenso. Siendo sistemas distribuidos de computación, para llegar a acuerdos de cuáles transacciones son válidas y cuáles no, protocolos definen sus propias reglas del juego. Algunas requieren usar energía y tiempo (como Bitcoin), mientras otras usan la participación (como Cardano). Ambas tienen sus defensores y detractores, pero es fundamental entender cada una, para entender cómo funciona el protocolo en su esencia más pura.
Es interesante que siquiera podamos tener esta conversación, ya que casi todas las plataformas que usamos a diario son de código cerrado y estamos a merced de sus desarrolladores e ingenieros.
Blockchains—o bases de datos distribuidas—sufren con un trilemma de escalabilidad, donde deben equilibrar tres ejes: descentralización, seguridad y velocidad (o escalabilidad). Si eres muy descentralizado y seguro, como lo es Bitcoin, premias—aunque con la Lightning Network esto ya deja de ser un tema muy preocupante—estos dos atributos antes que la velocidad.
Otros protocolos deciden priorizar la velocidad, disminuyendo su descentralización y por tanto dejando de ser seguros (por tener puntos de falla centralizados).
De cierta forma, es imposible compaginar las tres perfectamente. Como todo en la vida, hay que buscar un equilibrio justo en cada componente, dependiendo de la misión de cada red. Por ejemplo, bitcoin busca ser la base monetaria del internet—y del mundo—por lo tanto su velocidad quizás no sea lo primordial, sino tener un nivel de seguridad y descentralización robusto.
Existen dos principales tipos de mecanismos de consensos en el mundo de las blockchain. Prueba de Trabajo (proof of work, o PoW en inglés) y Prueba de Partipación (proof of stake, PoS). La primera es la utilizada por bitcoin, y la segunda es la más utilizada por las altcoins—aunque existen algunas que también usan prueba de trabajo.
Partamos con la Prueba de Trabajo, el mecanismo de consenso que usa Bitcoin. El concepto fue inventado en 1993 por Cynthia Dwork y Moni Naor, como una forma de disuadir spam y ataques de denegación de servicio, al requerir prestar trabajo, usualmente en la forma de poder de procesamiento por parte de un computador (entrega de energía).
Spam es correo electrónico no-deseado, pero existe una forma de desincentivar su proliferación. La idea detrás del trabajo postulada por Dwork y Naor es que al enviar un correo, el computador deba agregar un poco de poder computacional—un especie de cobro de energía. Si uno envía solamente uno o dos correos, no es un problema y el costo es marginal para el usuario común. Sin embargo, si quieres mandar miles de correos no-deseados, ese agregado de poder computacional significa que el costo es muy alto y se reduce el incentivo para hacerlo.
La idea, de acuerdo al paper, es requerir al usuario computar una función moderadamente difícil, pero que tiene solución, para ganar acceso a la red o recurso, previniendo así el uso frívolo.
Bitcoin usa la Prueba de Trabajo; para crear nuevos bloques de transacciones, mineros (computadores que están realizando la proof of work) deben achuntarle a un número extremadamente aleatorio, lo que cuesta dinero y energía.
En simple, computadores invierten energía a la red para intentar encontrar ese número, un número muy difícil de encontrar pero fácil de verificar. Se prueba que realizaron el trabajo—invirtieron energía.
Es importante parar en este punto, para entenderlo. Bitcoin le paga a personas en bitcoin para entregarle energía a Bitcoin. Esto puede sonar un poco circular asique déjame explicarlo: Bitcoin le paga a personas con dinero escaso para hacer que hagan el trabajo que asegure (la proof of work sirve para mantener la seguridad de la red) el dinero para el beneficio de cualquiera que use ese dinero seguro y escaso.
La probabilidad de achuntarle al número aumenta con el poder de hash, que no es más que una palabra elegante para decir computacional. Es decir, a mayor número de participantes buscando encontrar este número, mayor es la dificultad de encontrar el número.
Existen dos incentivos para minar (o realizar la prueba de trabajo): fees y recompensas por bloque creado. Cada vez que uno realiza una transacción en la red de bitcoin, debe pagar un cobro para que se incluya esa transacción en el bloque. ¿Por qué estás pagando? Pues el minero que está procesando las transacciones debe usar energía para agregar esas transacciones.
Por otro lado, con la creación de cada bloque, se emiten nuevos bitcoin como recompensa al minero que realizó el trabajo para que se creara un nuevo bloque. En este momento, la recompensa por bloque creado es de 6.25 BTC.
La seguridad de la red proviene de los mineros que están compitiendo por crear nuevos bloques. Para que nadie (un supercomputador por ejemplo) se aproveche, Satoshi creó la llamada tasa de dificultad (hash rate), donde se ajusta la dificultad para encontrar el número dependiendo de cuantos computadores hay conectados a la red. Mientras más computadores, más difícil, y a menos computadores, es más fácil.
Es importante entender que mineros simplemente proponen bloques. Son los nodos, computadores que verifican la prueba de trabajo, quienes validan bloques y transacciones. Y en bitcoin, este equilibrio de poder es fundamental. Usuarios común y corrientes, con un nivel mínimo de inversión (hay personas que corren nodos en sus computadoras personales), pueden aplicar las reglas del juego, escrudiñar a los mineros, y mantener la descentralización de la red.
Detractores de la prueba de trabajo denuncian al consumo energético y rigidez para innovar que acompaña este mecanismo de consenso. Y por tanto, propusieron la Prueba de Participación en el 2011, en un foro de BitcoinTalk. En simple, la idea es que una usuario deposite y congele sus fondos (en este caso una criptomoneda) en el protocolo para así crear bloques y validar transacciones.
Este tipo de consenso entrega poder de minería basado en la cantidad de “monedas” que dicho minero posee. En lugar de usar energía, un minero de cadenas PoS (Proof of Stake), se limitan a minar el porcentaje de transacciones que refleja el porcentaje de su propiedad. Un minero que es dueño de 4% de las monedas disponible puede—en teoría—minar solamente el 4% de los bloques.
Es importante entender que ya no existe competencia para la creación de bloques, sino que a través de un algoritmo se le entrega esa distinción a un minero basado en su capital congelado. Y la creación de cada bloque no entrega recompensa de por sí, sino que se reparten los costos de transacción que usuarios pagaron por usar la red.
La prueba de participación emplea diversas maneras para aumentar la seguridad de su red, agregando un cierto grado de aleatoriedad, como quien piensa en dados cargados, aunque esto es en proporción a cuantas monedas entregaron. Por otro lado, existe un castigo a los malos actores llamado Slashing, donde una cierta cantidad de monedas se destruyen si se descubre intento de algún acto malicioso por parte de un minero.
En este momento, la gran mayoría de altcoins (o monedas alternativas a Bitcoin) están haciendo la transición a la Prueba de Participación como su mecanismo de consenso. Ethereum, la segunda criptomoneda más importante del mercado lleva años en este proceso, aunque de momento sigue usando la minera PoW.
¿Cuáles son los beneficios de este tipo de mecanismo de consenso? En primer lugar, permite rápida innovación de sus protocolos, ya que usan lenguajes de programación más flexibles. Por otro lado, son más experimentales, al apalancar contratos inteligentes para sus actividades. Hemos visto la creación de un sinnúmero de instrumentos financieras en muchos protocolos distintos.
Existen algunos problemas con la prueba de participación. En primer lugar, se establecen mínimos para ser nodos (en el caso de Ethereum, para ser un “minero” se van a necesitar 32 ETH, alrededor de $96.000 USD para participar), centralizando la red y dejando fuera a usuarios comunes.
Un segundo problema es el almacenamiento de las transacciones. Como explicamos al comienzo, el trilema de las blockchains implican que se debe renunciar a una de las cualidades para fomentar otra. Los protocolos basados en prueba de participación buscan mayor velocidad en sus transacciones, por tanto aumentan considerablemente la capacidad de procesamiento, y así se agrupan grandes cantidades de transacciones.
Esto quiere decir que la red tiene mucha información, por tanto personas común y corrientes ya no pueden correr nodos, a menos que tengan grandes capacidades de almacenamiento. Esto lleva a centralizar esa información es grandes servidores, como Amazon.
Tengo algunas apreciaciones con ambos modelos. En el caso de bitcoin, el costo de energía es una consideración y aunque la tendencia es a mayor energía renovable en su minería, tenemos que ser críticos y fomentar ese cambio. Por otro lado, la resistencia a los ASICs (equipos especializados en la minería de bitcoin) es una preocupación importante, ya que si alguien logra crear un aparato más rápido en poder computacional, la seguridad de la red se podría ver comprometida.
Los mecanismos de pruebas de participación pueden generar dos problemas importantes: la distribución igualitaria de recursos (la gran mayoría de las altcoins usaron un pre-minado, donde crearon muchas criptomonedas que luego vendieron para financiar sus proyectos o se las quedaron algunos desarrolladores e inversionistas) y el almacenamiento de los archivos.
La posibilidad de poder armar un nodo y aplicar las reglas de consenso debe ser una pieza fundamental de cualquier sistema distribuido, que quizás se vea mermado.
La diferencia fundamental es esta: la prueba de trabajo requiere la inversión de energía que está fuera del sistema, en la forma de trabajo, cuya energía es escasa (tiene un costo), para crear bloques. La prueba de participación requiere el depósito de criptomonedas, en la forma de un stake, para crear bloques e implementar las reglas.
La competencia de los consensos ha llegado, ¿cuál vas a elegir?
Para aquello/as que me quieren seguir en redes sociales o buscan otra forma de interactuar con La Cadena, les adjunto los siguientes link. Estoy compartiendo contenido a diario en esas plataformas:
La competencia de los consensos
Interesante