⛓️ La Cadena #4: inmutabilidad diabólica 😈, el blockchain es lento 🐌 e impuestos 💸
Hace dos semanas inicié mi proyectito para entender en detalle todos los productos financieros tradicionales con el objetivo de diseñar las mejores soluciones para su tokenización. La primera conclusión es que es un proyecto GRANDE. La segunda es que la CNMV (en contra de lo que pensaba), tiene bastantes recursos formativos y divulgativos que no están mal del todo. Por ejemplo este y este. El proyecto sigue en marcha. Ya os iré contando.
Otra cosa que ha requerido bastante de mi tiempo ha sido la declaración del IRPF... Si estás en ello, ánimo, te entiendo muy bien 🤣. Precisamente sobre criptoactivos e impuestos te explico algunas cosas en esta edición.
Pues sin más dilación, veamos cómo viene hoy "La Cadena".
En esta edición
- La inmutabilidad de los smart contracts la carga el diablo 😈
- El blockchain es lento, ¿o no? 🐌 ⚡️
- A nadie le gusta pagar impuestos... 💸
- Algunos recursos interesantes 📚
- "Cointelegraph Research - Blockchain uses cases and adoption report" 📈
- "web3 with a16z crypto" 🎙️
La inmutabilidad de los smart contracts la carga el diablo 😈
Siempre se vende la inmutabilidad del blockchain como algo positivo. Sin embargo, tiene su lado oscuro que hay que conocer para poder controlarlo.
Una de las principales ventajas de los smart contracts es que una vez están desplegados en el blockchain permanecerán allí para siempre y de manera inmutable. Esto es bueno porque garantiza a las partes que las reglas del juego que se pactaron nunca cambiarán.
Ahora bien la inmutabilidad puede tener unos efectos colaterales no deseados. El principal es que un smart contract puede contener errores.
Un smart contract no es más que un programa informático y como tal puede contener bugs 🦟 (errores de programación). Un bug puede manifestarse como un efecto colateral sin importancia o, por desgracia, como un agujero de seguridad. La inmutabilidad impide al programador o a las partes corregir el error en el código (o al menos hacerlo fácilmente) con lo que puede tener graves consecuencias.
Estos errores de programación y sus consecuencias no son teóricos. Ya ha habido ataques apoyados sobre fallos de seguridad y que una vez detectados no se pudo hacer nada para corregirlos. Algunos de los más tristemente famosos son:
🦹♀️ "The DAO Hack", en el que el atacante consiguió sustraer una tercera parte de todos los fondos almacenados en The DAO, aproximadamente unos 3,6 millones de Ether.
👛 "The Parity Wallet Hack". Parity proporcionaba bibliotecas de código para que terceros implementaran sus propios smart contracts sin partir de cero. Una de esas bibliotecas proporcionaba código para implementar wallets multi-sig que tenía una vulnerabilidad que habilitó varios ataques a proyectos que habían usado ese código. La consecuencia fue el robo o bloqueo de aproximadamente 666.773 Ethers.
¿Qué puede hacerse para prevenir estos errores?
- Ser muy exigente con el ciclo de desarrollo, aplicando escrupulosamente todas las técnicas y metodologías de desarrollo de software de calidad (testing, revisión, integración continua, análisis estático, etcétera).
- Utilizar lenguajes de smart contracts de bajo nivel que permitan derivación matemática del código y/o verificación formal.
- Aprender patrones y utilizar bibliotecas de código de smart contracts de actores reconocidos como las de OpenZeppelin.
- Realizar auditorías de seguridad antes de salir a producción por terceros de reconocido prestigio como OpenZeppelin, ConsenSys o Hacken.
- Implementar un programa de recompensa (más conocido en el mundillo como bug bounty program) en el que se premia con recompensas (efectivo, criptomoneda, reconocimiento, etc.) a aquellos individuos que reportan los bugs sin explotarlos.
- Contar con asesoramiento legal adecuado para construir un marco que permita solucionar problemas off-chain cuando sea posible.
Si quieres profundizar en qué son y cómo se usan los smart contracts, échale un vistazo a mi artículo donde lo explico con más detalle 👇
El blockchain es lento, ¿o no? 🐌 ⚡️
La red de Bitcoin soporta actualmente unas 7 transacciones por minuto (mientras que la de Visa ha soportado picos de 47.000) y los recursos de computación de Ethereum se comparan con los de un ordenador doméstico de los 70.
¿Por qué los principales blockchains son tan lentos? Por diseño técnico deliberado 🤔.
Se considera que el blockchain ideal tiene tres características fundamentales:
- 🌍 Es descentralizado. La red no está controlada por una entidad central, compañía o gobierno y, al contrario, se distribuye entre una gran cantidad de grupos pequeños.
- 🔐 Es seguro. Aunque los blokchains son inherentemente seguros, si un atacante pudiera controlar más de la mitad de los nodos podría manipular transacciones o incluso robar. En un blockchain, cuantos más nodos más seguridad.
- 🚀 Es escalable. Lo podemos pensar como la capacidad del blockchain de seguir funcionando adecuadamente a medida que se incrementa el número de usuarios, de transacciones o de cantidad de información.
Sin embargo el "trilema del blockchain" enunciado por Vitálik Buterin explica que a la hora de diseñar tecnológicamente un blockchain es muy complicado maximizar las tres características simultáneamente y por eso la mayoría de proyectos opta por maximizar dos y sacrificar la tercera.
Tanto Bitcoin como Ethereum han preferido maximizar la descentralización y la seguridad y por tanto sufren para escalar 🐌.
Escalando Bitcoin, la Lightning Network
La Lightning Network es una red que se ejecuta encima de Bitcoin y que permite:
🚀 transacciones inmediatas y
🤑 con tarifas bajísimas.
El truco consiste ejecutar la mayoría de transacciones fuera de la red de Bitcoin (off-chain), postponiendo hasta el último momento la escritura del estado en el blockchain de Bitcoin. Por tanto, la mayoría del tiempo no nos afecta el bajo número de transacciones por segundo soportadas por Bitcoin.
¿Cómo funciona?
- Las transacciones se hacen entre pares de individuos.
- Para poder intercambiar bitcoins, cada par abre lo que se denomina un "canal".
- Las dos partes hacen transacciones sobre ese canal. Acuerdan el balance de cada parte sin comunicarlo al resto del blockchain de Bitcoin (off-chain).
- En cualquier momento cualquiera de las partes puede abandonar el canal lo que fuerza una escritura del estado actual de los balances en el blockchain de Bitcoin.
Lo bonito de Lightning es que todas las transacciones que se ejecutan off-chain tienen una prueba criptográfica así que cualquiera de las dos partes, sin cooperación de la otra y en cualquier momento, puede escribir en el blockchain de Bitcoin el estado (balance actual).
Así pues, mientras las partes cooperan y están de acuerdo no hace falta escribir en el blockchain de Bitcoin (teniendo inmediatez y tarifas bajísimas). En el momento que no se pongan de acuerdo sólo hay que abandonar el canal con la garantía que (gracias a las pruebas criptográficas) el blockchain de Bitcoin resolverá el conflicto determinísticamente y en un tiempo razonable (usualmente no más de 10 minutos).
La velocidad y los bajos costes de Lightning habilitan una gran cantidad de nuevos casos de uso para Bitcoin, desde micropagos hasta pagos "fluidos" (¿te imaginas ir cobrando el sueldo en tu cuenta minuto a minuto?).
Escalando Ethereum
Ethereum se ha convertido en el blockchain por defecto y con más éxito para implementar soluciones que requieren de smart contracts. Plataformas tales como exchanges decentralizados (DEXes), DeFI, NFTs o aplicaciones descentralizadas (dApps) en general.
Podemos pensar Ethereum como un ordenador distribuido por todo el globo 🌐. El principal problema que tiene es que el número de operaciones que pueden ejecutarse por unidad de tiempo es muy bajo y por tanto es lento.
Si combinamos este bajo rendimiento con una alta demanda derivada de su popularidad, la consecuencia es una subida considerable de las comisiones de red 💸.
Esto se debe a que los los nodos que construyen los bloques y que añaden las transacciones al blockchain van a priorizar aquellas que incluyen una mayor recompensa (los usuarios que envían operaciones a la red pueden elegir qué recompensa adicional proporcionan a estos nodos para tener más oportunidades de ser priorizados).
¿De qué mecanismos dispones para hacer más rápido este ordenador distribuido y por tanto mantener el coste de las transacciones a raya?
1️⃣ Cambios en la arquitectura de Ethereum
Algunos de los cambios previstos en el roadmap actual incluyen la introducción de "sharding" (o que los nodos que operan el blockchain no necesiten descargar y procesar toda la información) y la eliminación de datos históricos que ya no son necesarios.
Las previsiones técnicas auguran una mejoría del rendimiento de dos órdenes de magnitud (100 veces más rápido). No hay una fecha prevista para la puesta en producción de estas mejoras pero es el próximo gran desarrollo previsto, conocido como "The Surge".
2️⃣ Uso de blockchains de capa 2 (L2 en inglés) que ejecutan parte de la actividad fuera del blockchain de Ethereum pero que mantienen interoperabilidad con este. En l2beat puedes ver los principales proyectos con esta aproximación, entre los que destacan:
3️⃣ Otra opción es la utilización de blockchains alternativos a Ethereum que en el trilema eligen poner foco en el rendimiento. Algunos de los ejemplos más prominentes son:
Y en realidad, todo se mezcla: las mejoras en Ethereum proporcionarán más opciones técnicas a las soluciones L2 y algunos blockchains alternativos, como Polkadot, se basan en construir protocolos multiblockchain que puedan ejecutar smart contracts en diferentes cadenas.
A nadie le gusta pagar impuestos... 💸
... pero si tienes criptoactivos y vives en España, te toca declarar.
Dejando al margen la opinión que cada uno tenga del hecho de contribuir, lo cierto es que es una obligación legal y por tanto es mejor hacerlo bien.
Calcular los impuestos de los criptoactivos no es especialmente fácil. Estos son algunos retos:
- 🌐 La descentralización inherente de la industria hace que también la información esté muy dispersa y que se haga complicado recopilarla para poder presentarla adecuadamente. Vas a necesitar datos de exchanges, wallets, protocolos DeFI, etcétera y luego clasificarlos adecuadamente: compras, ventas, plusvalías...
- 🏦 Además tendrás que declarar correctamente conceptos propios del mundo cripto como airdrops, staking, farming, NFTs...
- 🧻 Finalmente, una vez tengas claro lo anterior vas a tener que saber cómo completar las casillas correspondientes en el formulario del IRPF (que cambia cada año).
¿Cómo puedes ayudarte a hacerlo más fácil?
👩💻 Utilizando software para "recentralizar" la información y automatizar algunos procesos como el cálculo de ganancias o pérdidas. Estos programas importan la información de tus criptoactivos desde todos los lugares en los que se encuentren (exchanges, wallets y en algunos casos protocolos DeFI) y dan una visión global de portfolio.
Por ejemplo, las siguientes plataformas pueden ayudarnos mucho en hacer los cálculos que la Hacienda española quiere de nosotros:
👩💼 Contratando los servicios de gestores especializados en criptoactivos que te ayuden a "cuadrar" las cuentas, completar la declaración y generar un informe que avale que lo has hecho bien por si Hacienda pregunta en algún momento 😨
En España ya tenemos unos cuantos, como por ejemplo los siguientes.
- Jesus Lorente Ariza de CLCRIPTO
- Jose Antonio Bravo Mateu de Àgora
- Pablo Vikay de Vikay
- Cristina Carrascosa Cobos de ATH21
Que quede claro que yo no recomiendo ningún software ni ningún gestor en particular, sólo quería presentaros algunas opciones por si estabais sudando frío estos días que se va acercando el final de la campaña...
¡Ánimo con los impuestos, que estamos ya en las últimas semanas para declarar! 💪
Algunos recursos interesantes 📚
- "Cointelegraph Research - Blockchain uses cases and adoption report" 📈 - Es un informe publicado en marzo que hace un buen repaso del estado actual de la aplicación de cripto a casos de uso reales. Lo hace a vista de pájaro y de manera bastante divulgativa. Es un buen sitio donde empezar para entender dónde está la industria sin demasiados agobios por parte de un lector principiante.
- "web3 with a16z crypto" 🎙️ - El podcast de a16z crypto (en inglés) para estar al día de todo lo que pasa en la industria cripto y de la web3. A veces más técnico, a veces más divulgativo, es uno de los que consumo habitualmente.
Comparte La Cadena 📢
Si crees que estos contenidos pueden ser interesantes para alguien, ¡no dudes en compartirlos! Puedes reenviar este email o, para tu comodidad, hacer un "copy & paste" de lo siguiente y compartirlo por cualquier medio:
- Suscribirse a las newsletters de Iván Párraga 👇
https://www.ivanparraga.com/la-cadena/#/portal/signup - Seguir a Iván Párraga en LinkedIn 👇
https://www.linkedin.com/in/ivanparragagarcia/
También puedes ayudarme a llegar a más gente dejando un testimonio sobre cómo te ha ayudado o por qué te gusta la newsletter.
🙏 Gracias
¿Puedo ayudarte en algo? 🛟
Actualmente ofrezco servicios de consultoría y acompañamiento en los siguientes temas:
- 🏦 fintech, lending y pagos en particular,
- 💳 arquitectura de sistemas con medios de pago y flujos monetarios sofisticados entre varias entidades,
- ⛓️ blockchain y tokenización,
- 🎢 fases iniciales de empresas tecnológicas (startups) y
- 🧑🏻💻 estructura y organización de equipos técnicos.
Recuerda, tienes mi perfil de LinkedIn y mi correo electrónico (ivan_parraga@hey.com). ¡Comunícate conmigo para lo que quieras! En particular para explicarme sobre qué quieres aprender o cómo podría ayudarte.