La guía autorizada para el desarrollo de blockchain

Criptomonedas, ICO, dinero mágico de Internet: todo es muy emocionante y usted, el desarrollador ansioso, quiere participar en la locura. Por donde empiezas

Me alegra que estés entusiasmado con este espacio. Yo también. Pero probablemente encontrará que no está claro por dónde empezar. Blockchain se está moviendo a una velocidad vertiginosa, pero no hay una vía de acceso clara para aprender estas cosas.

Desde que dejé Airbnb para trabajar a tiempo completo en blockchain, muchas personas se han acercado a mí para preguntarme cómo ingresar al espacio blockchain a tiempo completo. Considere esta mi guía autorizada (e inevitablemente incompleta) sobre cómo ingresar a la ingeniería blockchain.

Esta guía se dividirá en diez partes:

  1. ¿Por qué debería aprender a desarrollar blockchain?
  2. Prerrequisitos
  3. Los fundamentos teóricos de Bitcoin
  4. Construyendo una cadena de bloques usted mismo
  5. Ethereum y programación de contratos inteligentes
  6. Seguridad de contrato inteligente
  7. Quitarse las ruedas de entrenamiento
  8. Construyendo tus propios proyectos
  9. Navegando por la comunidad blockchain
  10. Conseguir un trabajo

¿Por qué debería aprender a desarrollar blockchain?

Antes de responder esa pregunta, permítanme una primera nota: blockchain es un espacio enormemente sobrevalorado en este momento. Estos precios son insostenibles y definitivamente se avecina una caída. Todo esto ha sucedido antes y probablemente vuelva a suceder. Pero si trabaja a largo plazo en este espacio, aprenderá a ignorar los precios. En palabras de Emin Gun Sirer, los precios son la parte menos interesante de las criptomonedas. Estas son tecnologías enormemente importantes y van a cambiar irrevocablemente el mundo.

Si no está seguro, no puedo decirle si debe saltar o no. Pero puedo decirle cinco razones que me convencieron de dar el salto:

  1. Todavía es temprano.

Bitcoin se inventó hace 10 años, pero la tasa de innovación solo ha alcanzado un punto álgido en los últimos años, especialmente con el lanzamiento de Ethereum en 2015. La mayoría de las nuevas empresas e ideas en este espacio se han construido sobre Ethereum, que todavía es muy inmaduro.

Incluso si comienza ahora, puede convertirse de manera realista en un experto de clase mundial en unos pocos años. La mayoría de la gente no ha estado haciendo esto durante tanto tiempo, y no será tan difícil ponerse al día. Comenzar ahora sería análogo a los expertos en aprendizaje profundo que comenzaron a estudiar el tema a fines de la década de 2000.

2. Este espacio aún no tiene un embudo de talento sólido.

La mayoría de los mejores y más brillantes estudiantes de las universidades se centran en el aprendizaje automático, la programación web o el desarrollo de juegos. Claro, las cadenas de bloques se están volviendo más sexys en el discurso público, pero siguen siendo un tema extraño y subversivo en el que apostar tu carrera.

Al principio, blockchain era exclusivamente el reino de cypherpunks, paranoicos y bichos raros. Eso solo ha comenzado a cambiar recientemente. Con solo ser un desarrollador curioso y de mente abierta, aportarás mucho valor al espacio.

3. Gran parte de la innovación ocurre fuera del ámbito académico.

Satoshi Nakamoto no era un académico hasta donde sabemos. Todavía no hay una universidad o institución que ofrezca una concentración coherente de blockchain. La mayor parte de la innovación aquí ha sido liderada por aficionados, emprendedores e investigadores independientes. Casi todo lo que necesita saber se encuentra en documentos técnicos, publicaciones de blogs, canales públicos de Slack y software de código abierto. Todo lo que necesita es arremangarse y lanzarse a la refriega.

4. La demanda de talento supera con creces la oferta.

Simplemente no hay suficientes desarrolladores en este espacio y no pueden capacitarse lo suficientemente rápido. Todos compiten para contratar talentos de blockchain y los proyectos están sintiendo la escasez de talentos. Muchas de las mejores empresas no pueden pagar a su gente lo suficiente para quedarse porque tienen demasiadas oportunidades. Si obtiene algunas habilidades en su haber, será fácil conseguir un trabajo.

5. Las criptomonedas son realmente geniales.

¿Dónde más se puede construir cosas de ciencia ficción como dinero descentralizado y criptográficamente asegurado? Es el salvaje oeste en este momento, y esto trae lo bueno y lo malo. El espacio podría necesitar más transparencia y, finalmente, llegará la regulación. Pero sin duda alguna, las criptomonedas son una de las áreas más innovadoras en las que puedes estar trabajando ahora mismo.

