Entrevista a Francisco Lozano, Fundador del Instituto Blockchain

|

Pregunta: El documento publicado por la enigmática figura de Satoshi Nakamoto a finales de 2008 presentaba Bitcoin como un sistema de pago electrónico Peer-To-Peer. Pero ¿qué es un Bitcoin y cómo puede un usuario ejercer la posesión de sus Bitcoins? 


Respuesta: Un BTC es una criptomoneda, un activo digital si se prefiere, por tanto, como moneda o activo, es un medio de acumular o de transmitir valor. Eso sí, una moneda con algunas características que la hacen diferente. Su creación y uso es descentralizado, es decir no existe un ente central que emite y controla su difusión, sino que se basa, como mencionan en su pregunta, entre otros, en el concepto P2P cuyo objetivo es evitar esa intermediación y control central del dinero, como sucede en el que podemos denominar esquema tradicional. Es limitada en cuanto a su cantidad, es decir existirá un número máximo de BTC, veintiún millones, en el mercado y no se crearán más. Esto la diferencia del dinero tradicional pero también de otras criptomonedas y es posible que le permita convertirse, con el tiempo, en reserva de valor. Tiene como sustento varias tecnologías, pero quizás la más relevante es la denominada” cadena de bloques” que permite un registro único, inmutable, fiable y duradero de las transacciones, lo que resulta vital tratándose de una moneda. De ahí podemos derivar también la respuesta a como se ejerce la posesión y como se transmite BTC. Debemos introducir dos conceptos, por un lado, la criptografía asimétrica, que consiste en el uso de dos claves, una pública, que nos permite relacionarnos con los demás usuarios y una privada, que sólo conocemos nosotros y nos hace dueños de las decisiones sobre nuestros BTC. Y por el otro los denominados HASH, que son funciones matemáticas que garantizan que para una entrada alfanumérica se obtenga una salida única y que además cuentan, entre otras, con dos propiedades básicas: en primer lugar, resulta imposible determinar la entrada conociendo sólo los datos de salida y, en segundo lugar, es fácil verificar que el HASH es correcto si tienes los datos de entrada. Luego habría que hablar, en detalle con más tiempo, del uso de “Wallets,” y de las alternativas, aunque no sé si pueden denominarse así, dadas las diferencias, como es del uso de las conocidas como “Exchange”. 


Pregunta: ¿Y si el usuario pierde el equipo o las claves? 


Respuesta: Bueno, una solución primera, complementaria en ocasiones de otras, a ese problema es el uso de las denominadas semillas, que son sucesiones de palabras que sólo con recordarlas nos permitirán recrear la direcciones donde se encuentran nuestros BTC mediante una función matemática determinista. Un paso más ha sido el uso de las denominadas carteras jerárquicas deterministas, donde se estandariza un camino de derivación de la semilla con lo que con una sola semilla se puede gestionar distintos Wallets. Además, se ha extendido el uso de “hardware Wallets”, que aportan mayor seguridad y comodidad de uso a todo este proceso. 


Pregunta: ¿En qué consiste el concepto de cadena de bloques y por qué se dice que aporta garantías de inmutabilidad?


Respuesta: La cadena de bloques es una tecnología que permite crear un sistema de contabilidad distribuido. Es decir, un registro compartido por todos los usuarios, en este caso de BTC. Su uso es determinante para dar estabilidad y fiabilidad a las transacciones y evitar problemas de base como el hipotético del doble gasto.  La inmutabilidad es una propiedad inherente a este tipo de tecnología si se cumplen unas condiciones determinadas. Inmutabilidad en el sentido de que la cadena debe suponer un sistema inalterable de datos, de forma que la historia de transacciones debe ser inmodificable. No todas las cadenas de bloque son inmutables, así, las cadenas privadas o permisionadas permiten a quien dispone de las autorizaciones en la red hacer cuantas modificaciones considere. No es ese el caso de BTC, donde la cadena de bloques si es inmutable. Y ello gracias a que se trata de una cadena de bloques que utiliza como método de consenso una “Proof of Work”, protocolo que permite garantizar el envío seguro dentro de una red descentralizada mediante el empleo de algoritmos de consenso y criptografía. En la Blockchain de Bitcoin todas las operaciones ejecutadas se encuentran garantizadas a través de algoritmos criptográficos, que permiten asegurar y autentificar la integridad del conjunto de datos, esto es: que dichos datos no han sido alterados desde su creación. Ya hemos avanzado antes dos conceptos claves para hacer posible lo anterior, los HASH y las claves asimétricas publico/privadas. La combinación de ambos hace posible la existencia de las firmas digitales, que nos permiten verificar la identidad del remitente – el origen del envío- y confirmar que los datos enviados no han sido alterados. Para registrar una transacción en la cadena de bloques, se requiere firmar la misma con una clave privada antes de su envío, garantizando de esta manera que nadie pueda alterar el contenido de dicha transacción. Una vez propagada la transacción por la red, cada participante usará la firma digital para verificar su identidad (comprobando que la firma es efectivamente de tal usuario y no alguien pasándose por él) y la integridad (garantizando que los datos no han sido alterados por terceros). En caso contrario, la transacción será descartada de la red. Para evitar las alteraciones, los datos contenidos en una cadena de bloques como la de BTC se encuentran ligados entre sí a través de una estructura en cadena, donde cada bloque (como si fuera cada eslabón) está vinculado con su bloque anterior y posterior. Los mineros, cuya intervención es necesaria en este modelo, generan y validan los bloques mediante un método de consenso ya mencionado, la PoW, y a cambio obtienen su recompensa que consiste en los nuevos bitcoins que se ponen en circulación y las comisiones que se generan en las transacciones.


