Secciones
Blockchain 101
¿Cómo funciona el blockchain?
¿Para qué se utiliza el blockchain?
Sección 1 - Blockchain 101
Contenido
¿Qué es el blockchain?
¿Cómo se conectan los bloques?
Blockchains y descentralización
El Problema de los Generales Bizantinos
¿Por qué las blockchains necesitan estar descentralizadas?
¿Qué es la red peer-to-peer?
¿Qué son los nodos de una blockchain?
Blockchains públicas vs. blockchains privadas
¿Cómo funcionan las transacciones?
Cómo realizar transacciones de Bitcoin
Cómo retirar bitcoins de Binance
Cómo enviar bitcoins desde Trust Wallet a Electrum
¿Quién inventó la tecnología blockchain?
Pros y contras de la tecnología blockchain
Pros
Contras
¿Qué es el blockchain?
Una blockchain es un tipo de base de datos especial. Es posible que hayas oído hablar también de la tecnología de registros distribuidos (distributed ledger technology o DLT) –en muchos casos, ambos conceptos se refieren a lo mismo.
Una blockchain presenta ciertas propiedades únicas. Existen reglas que determinan cómo deben ser añadidos los datos, y una vez éstos han sido almacenados, resulta virtualmente imposible modificarlos o eliminarlos.
Los datos se añaden, a lo largo del tiempo, en estructuras denominadas bloques. Cada bloque se construye encima del anterior e incluye una porción de información que lo vincula a éste. Fijándonos en el bloque más reciente, podemos comprobar que ha sido creado después del anterior. Así que si seguimos descendiendo por la “cadena”, llegaremos hasta nuestro primer bloque –conocido como bloque génesis.
Haciendo una analogía, imagínate que tienes una hoja de cálculo con dos columnas. En la primera celda de la primera columna, introduces cualquier información que desees conservar.
Los datos de esta primera celda serán convertidos en un identificador de dos letras, que se utilizarán a continuación como parte del siguiente input. En nuestro ejemplo, el identificador de dos letras KP deberá usarse para rellenar la siguiente celda en la segunda fila (defKP). Esto significa que si modificas los datos del primer input (abcAA), tendrás una combinación de letras diferente en todas las celdas restantes.
Una base de datos en la que cada entrada está vinculada a la última.
Si nos fijamos ahora en la fila 4, vemos que nuestro identificador más reciente es TH. ¿Recuerdas que comentábamos que no puedes volver atrás y eliminar o borrar entradas? El motivo es que sería fácil para cualquiera darse cuenta que eso ha ocurrido, y tu tentativa de cambio simplemente sería ignorada.
Imagínate que cambias los datos de la primera celda –obtendrías un identificador distinto, lo que significa que tu segundo bloque tendría otros datos, dando lugar a un identificador diferente en la fila 2, y así sucesivamente. TH es, en esencia, un producto de toda la información que le antecede.
¿Cómo se conectan los bloques?
La discusión anterior –con nuestros identificadores de dos letras– es una analogía simple de la forma en que una blockchain emplea las funciones hash. El hashing es el pegamento que mantiene unidos los bloques. Consiste en tomar datos de cualquier tamaño para producir un output (un hash) que siempre presentará la misma longitud.
Los hashes utilizados en las blockchains resultan interesantes, debido a que la probabilidad de encontrar dos fragmentos de información que generen exactamente el mismo output, son astronómicamente bajas. Como con nuestros identificadores de arriba, cualquier ligera modificación de nuestros datos de input dará como resultado un output totalmente diferente.
Podemos ilustrarlo con SHA256, una función utilizada de forma extensiva en Bitcoin. Como puedes ver, incluso el empleo diferencial de mayúsculas basta para alterar por completo el output.
Datos de input | Output de SHA256 |
---|---|
Binance Academy | 886c5fd21b403a139d24f2ea1554ff5c0df42d5f873a56d04dc480808c155af3 |
Binance academy | 4733a0602ade574551bf6d977d94e091d571dc2fcfd8e39767d38301d2c459a7 |
binance academy | a780cd8a625deb767e999c6bec34bc86e883acc3cf8b7971138f5b25682ab181 |
El hecho de que no se conozca la existencia de "colisiones" (es decir, dos inputs diferentes que den el mismo output) para SHA256, es increíblemente valioso en el contexto de las blockchains. Significa que cada bloque puede apuntar al que le antecede mediante la inclusión de su hash, y que cualquier intento de editar bloques viejos resultará evidente de forma inmediata.
Cada bloque contiene una huella digital del previo.
Blockchains y descentralización
Hemos explicado la estructura básica de una blockchain. Pero cuando escuchas a la gente hablar de tecnología blockchain, probablemente no estén refiriéndose a la base de datos en sí misma, sino al ecosistema construido en torno a ella.
Como estructuras de datos independientes, las blockchains solamente son útiles para aplicaciones muy concretas. Donde la cosa se pone interesante es cuando las utilizamos como herramienta para que extraños se coordinen entre sí. En combinación con otras tecnologías y algo de teoría de juegos, una blockchain puede actuar como un libro mayor distribuido que no controla nadie.
Lo que esto significa es que ningún actor tiene el poder para editar las entradas saltándose las reglas del sistema (hablaremos más sobre las reglas en breve). En este sentido, podríamos argumentar que todo el mundo está en posesión del "ledger" de manera simultánea: los participantes se ponen de acuerdo respecto a su apariencia en todo momento.
El Problema de los Generales Bizantinos
El auténtico desafío que se interpone en el camino de un sistema como el descrito arriba, es lo que conocemos como Problema de los Generales Bizantinos. Concebido en la década de 1980, describe un dilema en el que participantes aislados deben comunicarse para coordinar sus acciones. El dilema en cuestión involucra a una serie de generales de ejército que rodean una ciudad, mientras deciden si la atacan. Los generales sólo pueden comunicarse por medio de un mensajero.
Cada uno debe decidir si ataca o se retira. No importará si hacen una cosa o la otra, siempre y cuando todos los generales compartan la misma decisión. Si deciden atacar, sólo tendrán éxito si se mueven al unísono. Así que, ¿cómo podemos asegurarnos de que lo logran?
Por supuesto, podrían comunicarse a través del mensajero. ¿Pero qué ocurriría si el mensajero es interceptado con un mensaje que diga “atacaremos al alba”, y dicho mensaje es reemplazado por otro que diga “atacaremos esta noche”? ¿Qué ocurriría si uno de los generales es un actor malicioso que deliberadamente engaña a los otros para asegurarse su derrota?
Los generales tienen éxito cuando todos atacan (izquierda). Cuando algunos se retiran mientras otros atacan, serán derrotados (derecha).
Necesitamos una estrategia por la cual pueda alcanzarse un consenso, incluso en el caso de que los participantes resulten ser maliciosos o los mensajes sean interceptados. No poder mantener una base de datos no es una situación de vida o muerte equivalente a atacar una ciudad sin refuerzos, pero el mismo principio es válido. Si no hay nadie que se ocupe de supervisar la blockchain y dar a los usuarios información “correcta”, entonces serán los usuarios los que deberán poder comunicarse entre sí.
Para superar el potencial fallo de un usuario (o de varios), los mecanismos de la blockchain deben haber sido cuidadosamente diseñados con el objetivo de ser resistentes a dicho tipo de reveses. A los sistemas capaces de lograrlo los denominamos Tolerantes a Faltas Bizantinas. Como veremos enseguida, para hacer que se cumplan reglas firmes se utilizan algoritmos de consenso.
¿Por qué las blockchains necesitan estar descentralizadas?
Uno podría, por supuesto, operar una blockchain en solitario. Pero terminaría teniendo una base de datos torpe, en comparación con otras alternativas superiores. Y es que su auténtico potencial sólo puede ser aprovechado en un entorno descentralizado –es decir, uno en el que haya igualdad entre todos los usuarios. De esta forma, la blockchain no podrá ser eliminada o maliciosamente dominada. Será una fuente de verdad única que estará a la vista de todos.
¿Qué es la red peer-to-peer?
La red peer-to-peer (P2P) es nuestra capa de usuarios (o la de los generales, en nuestro ejemplo previo). No hay un administrador, así que en lugar de conectar con un servidor central cada vez que alguien quiere intercambiar información con otro usuario, lo que hacen éstos es enviarla directamente a sus pares.
Fijémonos en el gráfico de abajo. A la izquierda, A necesita enviar su mensaje a través del servidor para hacérselo llegar a F. En el lado derecho, sin embargo, ambos están conectados sin un intermediario.
Una red centralizada (izquierda) vs. una red descentralizada (derecha).
Normalmente, el servidor guarda toda la información que los usuarios necesitan. Cuando accedes a Binance Academy, le estás pidiendo a sus servidores que te brinden todos sus artículos. Si la página web queda "offline", no podrás verlos. Sin embargo, si descargaste todo el contenido, podrías cargarlo en tu ordenador sin necesidad de hacer un "query" (consulta) a Binance Academy.
Básicamente, eso es lo que cada par de la red hace con la blockchain: almacenan toda la base de datos en su ordenador. Si alguien abandona la red, los usuarios que permanezcan en ella podrán seguir accediendo a la blockchain y compartir información entre ellos. Cuando un nuevo bloque se añade a la cadena, los datos son propagados a través de la red para que todo el mundo pueda actualizar su propia copia del libro mayor (ledger).
No olvides leer nuestra Introducción a las Redes Peer-to-Peer para un análisis más detallado de este tipo de redes.
¿Qué son los nodos de una blockchain?
Los nodos son, sencillamente, las máquinas que están conectadas a la red –son los encargados de almacenar copias de la blockchain y compartir información con el resto de unidades. Los usuarios no necesitan gestionar manualmente estos procesos. Generalmente, todo lo que deben hacer es descargar y ejecutar el software de la blockchain, y el resto funcionará de manera automática.
Arriba hemos descrito lo que es un nodo en su sentido más puro, pero la definición también puede incluir a otros usuarios que interactúen con la red de algún modo. En el caso de las criptomonedas, por ejemplo, una simple aplicación de tipo monedero en tu teléfono sería lo que denominamos un light node (nodo ligero).
Blockchains públicas vs. blockchains privadas
Como sabrás, Bitcoin sentó las bases para que la industria blockchain se convirtiera en lo que es hoy en día. En cuanto Bitcoin empezó a demostrar ser un activo financiero legítimo, actores innovadores se dedicarían a pensar en el potencial de la tecnología subyacente para otros campos. Esto ha propiciado la exploración del blockchain para innumerables casos de uso fuera de las finanzas.
Bitcoin es lo que denominamos una "blockchain pública". Esto significa que cualquiera puede ver las transacciones que contiene, y todo lo que se precisa para unirse a la misma es una conexión a Internet y el software necesario. Debido a que no existen otros requisitos para participar, podemos referirnos a este tipo de entornos como no permisionados (permissionless).
En contraposición, también existe otro tipo de blockchains a las que llamamos "blockchains privadas". Estos sistemas establecen normas que determinan quién puede ver e interactuar con la blockchain. Por este motivo, nos referimos a ellas como entornos permisionados. Aunque las blockchains privadas pueden parecer redundantes en un primer momento, presentan ciertas aplicaciones importantes –principalmente en escenarios corporativos.
Si quieres saber más sobre el tema, échale un vistazo a Blockchains Privadas, Públicas y de Consorcios - ¿En qué se diferencian?
¿Estás pensando en iniciarte en el mundo de las criptomonedas? ¡Compra Bitcoin en Binance!
¿Cómo funcionan las transacciones?
Si Alice quiere pagar a Bob a través de una transferencia bancaria, deberá notificar al banco. Para simplificar, pongamos por caso que las dos partes utilizan el mismo banco. Este último comprobará que Alice dispone de los fondos necesarios para realizar la transacción, antes de actualizar su base de datos (es decir, anotar -50$ a Alice y +50$ a Bob).
No es algo muy distinto de lo que ocurre en una blockchain. Después de todo, también se trata de una base de datos. La principal diferencia es que no hay un actor único que se encargue de los controles y actualice los balances, sino que serán todos los nodos quienes deberán hacerlo.
Si Alice quiere enviar cinco bitcoins a Bob, emitirá un mensaje anunciándoselo a la red. Esto no se añadirá inmediatamente a la blockchain –los nodos lo verán, pero otras acciones deberán serán completadas para que la transacción sea confirmada. Véase ¿Cómo se añaden bloques a la blockchain?
Una vez la transacción es añadida a la blockchain, todos los nodos podrán ver que ha sido ejecutada. A continuación, lo que harán es actualizar su copia de la blockchain para reflejarlo. Desde ese momento, Alice no podrá enviar esas mismas cinco unidades a Carol (lo que sería cometer un "doble gasto"), porque la red sabrá que ya las gastó en una transacción anterior.
No existen los conceptos de "nombre de usuario" y "contraseña" –para demostrar la propiedad de los fondos se utiliza criptografía de clave pública. Así que en primer lugar, para poder recibir fondos, Bob deberá generar una clave privada. Ésta es, simplemente, un número aleatorio muy largo, que resulta virtualmente imposible de adivinar para cualquiera -incluso disponiendo de cientos de años para intentarlo. Pero si Bob le revela su clave privada a cualquier persona, ésta podrá actuar como propietaria de sus fondos (y, por tanto, podrá gastarlos). Así que es importante que la mantenga en secreto.
Lo que Bob puede hacer, sin embargo, es derivar una clave pública a partir de su clave privada. A continuación, podrá entregarle esta clave pública a cualquiera, porque es prácticamente imposible que alguien pueda obtener la clave privada a partir de ella mediante ingeniería inversa. En la mayoría de casos, Bob ejecutará otra operación con la clave pública (como por ejemplo someterla a hashing) para así obtener una public address (dirección pública).
Bob le dará a Alice la dirección pública para que así sepa dónde enviar los fondos. Ella generará una transacción que diga pagar estos fondos a esta dirección pública. A continuación, para demostrarle a la red que no está tratando de gastar fondos que no son suyos, Alice generará una firma digital utilizando su propia clave privada. Cualquiera podrá hacerse con el mensaje firmado de Alice y compararlo con su clave pública, para determinar con certeza si ésta tiene el derecho de enviar esos fondos a Bob.
Cómo realizar transacciones de Bitcoin
Para ilustrar la forma en que puedes realizar transacciones de Bitcoin, vamos a imaginarnos dos escenarios. En el primero te dispones a retirar bitcoins de Binance, mientras que en el segundo te propones enviar fondos de tu TrustWallet a tu monedero Electrum.
Cómo retirar bitcoins de Binance
1. Inicia sesión en tu cuenta de Binance. Si aún no tienes bitcoins, echa un vistazo a nuestra guía de Bitcoin sobre cómo comprarlos.
2. Desplaza el cursor encima de "Billetera" y selecciona "Billetera Spot".
3. Clica en "Retirar" en la barra lateral de la izquierda.
4. Escoge la moneda que deseas retirar –en este caso, BTC.
5. Copia la dirección a la que deseas enviar los bitcoins que retiras, y pégala en Dirección BTC del destinatario.
6. Especifica la cantidad que deseas retirar.
7. Clica en "Enviar".
8. Recibirás un correo electrónico de confirmación poco después. Comprueba detenidamente que la dirección sea correcta. Si lo es, confirma la transacción en el mismo correo.
9. Espera a que tu transacción pase por la blockchain. Podrás monitorizar su estado en la pestaña Historial de Depósito y Retiro o utilizando un explorador de bloques.
Cómo enviar bitcoins desde Trust Wallet a Electrum
En este ejemplo, enviaremos algunos bitcoins desde Trust Wallet a Electrum.
1. Abre la aplicación de Trust Wallet.
2. Pulsa en tu cuenta de Bitcoin.
3. Pulsa en "Enviar".
4. Abre tu monedero Electrum.
5. Clica en la pestaña "Receive" (recibir) de Electrum y copia la dirección.
Como alternativa, puedes volver a Trust Wallet y pulsar en el icono [–] para escanear el código QR que apunta a tu dirección de Electrum.
6. Pega tu dirección de Bitcoin en "Dirección del destinatario" en Trust Wallet.
7. Especifica la cantidad.
8. Si todo parece correcto, confirma la transacción.
9. ¡Ya has acabado! Espera a que tu transacción sea confirmada en la blockchain. Puedes monitorizar su estado introduciendo tu dirección en un explorador de bloques.
¿Estás pensando en iniciarte en el mundo de las criptomonedas? ¡Compra Bitcoin en Binance!
¿Quién inventó la tecnología blockchain?
La tecnología blockchain fue formalizada en 2009 con el lanzamiento de Bitcoin –la primera blockchain y la más popular. Sin embargo, su seudónimo creador, Satoshi Nakamoto, se inspiraría en tecnologías y propuestas anteriores.
Las blockchains hacen un uso intensivo de las funciones hash y de la criptografía -elementos que, cuando Bitcoin fue lanzado, ya existían desde hacía décadas. Curiosamente, el origen de la estructura blockchain puede remontarse a inicios de la década de 1990, sin embargo, por entonces se empleaba meramente para "sellar temporalmente" ("timestamping") documentos -para que así no pudieran ser alterados después.
Para saber más sobre el tema, ver Historia del Blockchain.
Pros y contras de la tecnología blockchain
Las blockchains que son diseñadas de manera adecuada resuelven un problema que afecta a los "stakeholders" de diversos sectores -desde las finanzas a la agricultura. Una red distribuida presenta numerosas ventajas respecto al modelo cliente-servidor tradicional, pero también comporta ciertas contrapartidas.
Pros
Uno de los beneficios inmediatos señalados en el white paper de Bitcoin, es la posibilidad de realizar pagos sin la participación de un intermediario. Las blockchains posteriores han ido un paso más allá, permitiendo a los usuarios enviar todo tipo de información. Eliminar a las contrapartes se traduce en un menor riesgo para los usuarios involucrados, y da lugar a menores comisiones -debido a que no hay un intermediario que saque tajada.
Como hemos mencionado anteriormente, una red blockchain pública es también "permissionless" (no permisionada) –no existe una barrera de entrada, debido a que nadie está a cargo de la misma. Si un usuario potencial puede conectarse a Internet, entonces será capaz de interactuar con otros pares de la red.
Muchos argumentarán que la cualidad más importante de las blockchains es que tienen un elevado grado de resistencia a la censura. Para inutilizar un servicio centralizado, todo lo que necesitaría hacer un actor malicioso es apuntar a un servidor. Pero en una red peer-to-peer, cada nodo actúa como un servidor por sí mismo.
Un sistema como Bitcoin tiene más de 10.000 nodos visibles diseminados por todo el mundo, lo que hace que resulte virtualmente imposible, incluso para un atacante con abundantes recursos, comprometer la red. Es necesario señalar que también hay muchos nodos ocultos -los cuales no son visibles para la red en general.
Estas son algunas de las ventajas generales. Existen muchos casos de uso específicos que las blockchains pueden satisfacer, como podrás ver en ¿Para qué se utiliza el blockchain?
Contras
Las blockchains no son una fórmula milagrosa para todos los problemas. Al estar optimizadas para sus puntos fuertes, referidos en la sección previa, acaban teniendo carencias en otras áreas. El obstáculo más obvio para una adopción masiva de las blockchains es el hecho de que no escalan muy bien.
Esto es válido para cualquier red distribuida. Dado que todos los participantes deben mantenerse sincronizados, la nueva información no puede añadirse demasiado rápido, porque de lo contrario los nodos no serán capaces de seguir el ritmo. Por ello, los desarrolladores tienden a limitar de forma deliberada la velocidad a que puede actualizarse la blockchain, para así garantizar que el sistema permanece descentralizado.
Para los usuarios de una red, esto puede manifestarse en forma de largos periodos de espera, si demasiada gente está intentando realizar transacciones. Los bloques sólo pueden albergar una cantidad determinada de datos y no son añadidos a la cadena de forma instantánea. Si hay más transacciones de las que puede albergar un bloque, las adicionales deberán esperar al siguiente bloque.
Otra posible desventaja de los sistemas blockchain descentralizados es que no pueden ser actualizados con facilidad. Si estás creando tu propio software, puedes añadir nuevas funcionalidades a tu antojo -no necesitas colaborar con otros o pedirles permiso para realizar modificaciones.
En un entorno con millones de usuarios potenciales, realizar cambios resulta considerablemente más difícil. Podrás modificar ciertos parámetros del software de tu nodo, pero eventualmente acabarás aislado de la red. Si el software modificado es incompatible con otros nodos, éstos lo detectarán y rechazarán la interacción con él.
Pongamos por caso que deseas cambiar la norma que determina el tamaño máximo de los bloques (de 1MB a 2MB). Podrías intentar enviar dicho bloque a los nodos con los que estás conectado, pero éstos tienen una norma que dice “no aceptar bloques de más de 1MB”. Si reciben cualquier cosa de mayor tamaño, no la incluirán en su copia de la blockchain.
La única forma de implementar cambios es lograr que la mayoría del ecosistema los acepte. En el caso de las principales blockchains, pueden transcurrir meses –o incluso años– de intensas discusiones en foros, antes de que los cambios puedan ser coordinados. Para saber más sobre este tema, ver Hard Forks y Soft Forks.
Sección 2 - ¿Cómo funciona el blockchain?
Contenido
¿Cómo se añaden los bloques a la blockchain?
Minería (Proof of Work)
Pros de Proof of Work
Contras de Proof of Work
Staking (Proof of Stake)
Pros de Proof of Stake
Contras de Proof of Stake
Otros algoritmos de consenso
¿Puedo revertir transacciones de una blockchain?
¿Qué es la escalabilidad del blockchain?
¿Por qué necesita el blockchain escalar?
¿Qué es un fork (bifurcación) de una blockchain?
Soft forks
Hard forks
¿Cómo se añaden los bloques a la blockchain?
Hasta aquí hemos abordados muchos temas. Sabemos que los nodos están interconectados y que almacenan copias de la blockchain. También, que se transmiten entre sí información sobre transacciones y nuevos bloques. Hemos analizado ya qué son los nodos, pero puede que te preguntes: ¿cómo se añaden los nuevos bloques a la blockchain?
No existe una única fuente que le diga a los usuarios lo que deben hacer. Dado que todos los nodos tienen el mismo poder, es necesario que haya un mecanismo para decidir de un modo justo quién puede añadir bloques a la blockchain. Necesitamos un sistema que haga que les resulte caro a los usuarios hacer trampas, pero les recompense cuando actúen de modo honesto. Cualquier usuario racional querrá actuar de la manera que le resulte económicamente beneficiosa.
Debido a que la red no tiene permisos, la creación de bloques debe ser accesible para cualquier persona. Los protocolos a menudo aseguran esto al requerir que el usuario ponga algo de "piel en el juego": deben poner en riesgo su propio dinero. Al hacerlo, les permitirá participar en la creación de bloques, y si generan uno válido, se les pagará una recompensa.
Sin embargo, si intentan hacer trampa, el resto de la red lo sabrá. Cualquier stake que hayan presentado se perderá. Llamamos a estos mecanismos algoritmos de consenso porque permiten a los participantes de la red llegar a un consenso sobre qué bloque se debe agregar a continuación.
Minería (Proof of Work)
La minería es, con mucho, el algoritmo de consenso más utilizado. En minería, se utiliza el algoritmo de Proof of Work (PoW). Esto implica que los usuarios sacrifiquen la potencia informática para intentar resolver un rompecabezas establecido por el protocolo.
El rompecabezas requiere que los usuarios controlen las transacciones y otra información incluida en el bloque. Pero para que el hash se considere válido, debe estar por debajo de cierto número. Dado que no hay forma de predecir cuál será el resultado dado, los mineros deben seguir analizando datos ligeramente modificados hasta que encuentren una solución válida.
Evidentemente, los datos hash repetidos son computacionalmente caros. En las blockchains de Proof of Work, el "stake" que los usuarios presentan es el dinero invertido en las computadoras mineras y la electricidad utilizada para alimentarlas. Lo hacen con la esperanza de obtener una recompensa de bloque.
¿Recuerdas cómo dijimos anteriormente que es prácticamente imposible revertir un hash, pero es fácil verificarlo? Cuando un minero envía un nuevo bloque al resto de la red, todos los demás nodos lo usan como entrada en una función hash. Simplemente necesitan ejecutarlo una vez para verificar que el bloque sea válido según las reglas de la blockchain. Si no es así, el minero no recibe la recompensa y habrá desperdiciado electricidad por nada.
La primera blockchain de Proof of Work fue la de Bitcoin. Desde su creación, muchas otras blockchains han adoptado el mecanismo PoW.
Ventajas de Proof of Work
Probado y probado: hasta la fecha, Proof of Work es el algoritmo de consenso más maduro y ha asegurado el valor de cientos de miles de millones de dólares.
Sin permiso: cualquiera puede unirse a la competencia minera o simplemente ejecutar un nodo de validación.
Descentralización: los mineros compiten entre sí para producir bloques, lo que significa que el poder de hash nunca está controlado por una sola parte.
Contras de Proof of work
Derrochador: la minería consume una enorme cantidad de electricidad.
Barreras de entrada cada vez más altas: a medida que más mineros se unen a la red, los protocolos aumentan la dificultad del rompecabezas de la minería. Para seguir siendo competitivos, los usuarios deben invertir en mejores equipos. Esto podría costar a muchos mineros.
Ataques de 51%: aunque la minería promueve la descentralización, existe la posibilidad de que un minero adquiera la mayor parte del poder de hash. Si lo hacen, teóricamente pueden deshacer transacciones y socavar la seguridad de la blockchain.
Staking (Proof of Stake)
En los sistemas de Proof of Work, lo que lo incentiva a actuar honestamente es el dinero que has pagado por computadoras de minería y electricidad. No obtendrás un retorno de tu inversión si no minas los bloques correctamente.
Con Proof of Stake (PoS), no hay costo externo. En lugar de mineros, tenemos validadores que proponen (o "forjan") bloques. Pueden usar una computadora normal para generar nuevos bloques, pero deben poner en juego una parte importante de sus fondos para obtener el privilegio. El staking se realiza con una cantidad predefinida de la criptomoneda nativa de la blockchain, de acuerdo con las reglas de cada protocolo.
Las diferentes implementaciones tienen diferentes variaciones, pero una vez que un validador replantea sus unidades, el protocolo puede seleccionarlas al azar para anunciar el siguiente bloque. Al hacerlo correctamente, recibirán una recompensa. Alternativamente, puede haber múltiples validadores que estén de acuerdo con el siguiente bloque, y una recompensa se distribuye proporcionalmente al stake que cada uno ha presentado.
Las blockchains PoS "puras" son menos comunes que las DPoS (Delegated Proof of Stake), que requieren que los usuarios voten sobre los nodos (testigos) para validar bloques para toda la red.
Ethereum, la blockchain de contratos inteligentes líder, pronto hará la transición a Proof of Stake en su migración a ETH 2.0.
Ventajas de Proof of Stake
Respetuoso con el medio ambiente: la huella de carbono de PoS es una fracción de la minería de PoW. El staking elimina la necesidad de operaciones de hash con uso intensivo de recursos.
Transacciones más rápidas: dado que no es necesario gastar potencia informática adicional en acertijos arbitrarios establecidos por el protocolo, algunos defensores de PoS argumentan que podría aumentar el rendimiento de las transacciones.
Recompensas e intereses de staking: en lugar de ir a los mineros, las recompensas por asegurar la red se pagan directamente a los titulares de los tokens. En algunos casos, PoS permite a los usuarios obtener ingresos pasivos en forma de airdrops o intereses, simplemente haciendo staking con sus fondos.
Contras de Proof of Stake
Relativamente no probado: los protocolos de PoS aún no se han probado a gran escala. Pueden haber algunas vulnerabilidades no descubiertas en su implementación o criptoeconomía.
Plutocracia: existe la preocupación de que PoS fomente un ecosistema “rico se hace más rico”, ya que los validadores con una gran participación tienden a ganar más recompensas.
Problema de "nada en stake": en PoW, los usuarios solo pueden hacer "stake" en una cadena: minan en la cadena que creen que es más probable que tenga éxito. Durante un hard fork, no pueden hacer apostar en múltiples con el mismo poder de hash. Sin embargo, los validadores en PoS pueden trabajar en múltiples cadenas con pocos costos adicionales, lo que puede causar problemas económicos.
Otros algoritmos de consensoOtros algoritmos de consenso
Proof of work y Proof of stake son los algoritmos de consenso más comunes, pero hay muchos más. Algunos son híbridos que combinan elementos de ambos sistemas, mientras que otros son métodos completamente diferentes.
No los abordaremos aquí, pero si estás interesado, consulta los siguientes artículos:
¿Puedo revertir las transacciones de blockchain?
Las blockchains son, por diseño, bases de datos muy robustas. Sus propiedades inherentes hacen que sea extremadamente difícil eliminar o modificar los datos de blockchain después de que se hayan registrado. Cuando se trata de Bitcoin y otras redes grandes, es casi imposible. Por lo tanto, cuando realiza una transacción en una blockchain, es mejor pensar en ella como escrita en piedra para siempre.
Dicho esto, existen muchas implementaciones diferentes de blockchain, y la diferencia más fundamental entre ellas es cómo llegan a un consenso dentro de la red. Esto significa que, en algunas implementaciones, un grupo relativamente pequeño de participantes puede obtener suficiente poder dentro de la red para revertir efectivamente las transacciones. Esto es especialmente preocupante para altcoins que se ejecutan en redes pequeñas (con bajas tasas de hash debido a la poca competencia minera).
¿Qué es la escalabilidad de blockchain?
La escalabilidad de blockchain generalmente se usa como un término general para referirse a la capacidad de un sistema blockchain para satisfacer la creciente demanda. Si bien las blockchains tienen propiedades deseables (como descentralización, resistencia a la censura, inmutabilidad), estas tienen un costo.
A diferencia de los sistemas descentralizados, una base de datos centralizada puede funcionar con velocidad y rendimiento considerablemente más altos. Esto tiene sentido ya que no es necesario que miles de nodos dispersos por todo el mundo se sincronicen con la red cada vez que se modifique su contenido. Pero este no es el caso con blockchains. Como resultado, la escalabilidad ha sido un tema muy debatido entre los desarrolladores de blockchain durante años.
Se han propuesto o implementado varias soluciones diferentes para mitigar algunos de los inconvenientes de rendimiento de las blockchains. En este punto, sin embargo, no existe un mejor enfoque claro. Es probable que se deban probar muchas soluciones diferentes hasta que haya respuestas más directas al problema de escalabilidad.
En un nivel más amplio, hay una pregunta fundamental sobre la escalabilidad: ¿deberíamos mejorar el rendimiento de la propia blockchain (escala on-chain), o deberíamos permitir que las transacciones se ejecuten sin hinchar lablockchain principal (escala off-chain)?
Puede haber claras ventajas para ambos. Las soluciones de escalabilidad on-chain podrían estar reduciendo el tamaño de las transacciones, o incluso simplemente optimizando cómo se almacenan los datos en bloques. Por otro lado, las soluciones off-chain implican transacciones por lotes fuera de la blockchain principal, y solo las agregan más tarde. Algunas de las soluciones off-chain más notables se llaman cadenas laterales y canales de pago.
Si deseas profundizar en este tema, lee Escalabilidad de blockchain: cadenas laterales y canales de pago.
¿Por qué la blockchain necesita escalar?
Si los sistemas blockchain van a competir con sus contrapartes centralizadas, deben ser al menos tan eficaces como ellos. Sin embargo, de manera realista, probablemente tendrán que funcionar aún mejor para incentivar a los desarrolladores y usuarios a cambiar a plataformas y aplicaciones basadas en blockchain.
Esto significa que, en comparación con los sistemas centralizados, el uso de blockchains debe ser más rápido, más barato y más fácil tanto para los desarrolladores como para los usuarios. No es una tarea fácil de lograr mientras se mantienen las características definitorias de las blockchains que hemos discutido anteriormente.
¿Qué es un fork de blockchain?
Al igual que con cualquier software, las blockchains necesitan actualizaciones para solucionar problemas, agregar nuevas reglas o eliminar las antiguas. Dado que la mayoría del software blockchain es de código abierto, en teoría, cualquiera puede proponer nuevas actualizaciones para agregar al software que gobierna la red.
Ten en cuenta que las blockchains son redes distribuidas. Una vez que se actualiza el software, miles de nodos repartidos por todo el mundo deben poder comunicarse e implementar la nueva versión. Pero, ¿qué sucede si los participantes no pueden ponerse de acuerdo sobre qué actualización implementar? Por lo general, no existe una organización con un flujo de decisión establecido para decidir. Esto nos lleva a soft y hard forks.
Soft forks
Si hay un acuerdo general sobre cómo debería ser una actualización, es un asunto relativamente simple. En un escenario como este, el software se actualiza con un cambio compatible con versiones anteriores, lo que significa que los nodos que se actualizan aún pueden interactuar con los nodos que no lo son. Sin embargo, en realidad, se espera que casi todos los nodos se actualicen con el tiempo. Esto se llama un soft fork.
Hard forks
Un hard fork es más complicado. Una vez implementadas, las nuevas reglas serán incompatibles con las antiguas. Por lo tanto, si un nodo que ejecuta las nuevas reglas intenta interactuar con un nodo que ejecuta las reglas anteriores, no podrán comunicarse. Esto da como resultado que la blockchain se divida en dos: en uno, el software antiguo se está ejecutando, en el otro, se implementan las nuevas reglas.
Después del hard fork, hay esencialmente dos redes diferentes que ejecutan dos protocolos diferentes en paralelo. Vale la pena señalar que en el momento del fork, los saldos de la unidad nativa de la blockchain se clonan de la red anterior. Por lo tanto, si tenías un saldo en la cadena anterior en el momento del fork, también tendrás un saldo en la nueva.
Mira Hard Forks y Soft Forks para más información sobre esto.
Capítulo 3 - ¿Para qué sirve blockchain?
Contenidos
Blockchain para cadenas de suministro
Blockchain y la industria de juegos
Blockchain para la atención sanitaria
Remesas con blockchain
Blockchain e identidad digital
Blockchain e Internet de las cosas (IoT)
Blockchain para la gobernanza
Blockchain para caridad
Blockchain para especulación
Crowdfunding con Blockchain
Blockchain y sistemas de archivos distribuidos
La tecnología Blockchain se puede utilizar para una amplia gama de casos de uso. Veamos algunos de ellos.
Blockchain para cadenas de suministro
Las cadenas de suministro eficientes son el núcleo de muchas empresas exitosas y se preocupan por el manejo de bienes desde el proveedor hasta el consumidor. La coordinación de múltiples partes interesadas en una industria dada ha sido tradicionalmente difícil. Sin embargo, la tecnología blockchain podría permitir nuevos niveles de transparencia en muchas industrias. Un ecosistema de cadena de suministro interoperable que gira en torno a una base de datos inmutable es justo lo que muchas industrias necesitan para ser más robustas y confiables.
Si deseas leer más, consulta Casos de uso de Blockchain: Cadena de suministro.
Blockchain y la industria de juegos
La industria del gaming se ha convertido en una de las mayores industrias de entretenimiento del mundo, y podría beneficiarse enormemente de la tecnología blockchain. Por lo general, los jugadores tienden a estar a merced de los desarrolladores de juegos. En la mayoría de los juegos en línea, los jugadores se ven obligados a confiar en el espacio del servidor de los desarrolladores y seguir sus conjuntos de reglas siempre cambiantes. En este contexto, blockchain podría ayudar a descentralizar la propiedad, la administración y el mantenimiento de los juegos en línea.
Sin embargo, lo que podría ser el mayor problema es que los elementos de juego no pueden existir fuera de los títulos, lo que elimina las posibilidades de propiedad real y mercados secundarios. Al optar por un enfoque basado en blockchain, los juegos podrían volverse más sostenibles a largo plazo, y los artículos en el juego emitidos como cripto-coleccionables podrían obtener valor en el mundo real.
Si deseas leer más, consulta Casos de uso de Blockchain: Gaming.
Blockchain para la atención sanitaria
Almacenar registros médicos de manera confiable es vital para cualquier sistema de salud, y la dependencia de servidores centralizados deja la información confidencial en una posición vulnerable. La transparencia y la seguridad de la tecnología blockchain la convierten en una plataforma ideal para almacenar registros médicos.
Al asegurar criptográficamente sus registros en una blockchain, los pacientes pueden mantener su privacidad y compartir su información médica con cualquier institución de salud. Si todos los participantes del sistema de salud actualmente fragmentado pudieran acceder a una base de datos segura y global, el flujo de información sería mucho más rápido entre ellos.
Si deseas leer más, consulta Casos de uso de Blockchain: Atención médica.
Remesas con blockchain
Enviar dinero internacionalmente es una molestia con la banca tradicional. Principalmente debido a una red intrincada de intermediarios, las tarifas y los tiempos de liquidación hacen que el uso de los bancos tradicionales sea costoso y poco confiable para transacciones urgentes.
Las criptomonedas y las blockchains eliminan este ecosistema de intermediarios y pueden permitir transferencias rápidas y baratas en todo el mundo. Si bien las blockchains indudablemente sacrifican el rendimiento por algunas de sus propiedades deseables, una variedad de proyectos están aprovechando la tecnología para permitir transacciones baratas, casi instantáneas.
Si deseas leer más, consulta Casos de uso de Blockchain: Remesas.
¿Estás pensando en iniciarte en el mundo de las criptomonedas? ¡Compra Bitcoin en Binance!
Blockchain e identidad digital
La gestión segura de la identidad en Internet necesita urgentemente una solución rápida. Una cantidad extraordinaria de nuestros datos personales se almacena en servidores centralizados y se analiza mediante algoritmos de machine learning sin nuestro conocimiento o consentimiento.
La tecnología Blockchain permite a los usuarios tomar posesión de sus datos y revelar información de forma selectiva a terceros sólo cuando sea necesario. Este tipo de magia criptográfica podría permitir una experiencia más fluida en línea sin sacrificar la privacidad.
Si deseas leer más, consulta Casos de uso de Blockchain: Identidad digital.
Blockchain e Internet de las cosas (IoT)
Se está conectando una cantidad extraordinaria de dispositivos físicos a Internet, y este número solo va a aumentar. Algunos especulan que la comunicación y la cooperación entre estos dispositivos podrían aumentar significativamente con la tecnología blockchain. Los micropagos automatizados de máquina a máquina (M2M) podrían crear una nueva economía que depende de una solución de base de datos segura y de alto rendimiento.
Si deseas leer más, consulta Casos de uso de Blockchain: Internet de las cosas (IoT).
Blockchain para la gobernanza
Las redes distribuidas pueden definir y aplicar sus propias formas de regulación en forma de código de computadora. No es sorprendente que blockchain tenga la oportunidad de desintermediar varios procesos de gobernanza a nivel local, nacional o incluso internacional.
Además, podría resolver uno de los mayores problemas que enfrentan actualmente los entornos de desarrollo de código abierto: la falta de un mecanismo confiable para la distribución de fondos. La gobernanza de Blockchain garantiza que todos los participantes puedan participar en la toma de decisiones, y proporciona una visión general transparente de las políticas que se están implementando.
Si deseas leer más, consulta Casos de uso de Blockchain: Gobernanza.
Blockchain para caridad
Las organizaciones de caridad a menudo se ven obstaculizadas por las limitaciones de cómo pueden aceptar fondos. Aún más frustrante, el destino final de los fondos donados puede ser difícil de rastrear con precisión, lo que sin duda desalienta a muchos de apoyar a estas organizaciones.
La "cripto-filantropía" se refiere al uso de la tecnología blockchain para sortear estas limitaciones. Confiando en las propiedades inherentes de la tecnología para garantizar una mayor transparencia, participación global y gastos reducidos, el campo emergente busca maximizar el impacto de las organizaciones benéficas. Una de esas organizaciones es la Blockchain Charity Foundation.
Si deseas leer más, consulta Casos de uso de Blockchain: Caridad.
Blockchain para especulación
Sin lugar a dudas, uno de los usos más populares de la tecnología blockchain es la especulación. Las transferencias sin fricción entre exchanges, las soluciones de trading sin custodia y un ecosistema creciente de productos derivados lo convierten en un campo de juego ideal para todo tipo de especuladores.
Debido a sus propiedades inherentes, blockchain es un excelente instrumento para aquellos dispuestos a correr el riesgo de participar en una clase de activos de este tipo. Algunos incluso piensan que una vez que la tecnología y la regulación circundante maduren, los mercados especulativos globales pueden ser tokenizados en la blockchain.
Si deseas leer más, consulta Casos de uso de Blockchain: Mercados de predicción.
Crowdfunding con Blockchain
Las plataformas de crowdfunding en línea han estado sentando las bases para la economía peer to peer durante casi una década. El éxito de estos sitios muestra que existe un interés real por el desarrollo de productos financiados por crowdfunding. Sin embargo, como estas plataformas actúan como custodios de los fondos, pueden tomar una parte considerable de ellos como honorarios. Además, cada uno tendrá su propio conjunto de reglas para facilitar el acuerdo entre los diferentes participantes.
La tecnología Blockchain, y más específicamente los contratos inteligentes, podrían permitir un crowdfunding más seguro y automatizado donde los términos de los acuerdos se definen en código de computadora.
Otra aplicación de crowdfunding usando blockchain es las Ofertas iniciales de monedas (ICOs) y las Ofertas iniciales de exchanges (IEOs). En ventas simbólicas como estas, los inversores recaudan fondos con la esperanza de que la red tenga éxito en el futuro y obtengan un retorno de su inversión.
Blockchain y sistemas de archivos distribuidos
La distribución del almacenamiento de archivos en Internet tiene muchos beneficios en comparación con las alternativas centralizadas convencionales. Gran parte de los datos almacenados en la nube se basan en servidores centralizados y proveedores de servicios, que tienden a ser más vulnerables a los ataques y la pérdida de datos. En algunos casos, los usuarios también pueden enfrentar problemas de accesibilidad debido a la censura de los servidores centralizados.
Desde la perspectiva del usuario, las soluciones de almacenamiento de archivos de blockchain funcionan igual que otras soluciones de almacenamiento en la nube: puedes cargar, almacenar y acceder a archivos. Sin embargo, lo que sucede en segundo plano es bastante diferente.
Cuando cargas un archivo en un almacenamiento de blockchain, se distribuye y replica en varios nodos. En algunos casos, cada nodo almacenará una parte diferente de tu archivo. No pueden hacer mucho con los datos parciales, pero luego puedes solicitar a los nodos que proporcionen cada parte, por lo que puedes combinarlos para recuperar el archivo completo
El espacio de almacenamiento se deriva de los participantes que proporcionan su almacenamiento y ancho de banda a la red. Por lo general, estos participantes reciben incentivos económicos para proporcionar esos recursos y se les castiga económicamente si no siguen las reglas o no almacenan y sirven archivos.
Se podría pensar en este tipo de red es similar a Bitcoin. En este caso, sin embargo, el objetivo principal de la red no es apoyar las transferencias de valor monetario, sino permitir el almacenamiento descentralizado de archivos resistente a la censura.
Otros protocolos de código abierto, como el Sistema de archivos interplanetarios (IPFS), ya están allanando el camino para esta nueva web, más permanente y distribuida. Si bien el IPFS es un protocolo y una red peer to per, no es precisamente una blockchain. Pero aplica algunos principios de la tecnología blockchain para mejorar la seguridad y la eficiencia.