Naval Ravikant dijo en una entrevista reciente: la clave del éxito es darle a la sociedad las cosas que quiere, pero no sabe cómo conseguirlo por sí misma. No puedes ir a la escuela por esas cosas; si pudiera, el mundo ya tendría un suministro constante.

Así que construye algo que nadie más sepa construir. En este momento, las cadenas de bloques son nuevas y queda mucho por descubrir. Si logra construir el futuro de la tecnología descentralizada, el mundo lo recompensará generosamente.

Así que di que quieres ponerte el sombrero. ¿Qué necesitas saber antes de subir al ring?

Prerrequisitos

Recomiendo fortalecer su comprensión de los fundamentos antes de profundizar más. Las cadenas de bloques se construyen sobre décadas de investigación en informática, criptografía y economía. Satoshi Nakamoto era un renegado, pero también conocía bien la historia que le precedió. Para comprender por qué funcionan las cadenas de bloques, debe comprender sus bloques de construcción: qué vino antes de las cadenas de bloques y por qué esas cosas no funcionaron.

Estos son algunos buenos requisitos previos con los que debe familiarizarse, en orden de importancia.

Tenga en cuenta que estos enlaces son solo un punto de partida, probablemente querrá profundizar en muchos de estos temas.

Ciencias de la Computación

Estructuras de datos

Querrá estar familiarizado con las características y garantías de complejidad de las principales estructuras de datos: listas enlazadas, árboles de búsqueda binarios, mapas hash y gráficos (específicamente, gráficos acíclicos dirigidos que se destacan en las cadenas de bloques). Es útil haberlos construido desde cero para comprender mejor cómo funcionan y sus propiedades.

Criptografía

La criptografía es el homónimo y la base de las criptomonedas. Todas las criptomonedas utilizan criptografía de clave pública / privada como base para la identidad y autenticación. Recomendaría estudiar RSA (es fácil de aprender y no requiere una formación matemática muy sólida), luego mire ECDSA. La criptografía de curva elíptica requiere matemática significativamente más abstracta; no es importante comprender todos los detalles, pero sepa que esta es la criptografía que se usa en la mayoría de las criptomonedas, incluido Bitcoin.

La otra primitiva criptográfica importante es la función hash criptográfica. Estos se pueden utilizar para construir esquemas de compromiso y son la piedra angular de los árboles Merkle. Los árboles Merkle habilitan las pruebas Merkle, una de las optimizaciones clave que utilizan las cadenas de bloques para la escalabilidad.

Sistemas distribuidos

Hay algunos buenos libros de texto sobre sistemas distribuidos, pero es un área de estudio extensa y difícil. Los sistemas distribuidos son absolutamente esenciales para razonar sobre las cadenas de bloques, por lo que debe construir una base aquí antes de abordar la programación de cadenas de bloques.

Una vez que ya no vive en una sola máquina, debe comenzar a razonar sobre la coherencia y el consenso. Querrá saber la diferencia entre modelos de coherencia lineal y eventual. También querrá conocer las garantías de los algoritmos de consenso tolerantes a fallas, como Paxos y RAFT. Conocer las dificultades de razonar sobre el tiempo en un sistema distribuido. Aprecie las compensaciones entre seguridad y vitalidad.

Con esos antecedentes, podrá comprender las dificultades en torno al consenso tolerante a fallas bizantino, el principal requisito de seguridad de las cadenas de bloques públicas. Querrá aprender sobre PBFT, uno de los primeros algoritmos escalables que ofrece un consenso bizantino tolerante a fallas. PBFT es la base de muchos algoritmos de consenso de blockchain que no son de prueba de trabajo. Una vez más, no necesita comprender los detalles de cómo y por qué PBFT es correcto, pero obtenga la idea general y sus garantías de seguridad.

También es muy útil para comprender los métodos tradicionales de distribución de bases de datos (en esencia, las cadenas de bloques son bases de datos después de todo). Obtenga más información sobre la fragmentación (por ejemplo, mediante hash coherente), la replicación líder-seguidor y las confirmaciones basadas en quórum. Busque tablas hash distribuidas (DHT), como Chord o Kademlia.

Redes

La descentralización de blockchains se deriva en gran parte de su topología de red peer-to-peer. Como tal, las cadenas de bloques son descendientes directos de las redes P2P pasadas.

Para comprender el modelo de comunicación de blockchain, debe comprender los conceptos básicos de las redes informáticas: esto significa comprender TCP vs UDP, el modelo de paquete, cómo se ven los paquetes IP y aproximadamente cómo funciona el enrutamiento de Internet.