Pregunta: Se suele afirmar que muchos cibercriminales prefieren cobrar extorsiones en bitcoins porque es anónimo, pero esa afirmación parece chocar con el concepto público de la Blockchain. ¿Hasta qué punto es anónimo Bitcoin? 


Respuesta: Contestar a esta pregunta requiere, en primer lugar, diferenciar entre privacidad y anonimato. Es verdad que se trata de un sistema descentralizado y por tanto sin una autoridad central, y también que las transacciones lo que registran en la cadena de bloque es un emisor, un receptor y un monto. Además, es cierto que no se ligan a ninguna identidad previamente verificada por la autoridad y eso puede hacer que se consideren anónimas. Pero eso no es del todo así, teniendo en cuenta que el registro de las transacciones es público existen formas de rastrear las transacciones y hay que tener en cuenta que las claves públicas son tan sólo un pseudónimo que puede vincularse en ocasiones, con los medios necesarios, a una identidad. Los nodos de BTC y el modo en que se conectan hacen que pueda ser vulnerable a determinados ataques que, mediante la unión de una serie de nodos, puedan dar con el origen de una transacción. También se puede ubicar una dirección específica y ligarla a otras donde ya se conozca la identidad del usuario, así pues, conociendo una sola dirección las demás también podrían ser vinculadas. En definitiva, hay que entender que, aunque los niveles de privacidad y de anonimato son elevados en el ecosistema BTC no es un ámbito de impunidad, ni pretendida ni real.


Pregunta: El mundo ha cambiado mucho desde el año 2008. Por aquel entonces los iPhone apenas llevaban unos años en el mercado y a Instagram aún le quedaba tiempo hasta despuntar en 2010. ¿Cómo ha llevado el paso del tiempo la comunidad de Bitcoin? ¿Se ha producido algún cambio en el protocolo original que se pueda reseñar? 


Respuesta: Bueno, Thomas Jefferson decía que “nada es inmutable salvo los derechos inherentes e inalienables de hombre”. Bitcoin, en cuanto al protocolo, en otros aspectos hemos visto que sí, no lo es y eso lejos de constituir una debilidad, constituye, a nuestro entender, una fortaleza del modelo. Habría que empezar por aclarar que un principio básico de bitcoin es el consenso. Consenso en un triple sentido, como identidad en la copia que todos los usuarios manejan, como conjunto de reglas que todos los nodos siguen y en el sentido de apoyo mayoritario a un plan, proyecto, etc… para que salga adelante. Ahora bien, los cambios en el protocolo son deliberadamente difíciles de realizar. Se cuenta con distintos procedimientos según la trascendencia y el efecto sobre el consenso: implementación directa, soft-fork y hard-fork. Y por otro lado hay cambios prohibidos por atacar los fundamentos del modelo como el límite de emisión, el código abierto, la fungibilidad, la inmutabilidad, entre otros. Para proponer y debatir ampliaciones y modificaciones de las normas básicas de la red Bitcoin se ha creado un procedimiento. A estas propuestas se las denomina mediante el acrónimo inglés BIP (Bitcoin Improvement Proposal) Para contestar a su última pregunta, sí se han producido varios cambios en el protocolo, algunos muy importantes como el conocido como Segregated Witness o SegWit (en español: Testigo Segregado) que es una actualización de software compatible con versiones anteriores de Bitcoin, la cual fue implementada tras una bifurcación suave en la principal plataforma Blockchain del mundo. Su nombre oficial es BIP141.