Las cadenas de bloques públicas tienden a difundir mensajes a través de protocolos de chismes mediante inundaciones. Es instructivo aprender la historia del diseño de redes P2P, desde Napster hasta Gnutella, BitTorrent y Tor. Las cadenas de bloques tienen su propio lugar, pero se basan en las lecciones de estas redes y en cómo fueron diseñadas.

Ciencias económicas

Las criptomonedas son inherentemente multidisciplinarias; esto es parte de lo que las hace tan fascinantes y radicales. Además de la informática, la criptografía y las redes, también están profundamente entrelazados con la economía. Las criptomonedas pueden derivar muchas propiedades de seguridad a través de sus estructuras económicas, lo que a menudo se denomina criptoeconomía . Como tal, la economía es esencial para comprender las criptomonedas.

Teoría de juego

La rama más importante de la economía que juega con las criptomonedas es la teoría de juegos, el estudio de recompensas e incentivos entre múltiples agentes. No es necesario ir muy profunda aquí, pero sí es necesario para entender las herramientas básicas de análisis de la teoría de juegos y cómo se puede utilizar para analizar los incentivos en una sola vez y reiteró juegos.

Dos conceptos clave en su repertorio deberían ser los equilibrios de Nash y los puntos de Schelling, ya que ocupan un lugar destacado en el análisis criptoeconómico.

Macroeconómica

Las criptomonedas no son solo protocolos, también son formas de dinero. Como tales, responden a las leyes de la macroeconomía (si es que pueden llamarse leyes). Las criptomonedas están sujetas a diferentes políticas monetarias y responden de manera predecible a la inflación y la deflación. Debe comprender estos procesos y los efectos que tienen sobre el gasto, el ahorro, etc.

Otro concepto económico valioso es la velocidad del dinero, especialmente en lo que corresponde a la valoración de una moneda.

Microeconomía

Las criptomonedas también están profundamente entrelazadas con los mercados, lo que requiere una comprensión de la microeconomía. Necesitará una fuerte intuición para las curvas de oferta y demanda. Debería poder razonar sobre la competencia y los costos de oportunidad (se aplicarán con frecuencia a la minería de criptomonedas). Para muchas distribuciones de monedas y sistemas criptoeconómicos, la teoría de las subastas ocupa un lugar destacado.

Espero que ya esté familiarizado con algunos de estos temas. Si es así, siéntase libre de hojearlos o saltarlos por completo.

Bien, a estas alturas ya ha revisado y apuntalado sus fundamentos (o tal vez se saltó un montón, ¿quién cuenta?), Así que ahora que tiene su teoría bajo control, comencemos con el desarrollo de blockchain.

Los fundamentos teóricos de Bitcoin

En octubre de 2008, Satoshi Nakamoto publicó un libro blanco en el que describía un protocolo para una moneda digital descentralizada. Llamó a este protocolo Bitcoin.

Antes de que pueda comprender las grandes ideas detrás de las cadenas de bloques, debe comenzar con Bitcoin y comprender la visión original de Satoshi.

Primero, recomiendo desarrollar sus intuiciones sobre la prueba de trabajo y la regla de elección de la bifurcación (también conocida como consenso de Nakamoto). Empieza aqui:

Recomiendo ver más de una explicación en video para tener la idea grabada en tu cabeza:

Excelente. Ahora que ha desarrollado su intuición, este artículo proporcionará una exposición más profunda de un extremo a otro de los componentes críticos de cómo funciona Bitcoin.

Construyendo una cadena de bloques usted mismo

Ahora que tiene la intuición de alto nivel, es hora de crear su propia cadena de bloques basada en prueba de trabajo. No se preocupe, es más fácil de lo que parece. Estos son algunos buenos recursos.

Primero, tengo una conferencia en video en la que explico exactamente cómo hacer esto en Ruby (recomiendo verla incluso si no eres un programador de Ruby):

Fuente y diapositivas aquí.

También hay otras implementaciones de blockchain que puede encontrar, escritas en varios lenguajes de programación. Continúe y construya el suyo propio, y asegúrese de que es principalmente funcional.

Una vez que haya llegado hasta aquí, debe tener una buena idea de cómo implementar una aplicación de pagos simple sobre una cadena de bloques (es decir, Bitcoin). A estas alturas, también debería tener suficientes antecedentes para poder leer y comprender el documento técnico original de Bitcoin.

Para comprender la economía y la mecánica de la minería de Bitcoin, recomiendo ver la conferencia sobre minería de Bitcoin en el curso de Bitcoin y Criptomonedas de Princeton.

Si ha llegado hasta aquí, debe comprender Bitcoin lo suficientemente bien como para recorrer un encabezado de bloque de Bitcoin y comprender lo que significa cada uno de sus componentes. También debería poder jugar con un explorador de bloques de Bitcoin y navegar por transacciones de Bitcoin sin procesar.

Ahora es un buen momento para estudiar la historia de Bitcoin y las criptomonedas. El siguiente video, ofrecido por una calcomanía de UC Berkeley, brinda una buena descripción general.

Algunos recursos crediticios adicionales:

  • Precursores académicos de Bitcoin
  • Mecánica de Bitcoin: UTXO y script de Bitcoin (el script de Bitcoin no es muy importante, solo sepa aproximadamente lo que puede hacer)
  • Breve guía de las bifurcaciones de Bitcoin
  • Horquillas blandas y señalización minera
  • Doble gasto, 51% de ataques y minería egoísta
  • Repetir ataques
  • Problemas de escalabilidad de Bitcoin, que es la fuente de la mayor parte de la controversia en el ecosistema de Bitcoin. Debería tener una idea de por qué la gente de Bitcoin discute tanto sobre el tamaño del bloque.
  • Testigo segregado, también conocido como SegWit, no es esencial pero surge mucho.
  • Lightning Network, una de las soluciones de escalado más importantes para Bitcoin, también se generaliza a otras blockchains
  • Nodos completos de Bitcoin, estadísticas de tarifas de Bitcoin, gráficos, gráficos y más gráficos
  • Índice de consumo de energía de Bitcoin (al momento de la publicación, la minería de Bitcoin consume tanta energía como todo el Perú)
  • Ensayo perspicaz de Gwern sobre la falta de elegancia de Bitcoin
  • Jameson Lopp tiene una gran cantidad de otros recursos sobre Bitcoin si desea profundizar en la madriguera del conejo.

Ethereum y programación de contratos inteligentes

Ahora que ha construido una cadena de bloques y comprende la dinámica de Bitcoin, es hora de profundizar en Ethereum.

Usted comprende cómo las cadenas de bloques y la prueba de trabajo pueden lograr un consenso bizantino tolerante a fallas distribuido dentro de una red peer-to-peer. Pero una red de pagos es solo una aplicación que puede ejecutar sobre dicha cadena de bloques. En 2013, Vitalik Buterin, el creador de Ethereum preguntó: ¿qué pasa si usa una cadena de bloques para implementar una computadora descentralizada?

En Ethereum, paga a los mineros para que ejecuten sus programas en esta máquina virtual distribuida. Esto significa que puede realizar cálculos arbitrarios, utilizando un lenguaje de programación completo de Turing (a diferencia del script de Bitcoin). Obviamente, eso incluye aplicaciones relacionadas con pagos, por lo que Ethereum habilita un superconjunto de la funcionalidad de Bitcoin y ha dado lugar a un renacimiento de la innovación.

Esto nos lleva a los contratos inteligentes, el nombre de los programas que se ejecutan en una máquina virtual de este tipo. Un contrato inteligente puede interactuar directamente con la criptomoneda de blockchain de acuerdo con la ejecución de un programa. En otras palabras, puede crear contratos financieros que se hagan cumplir automáticamente. Es una idea descabellada y todo tipo de cosas futuristas de ciencia ficción que puedes hacer una vez que adoptas este modelo de programación.

Ethereum ha habilitado la ola de ICO y desarrolladores que construyen sobre blockchain. Es la segunda criptomoneda más grande detrás de Bitcoin, tiene más de 10 veces los desarrolladores de la siguiente plataforma más popular, tiene el equipo de desarrolladores más fuerte, las herramientas más maduras y la mayoría de ICO y proyectos encima. También cuenta con el mayor apoyo de la industria, lo que es muy útil. Con toda probabilidad, si está desarrollando blockchain, estará escribiendo código para contratos inteligentes de Ethereum. (Incluso si no lo está, es esencial comprender lo que sucede en este espacio).

Primero, una explicación de alto nivel más detallada de Ethereum:

Las ideas detrás de Ethereum también han generado una ola de innovación en criptoeconomía. Debes sumergir los dedos de los pies en las ideas sobre los DAO y todos los sueños febriles de ciencia ficción que insinúan.

Bien, ya es suficiente fantasía, profundicemos en la tecnología.

Aquí hay una buena descripción general del papel amarillo Ethereum y sus componentes internos, por Preethi Kasireddy. Ethereum usa un modelo de cuenta en lugar del modelo UTXO de Bitcoin; pronto verá por qué esto facilita la redacción de contratos inteligentes.