Pregunta: ¿Y cómo funciona el mecanismo de aceptación de estos cambios en el protocolo de Bitcoin? 


Respuesta: Hemos dicho que los BIP son el principal mecanismo para proponer nuevas características, para la recogida de información sobre un tema y para documentar las decisiones que se adoptan en Bitcoin. Cualquier persona puede crear un BIP, que debe responder a un formato predeterminado, y es el autor el que se encarga de la creación de consenso dentro de la comunidad y de obtener la documentación de todas las opiniones al respecto. Hay tres tipos de BIP, Standards Track, sobre cualquier cambio que afecta a las implementaciones de Bitcoin, Informativo, que proporciona directrices o información, pero no propone una implementación; y de Proceso, en los que se describe un proceso o un cambio en un proceso, pero sin referirse a aspectos del protocolo. Pueden proponer una implementación, pero no en la base del código. Antes de presentar un BIP es habitual que primero se tantee en el foro de desarrollo de Bitcoin cuál es la acogida que tiene la idea y si tiene posibilidades de aceptación. Una vez que se presenta, el editor es el que se encarga de subirlo al repositorio de GitHub, tras numerarlo, clasificarlo dentro de una de las tres categorías de BIP que existen, y asignarle el estatus de borrador Una vez que un BIP ha sido aceptado, se debe completar la implementación de referencia. Cuando ésta se ha completado, se discute dentro de los foros de desarrollo de Bitcoin y si es aceptado por la comunidad, el estado cambiará a “Final”. Un BIP, una vez que esté finalizada la implementación de referencia, también puede ser “Rechazado” En este caso, se mantiene la documentación de que la propuesta se ha hecho y de que el seguimiento a la misma ha dado lugar a que finalmente se decida no incluirla. También existe la posibilidad de que un BIP sea eliminado, o que sea modificado, en cuyo caso variará la numeración de este, con una versión posterior para mantener el registro. 


Pregunta: Entonces, ¿qué podría ocurrir en el caso de que los desarrolladores o una parte de la comunidad apostara por implementar un cambio y otra parte apostara por no hacerlo? ¿Se ha dado algún caso que afecte a Bitcoin?


Respuesta: Puede suceder y ha sucedido. Fue el caso de la implementación de SegWit, un protocolo planteado por Pieter Wuille para aumentar la capacidad de Bitcoin. Su nombre viene de Segregated Witnesses: separar a los ‘testigos’, que son las firmas de transacción.Dos de las principales debilidades de Bitcoin se deben a la maleabilidad y la escalabilidad. Para corregirlas, se fueron presentando e implementando algunas propuestas, quizás una de las más importantes ha sido SegWit. Las ventajas que trae SegWit para la red básicamente son dos: imposibilita ataques de maleabilidad y aumenta el tamaño de bloques hasta unos 1,8 MB. De estas dos ventajas se desprenden muchas otras más. Había diferencias entre la mayoría de la comunidad y los mineros que querían un aumento de tamaño mucho mayor. Se planteó entonces una solución a través del BIP 148 una UASF (Users Activated Softfork). Los desarrolladores de Core, al ver que no estaba alcanzándose el consenso requerido para activar SegWit, diseñaron esta otra propuesta, donde no se necesita de la mayoría de los mineros para poner a funcionar el protocolo de Wuille. Los nodos (usuarios) que quisieran activar SegWit, sólo deberían recurrir al UASF. Fue un debate a tres: Los big-blocker (Bitcoin Cash, Bitcoin Unlimited), los Small-blockers (SegWit), y los moderados (SegWit2X). Finalmente, la activación del BIP 148 se produjo a través del BIP 91, SEGWIT2X, aprobada en junio de 2017 en el denominado “New York Agreement” previo a la conferencia “Consensus 2017", donde los grandes grupos de minería dieron su conformidad a esta ruta. Hay que decir que no es lo mismo que SegWit a secas, pero sí que implicó la activación de SegWit. Y que el hard fork teórico que contenía SEGWIT2X fue cancelado posteriormente.


Pregunta: Si se ha dado algún caso de cambio de las reglas del juego, que afecte a Bitcoin: ¿qué cambios fueron objeto de la polémica? 