Al igual que con cualquier tecnología, la mejor manera de familiarizarse con Ethereum es construyendo algunos proyectos pequeños.

El lenguaje de programación dominante para Ethereum es Solidity, que es un lenguaje JavaScript de tipo estático. Es un lenguaje con muchas verrugas y muchas opciones de diseño cuestionables. Los lenguajes más robustos como Viper pueden reemplazarlo una vez que estén listos para la producción, pero por ahora Solidity es la lengua franca de la programación de contratos inteligentes. Es básicamente el JavaScript de Ethereum, por lo que deberá aprenderlo (y sus trampas).

Para obtener su primera exposición al desarrollo de Solidity, le recomiendo trabajar con todos los tutoriales de CryptoZombies. Es un tutorial delicioso y de alta calidad al estilo de Codecademy que te enseñará los conceptos básicos de la programación de Solidity.

Ahora que ha abierto su apetito, es hora de que se desarrolle por su cuenta.

El "hola mundo" de Ethereum está construyendo un token compatible con ERC-20. Recomiendo esta guía como primer tutorial para guiarlo a través del proceso.

Remix es un editor y compilador de Solidity en el navegador; es básicamente las ruedas de entrenamiento del desarrollo de Ethereum, por lo que recomiendo trabajar con el resto de su práctica en Remix. Pero también vale la pena configurar una cadena de bloques local y tener una idea de las herramientas de Ethereum. Este tutorial hace un buen trabajo al guiarlo a través de una pila de blockchain de un extremo a otro y explicar las piezas a medida que avanzan.

A continuación, recomendaría crear un sistema de votación. Llamaría a esto la aplicación Todo de Ethereum. Karl Floersch tiene un excelente tutorial en el que explica cómo construir un sistema seguro de votación de compromiso y revelación.

Genial, ahora para su examen de mitad de período: cree un juego de lanzamiento de moneda seguro, donde dos jugadores pueden apostar de forma segura en el lanzamiento de moneda. Sin tutorial esta vez, hazlo por tu cuenta. Piense en posibles ataques: ¿cómo pueden hacer trampa los jugadores? ¿Puede asegurarse de que jueguen honestamente? A continuación se ofrecen algunas sugerencias.

Seguridad de contrato inteligente

La seguridad es absolutamente esencial para el desarrollo de blockchain. Los contratos inteligentes han estado plagados de hacks desastrosos, incluido el hack de DAO, el hack de Parity Wallet y el cariñosamente llamado Parity Wallet hack 2 (ahora con su propia camiseta). Es absolutamente necesario que lea los análisis de estos tres trucos si va a escribir contratos inteligentes de producción.

La verdad es que los contratos inteligentes son extremadamente difíciles de hacer bien . Aunque la cadena de herramientas de programación mejorará para hacer que estos ataques exactos sean más difíciles, en última instancia, todos se debieron a un error del programador. También hay muchos errores más sutiles que surgen de la programación de contratos inteligentes, como en la generación inicial o segura de aleatoriedad.

Como desarrollador de contratos inteligentes, debe tratar la seguridad como algo primordial. No hay "moverse rápido y romper cosas" en la programación de contratos inteligentes. Eso significa que cualquier código que maneje flujos de dinero significativos debe ejecutarse a través de analizadores estáticos como Oyente o Securify, probarse a fondo y luego auditarse por un auditor de contratos inteligentes con experiencia. También debe intentar confiar en componentes previamente auditados, como los contratos de código abierto de OpenZeppelin.

Para fortalecer tus habilidades de seguridad, te recomiendo trabajar con The Ethernaut de OpenZeppelin, un juego en el que encuentras y atacas vulnerabilidades en los contratos inteligentes. Muchos de ellos te hacen replicar ataques reales contra contratos inteligentes que se han producido en la naturaleza.

Phil Daian también tiene un excelente conjunto de desafíos de piratería de contratos inteligentes llamado Hack This Contract.

Una vez que supere eso, le recomiendo leer la totalidad de las Mejores prácticas de contratos inteligentes, compiladas por ConsenSys. Espere volver a visitar este documento muchas veces en su carrera de programación de contratos inteligentes. También vale la pena explorar la bibliografía para que los expertos en seguridad la sigan leyendo.

Quitarse las ruedas de entrenamiento

Si ha llegado hasta aquí, ahora debería estar listo para dejar atrás Remix y comenzar a usar una pila de desarrollo de Solidity seria.

La mayoría de los desarrolladores recomiendan VSCode o Atom para su editor de texto, ya que tienen complementos de Solidity decentes. Para interactuar con una cadena de bloques local, querrá usar Ganache (anteriormente TestRPC), y querrá usar el marco Truffle para sus pruebas (basadas en JS) y configurar su canal de compilación.

Ahora es un buen momento para investigar IPFS, que puede usar como un almacén de archivos completamente descentralizado a un costo mucho más económico que la cadena de bloques Ethereum. Aquí hay una breve explicación del creador, Juan Benet:

Para interactuar con los nodos completos de Ethereum e IPFS, Infura es lo que recomiendan la mayoría de los desarrolladores. Etherscan y ETH Gas Station proporcionan estadísticas útiles en tiempo real en la red Ethereum.

Una vez que haya configurado su pila Web3 completa, intente implementar una Dapp de extremo a extremo (aplicación descentralizada). Este tutorial proporciona una buena descripción general de la pila completa utilizando Node y Postgres para el backend, y este tutorial le mostrará cómo crear una aplicación completamente descentralizada, utilizando IPFS como su capa de persistencia.

Construyendo tus propios proyectos

Ahora debería sentirse cómodo con la mayor parte de la tecnología; lo que queda es comenzar a construir cosas y profundizar en la comunidad blockchain.

Primero, comience a construir sus propios proyectos. Si hay alguna gran idea que te entusiasme, ¡compárala y convence a otros para que la pirateen contigo! Si aún no tiene una idea o no se siente cómodo con ensuciarse las manos, existen muchos proyectos de código abierto de alta calidad que agradecen las contribuciones. OpenZeppelin podría ser un buen lugar para comenzar con los contratos inteligentes.

Mejor aún, recomendaría comenzar por encontrar un proyecto desarrollado activamente del que seas fan. Póngase en su Slack o Rocketchat: los desarrolladores suelen ser fácilmente accesibles. Dígales que le gustaría contribuir y solicite algunas tareas pequeñas (o encuentre problemas sin resolver en su Github).

Tenga en cuenta que si bien me he centrado en protocolos y desarrollo de contratos inteligentes, las empresas de blockchain necesitan desarrolladores web para desarrollar su funcionalidad principal. Estos roles a menudo requerirán interactuar con cadenas de bloques, por lo que es esencial tener un buen modelo mental de cómo funcionan las cadenas de bloques, pero para muchos ingenieros en nuevas empresas de cadenas de bloques, la mayor parte de su trabajo consistirá en construir un servidor web Python o diseñar una interfaz React, y interactuar con la cadena de bloques puede ser una pequeña parte de ese trabajo. No tiene que especializarse en el desarrollo de contratos inteligentes; en realidad, eso es solo una parte de una pila de blockchain en funcionamiento.

Más allá de las contribuciones de código abierto, también surgen constantemente muchos hackatones de blockchain. La mayoría de los proyectos tienen un Slack público gratuito al que puedes unirte, y hay un canal de Gitter muy activo para el propio Ethereum donde pasan el rato muchos desarrolladores. A medida que profundiza en el espacio, eventualmente encontrará su grupo de pares, ya sea en un canal de Slack, un grupo de Telegram o un canal de Gitter. Donde sea que esté, encuentre a su gente y continúe aprendiendo.

Navegando por la comunidad blockchain

La mejor manera de comprender realmente el mundo blockchain es sumergirse en él. Lea y escuche a las personas más inteligentes, especialmente lo que han escrito en el pasado. Ésta ha sido siempre mi estrategia al intentar aprender un nuevo dominio, y me ha pagado dividendos.

Hay mucho contenido bueno de blockchain, pero también hay mucha basura. Aquí está la información sobre la dieta que recomiendo.

Medios de comunicación

Los tres fantásticos podcasts que recomiendo son las entrevistas de Software Engineering Daily Blockchain, que brindan buenas introducciones técnicas a muchos temas y criptomonedas. A partir de ahí, recomiendo Epicenter y Unchained: querrá volver y escuchar muchos de los episodios más antiguos. Otro podcast técnico interesante y prometedor es Conspiratus. Recomiendo suscribirse a cada uno de estos.

Hay algunos buenos canales de Youtube (aunque hay toneladas de basura en Youtube). Suscríbase a la Fundación Ethereum y vea las presentaciones de Devcon3. Blockchain en Berkeley registra muchas de sus conferencias, la mayoría de las cuales son excelentes descripciones técnicas. Decypher Media también publica charlas, reseñas de documentos técnicos y tutoriales. Jackson Palmer tiene interesantes resúmenes semanales, estos son menos técnicos pero se presentan de manera muy uniforme.

Lectura en línea