Respuesta: Acabamos de hablar de un cambio que fue polémico y ha habido más, y el debate, como también hemos comentado está permanentemente abierto. Al final Bitcoin lo forman personas. Cualquier persona puede formar parte y dar soporte a este sistema monetario sin el permiso de nadie. Los desarrolladores se juntan en torno a un grupo abierto y libre con el fin de mejorar el proyecto. Y cuando en un grupo humano surge la incapacidad de ponerse de acuerdo para tomar decisiones vitales, aparecen fricciones que pueden romper la unidad del grupo, dando lugar a dos o más grupos separados que defienden sus posturas de forma unánime. El cambio más importante y polémico dio lugar a un hard fork: Bitcoin Cash. Durante la conferencia sobre el Futuro de Bitcoin en Arnhem, Holanda, la primera implementación del protocolo Bitcoin Cash llamado Bitcoin ABC fue anunciada por Amaury Séchet. Séchet y su equipo de desarrolladores decidieron abandonar el protocolo SegWit2x y aumentar el límite de tamaño de bloque a ocho MB. Tales cambios drásticos requirieron su desarrollo para separarse de la red original de Bitcoin, y se anunció que un hard fork tendría lugar el 1 de agosto de 2017. Después de que se produjo la división, todos los que tenían Bitcoins antes de la bifurcación recibieron la misma cantidad de tokens de Bitcoin Cash. La nueva criptomoneda fue rápidamente adoptada por los inversores, ya que al final del primer día de su existencia Bitcoin Cash se convirtió en la tercera criptomoneda detrás de Bitcoin y Ethereum en términos de capitalización de mercado. Bitcoin Cash dispone del mismo código de la versión original. Mantiene las principales características que aporta Blockchain: descentralizado, conserva el anonimato y permanente (no permite modificaciones). Pero la nueva versión es totalmente incompatible con la original, cada una lleva su propio camino. El protocolo Bitcoin Cash se actualizó por primera vez el 13 de noviembre de 2017. En este momento se introdujo el Algoritmo de Ajuste de dificultad o “DAA”. La segunda actualización se realizó el 9 de enero de 2018 para implementar un formato de direcciones diferente llamada CashAddress Format.  Actualmente Bitcoin Cash tiene una capacidad de procesar bloques de 32 Mb. Esta actualización fue implementada el 15 de mayo de 2018. Los mineros pueden procesar bloques más pequeños, pero la red permite que sean de hasta 32MB suponiendo que el elevado número de transacciones lo necesite. 


Pregunta: Y, más allá de Bitcoin, ¿existe algún otro ejemplo de fork relevante en otras criptodivisas como, por ejemplo, Ethereum? ¿Qué motivos esgrimieron ambas partes? 


Respuesta: Si que ha habido ejemplos. En el caso de Ethereum una DAO, Organización Autónoma Descentralizada por sus siglas en inglés, fue creada como un contrato inteligente dentro de la cadena de bloques de Ethereum. Sería dirigida por una junta directiva formada por los poseedores de tokens de la DAO. A través de un sitio web creado para la financiación del proyecto, se realizó una venta masiva en la que se logró recaudar más de 150 millones de dólares. Una de las funciones en el código del contrato inteligente de The DAO tenía un ‘exploit’, es decir, tenía un fallo en su escritura por el cual podía ser hackeado. El 17 de junio de 2016, un hacker extrajo lo que fueron más de 50 millones de dólares. Tras un intento de Soft Fork en la cadena de bloques de Ethereum, que, a pesar de haber sido implementado al recibir el apoyo por parte de la mayoría de la comunidad, tuvo que ser cancelado porque daba lugar a vulnerabilidades aún mayores, empezó a debatirse un posible Hard fork. Los que estaban en contra del Hard Fork exponían que “code is law” y los errores del código son “parte del juego”. Sostenían que lo que sucede en la Blockchain es inmutable, es decir, nunca debe ser cambiado a pesar de que los resultados no sean los esperados. Y que una vez que se hiciera una modificación en la Blockchain, nada impediría que se hiciera de nuevo para otros contratos. Los que estaban a favor del Hard Fork argumentaban que el enfoque de que el código es la ley es un planteamiento demasiado estricto y al final son las personas quienes deben decidir a través del consenso social. Se podría evitar que los hackers que robaron Ether pudieran generar ganancias con el ataque realizado y que devolver los fondos haría que las entidades reguladoras vieran con buenos ojos las acciones de la comunidad de Ethereum. Finalmente, el recuento de votos dio un contundente 97% a favor del Hard Fork. Una vez procesado el bloque 1.920.000 llegaba el momento en el cual el Hard Fork sería puesto en marcha. Los usuarios debían haber actualizado sus clientes llegados a este punto, pero solo el 85% de los nodos de la red habían actualizado sus clientes. Normalmente, después de un Hard Fork la cadena de bloques antigua se queda obsoleta. Contra todo pronóstico, la cadena de bloques “clásica” de Ethereum seguía teniendo vida, los mineros seguía procesando bloques y dando valor al Ether “antiguo” y surgió Ethereum Classic que empezó a considerar como una divisa diferente a Ethereum.