Para la charla de blockchain en tiempo real, vive principalmente en dos lugares: Reddit y Twitter. Para Reddit, la mayoría de los subreddits son de muy baja calidad y están dominados por el ruido. r / Ethereum tiene una calidad consistentemente decente (y hay algunos subreddits aceptables para criptomonedas específicas). Sin embargo, la mayoría de los subreddits están dominados principalmente por especuladores y no son un buen uso de tu atención. Manténgase alejado de los subreddits relacionados con Bitcoin. Bitcoin tiene notoriamente una de las comunidades más tóxicas, y Reddit solo magnifica eso.

Twitter es más una bolsa mixta. Para bien o para mal, la mayoría de la gente de blockchain vive en Twitter. Blockchain Twitter era un misterio para mí al principio, pero finalmente desarrollé una ontología informal de la gente de blockchain de Twitter. Según mi experiencia, hay cinco tipos de personalidades de blockchain: los constructores, los emprendedores, los periodistas, los comerciantes y los "líderes de opinión".

Evite los "líderes de opinión" como la plaga. Los emprendedores pueden estar bien, aunque en su mayoría actúan como fanáticos o tuitean sobre sus propios proyectos. Los inversores en su mayoría tuitean sobre precios y proyectos exagerados, así que si eso es lo tuyo, eso es lo tuyo. Los periodistas tienden a tuitear sobre las principales noticias del día; recomiendo mantenerse alejado a menos que necesite un análisis en tiempo real, lo cual probablemente no sea necesario. Si es un comerciante activo, puede ser importante, pero si está tratando de construir sobre la cadena de bloques, la mayoría de las cosas en tiempo real son una distracción.

Preste la mayor atención a los constructores. Son las personas que más importan en este momento y que están impulsando la tecnología.

Algunos representantes de cada categoría (haga una búsqueda amplia de a quién siguen estas personas si desea completar su cuenta de Twitter):

Constructores

  • Vitalik Buterin, Ethereum
  • Zooko Wilcox, ZCash
  • Nick Szabo, inventor de contratos inteligentes
  • Vlad Zamfir, Ethereum
  • Marco Santori, Cooley LLP
  • Riccardo "fluffypony" Spagni, Monero
  • Matt Liston, Gnosis

Emprendedores

  • Balaji Srinivasan, Earn.com
  • Erik Voorhees, Cambio de forma

Inversores

  • Ravikant naval, MetaStable
  • Ari Paul, Capital de Blocktower
  • Linda Xie, Capital escalar
  • Chris Burniske, marcador de posición

Periodistas

  • Tuur Demeester, Investigación constante
  • Laura Shin, Forbes

(También deberías seguirme, aunque definitivamente no pertenezco a esta lista).

Dicho todo esto, recomiendo minimizar su exposición a Twitter y Reddit. Si no es un periodista o un comerciante diario, lo más probable es que no necesite una manguera de fuego de charla en tiempo real. La información importante le aparecerá de forma asincrónica. Hay varios resúmenes de buenas noticias que resumirán las noticias más importantes del día / semana que puede consumir en su propio tiempo sin estar a merced de los mercados de atención.

Recomiendo suscribirse a Inside Bitcoin para obtener resúmenes diarios de las noticias sobre criptografía más importantes (cubre más que solo Bitcoin). Para los proyectos de token, Token Economy tiene excelentes reseñas semanales, y Week in Ethereum tiene buenos resúmenes de los acontecimientos centrados en los desarrolladores en el ecosistema Ethereum.

Más allá de esto, probablemente no necesite estar monitoreando las noticias en tiempo real. Concéntrese en construir cosas y aprender.

Querrás seguir los mejores blogs. El contenido de formato largo tiende a ser la mejor opción para el dinero. Recomiendo seguir estos:

  • Vitalik Buterin por su excelente análisis de blockchain y criptoeconomía (lea también todas sus publicaciones de blog más antiguas, Vitalik es ampliamente considerado como un pensador único en una generación)
  • Hacking, distribuido para análisis de seguridad de blockchain por investigadores de Cornell
  • Sin enumerar, el blog estrella de Nick Szabo con ensayos desafiantes y eclécticos sobre el papel de las criptomonedas en la sociedad.
  • Money Stuff, la sindicación de Bloomberg de Matt Levine, con un análisis penetrante y profundo que toca la intersección de los mercados, las finanzas y las noticias de blockchain
  • Vlad Zamfir por perspectivas moderadas y cautelosas sobre el estado y las cadenas de bloques públicas
  • Chris Burniske por una serie de excelentes publicaciones de blog sobre cómo valorar los activos criptográficos
  • Jameson Lopp por sus excelentes publicaciones técnicas desde la perspectiva de un ingeniero de software que construye para el ecosistema blockchain.
  • Great Wall of Numbers de Tim Swanson, por su deconstrucción sobria e inquebrantable de la manía blockchain, especialmente en el espacio empresarial

(También debería leer mi blog, aunque de nuevo, no pertenezco del todo a esta lista).

Libros y cursos

Si desea un enfoque más estructurado para aprender este material, existen algunos libros y cursos de alta calidad (y muchos de baja calidad).

El mejor libro de texto general para blockchains es Bitcoin and Cryptocurrency Technologies (que acompaña al curso de Princeton Coursera). Los únicos otros libros que recomendaría en este espacio son Mastering Bitcoin de Andreas Antonopoulos, y su próximo Mastering Ethereum, coautor del cofundador de Ethereum, Gavin Wood (ambos publicados por O'Reilly). El único libro no técnico que recomendaría es Digital Gold de Nathaniel Popper. Prácticamente todo lo que vale la pena leer estará en blogs, no en libros: este espacio se mueve tan rápido que las figuras más importantes rara vez tienen tiempo para escribir libros, y los libros suelen estar desactualizados cuando se publican.

Si desea un enfoque más estructurado para aprender este material, existen algunos cursos de alta calidad (y muchos de baja calidad). Ya me he vinculado a un par de conferencias del curso de Princeton Coursera (los videos también están en Youtube) y la calcomanía de UC Berkeley. También he escuchado cosas buenas sobre Consensys Academy para personas que quieren participar en el desarrollo de contratos inteligentes.

También estoy impartiendo un seminario de 4 semanas sobre criptomonedas para desarrolladores de software en la Bradfield School of Computer Science en SF. El curso es en persona solo en SF y los asientos son limitados, ya que es una clase pequeña y profunda estilo seminario. Pero si eres un ingeniero de software en SF y quieres aprender más sobre la teoría y la práctica detrás de las criptomonedas, podría ser una buena opción para ti.

Conseguir un trabajo

Como dije antes, las startups de blockchain están contratando como locas. Si realmente ha llegado hasta aquí y ha hecho incluso la mitad de las cosas que sugerí, probablemente ya sea empleable en este espacio. AngelList hizo un gran artículo sobre cómo conseguir un trabajo en el espacio criptográfico.

Hay varios buenos agregadores para las ofertas de trabajo relacionadas con blockchain:

  • Startups criptográficas AngelList
  • BlockchainJobz
  • Empleos en Ethereum
  • Estar en Crypto
  • Tablero de trabajo de Blockchain
  • Lista de trabajos criptográficos
  • Trabajos de Google (consulta de búsqueda de blockchain)
  • Empleos de ConsenSys (estudio de riesgo de Ethereum con muchos proyectos bajo su paraguas)

Algunas startups de blockchain particularmente prometedoras que sé que están contratando desarrolladores:

  • 0x
  • Laboratorios Dharma
  • Cívico

También hay una serie de empresas más grandes en el mercado de desarrolladores de criptografía:

  • Coinbase, el Google de las criptomonedas, siempre está contratando como loco
  • Stellar y Ripple si desea trabajar directamente en criptomonedas más amigables para las empresas
  • Square ha integrado algo de blockchain, aunque no está seguro de si están contratando externamente
  • IBM, Visa o JP Morgan si quieres darle una patada a la vieja escuela

(Tenga en cuenta que esta lista específica de empresas está muy centrada en el Área de la Bahía, porque ahí es donde vivo, por lo que su kilometraje puede variar. Sin embargo, los agregadores de trabajos son más globales).

Pero en mi opinión, la mejor manera de involucrarse en una empresa es encontrar un proyecto que le entusiasme y comunicarse con ellos directamente. La mayoría de los equipos de blockchain están dispuestos a contratar controles remotos para el talento adecuado. Muchos desarrolladores son fácilmente accesibles en Twitter, Github o en sus canales públicos de Slack. Si tiene una cartera sólida y puede demostrar habilidades técnicas, la mayoría de la gente quedará impresionada si muestra alguna iniciativa.

Y eso es todo lo que tengo para ti. Si ha hecho todo lo anterior, debería estar listo, y probablemente estará incluso más lejos que yo en poco tiempo.

El agujero de gusano del conejo

Lo que les he mostrado es solo el comienzo. Las criptomonedas aún están en su infancia, y realmente creo que es el espacio que evoluciona más rápidamente en el que puede trabajar. Estoy seguro de que esta guía estará desactualizada dentro de un año, y hay tantos proyectos increíbles que no tengo. Tuve la oportunidad de hablar. Pero si te adentras en este espacio, los encontrarás a su debido tiempo.

Seguir explorando. Sigue mejorando. Seguir aprendiendo.

Y espero que te unas a nosotros.

Haseeb