Pregunta: Hablando de Ethereum, se está hablando mucho últimamente de los cambios que se están gestando dentro de la comunidad para implementar un mecanismo de consenso diferente y con una huella ambiental menor como Proof-of-Stake. ¿Qué aportaría este mecanismo frente a Proof of Work? 


Respuesta: En una Blockchain de consenso descentralizado todos los cambios requieren la aceptación de la mayoría, y en consecuencia se necesita un protocolo que defina en qué consiste esa mayoría. Para ello se utilizan principalmente dos tipos de algoritmos: Pruebas de trabajo (Proof of Work), en donde tienen más voto los que realizan una mayor cantidad de trabajo. Es el sistema por ejemplo que se emplea en hashcash y el principal mecanismo de consenso en las Blockchain públicas más conocidas como Bitcoin y Ethereum. Pruebas de participación (Proof of Stake), en donde tienen más voto quienes poseen un mayor porcentaje de los tokens emitidos. Se utiliza por Nxtcoin, Peercoin, Bitshares u otras criptomonedas. Bitcoin implementa un algoritmo de tipo hashcash que consiste en encontrar un hash SHA256 de una determinada dificultad. Como cabía esperar, la fuerte competencia ha impulsado el desarrollo de procesadores específicos de tipo ASIC que sirven para optimizar esta función y realizar cálculos más rápidamente. El riesgo con las pruebas de trabajo es que un pequeño grupo de fabricantes de hardware y de mineros pudieran llegar a tener una parte significativa del poder de computación de la red y llegar a controlarla. Si algún día se diera ese caso, la comunidad cambiaría el algoritmo de consenso mediante un hardfork con el objetivo de inhabilitar a los mineros hostiles. Ethereum ha implementado un sistema de consenso distinto con la idea de evitar ese riesgo. Su algoritmo también se basa en pruebas de trabajo como en Bitcoin, pero está modificado para evitar el uso de procesadores ASIC. El algoritmo usado ahora por Ethereum (Ethash) hace uso de una propiedad llamada en inglés “memory hardness” que provoca que el rendimiento del procesador dependa de la rapidez con la que puede mover datos en la memoria en lugar de por la rapidez con la que realiza operaciones de cálculo. Este sistema evita parte del riesgo de centralización, pero sigue sin resolver el problema del todo. Ethereum tiene previsto cambiar a un nuevo algoritmo de tipo “Proof of Stake” cuando se hayan resuelto algunas de las dificultades que tienen. Las pruebas de participación ofrecen una ventaja fundamental sobre las pruebas de trabajo y es su menor coste de minado, Son mucho más eficientes energéticamente Otra de las ventajas posibles es que se reduce el riesgo de un ataque del 51% al requerir que el atacante tenga que hacerse antes con un 51% de los tokens. Aunque es discutible si eso es una ventaja o una vulnerabilidad. En cualquier caso, el problema más importante de los sistemas PoS puros es que no sirven para alcanzar el consenso en caso de una bifurcación de la cadena. Los mineros podrían seguir minando en ambas cadenas porque eso no les supone un gasto extraordinario, no tienen ningún incentivo para decidirse por una de ellas. En cambio, minar en las dos cadenas de una bifurcación con un sistema de pruebas de trabajo sería muy perjudicial para el minero Por otro lado, en una Blockchain PoW un minero tiene hardware y obtiene tokens de recompensa, por lo que necesita convertir tokens en fíat, ejerciendo presión a la baja en el precio por ir en busca de compradores. Sin embargo, en un algoritmo PoS, un staker necesita comprar tokens para validar bloques, esto hace presión al alza en busca de vendedores. Al no tener costes que cubrir, no busca vender para pagarlos .

Comentarios