Blockchain - [De Cero A Héroe] 1

Iniciado por Andrey, Febrero 27, 2018, 12:21:25 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Criptomonedas, ICO's, dinero de internet, como lo conozcas o llames es emocionante, quieres ser parte de esto y no sabes cómo, no te preocupes a continuación te diré lo que necesitas para ser un desarrollador entusiasta de este mundo Blockchain.

Primero que nada decir que probablemente te des cuenta que no es muy claro donde comenzar, ya que Blockchain no deja de moverse a una velocidad incontenible, por lo cual hace esta guía inevitablemente incompleta.

Una última aclaración: la guía esta en español pero los links re direccionan a páginas y videos en inglés, las paginas pueden ser traducidas mediante el navegador y la mayoría de los videos tienen subtítulos si los activan, claro para los que no dominan el inglés.

¿Porque Blockchain?

Primero señalar que es un espacio demasiado sobrevalorado en este momento. Los precios se vuelven insostenibles, y producen un colapso, esto ha sucedido y volverá a suceder. Hay que trabajar a largo plazo en este tema para aprender a ignorar los precios. En palabras de un experto: "La parte menos interesante de las criptomonedas, son los precios". Son tecnologías tan importantes que van a cambiar el mundo, queramos o no.

Pero si no estas seguro, no soy quien para evitar que intervengas. Quizá solo te pueda dar razones para convencerte de ingresar en este mundo:

1 - Estas a tiempo
Bitcoin se creó hace 10 años, pero su tasa de innovación ha sido solo en los últimos años, en específico con la creación de Ethereum en el año 2015. La actual gran mayoría de empresas recientemente creadas con base en Ethereum, el cual tiene todavía demasiado por desarrollar.
Si te decides por comenzar puedes convertirte en experto de nivel internacional en unos pocos años. La gente no se dedica completamente a esto por lo que no será complicado ponerse al día.

2 - Aun no existen talentos fuertes en esta, vamos a llamarla "materia"
Normalmente los más dedicados se enfocan a estudiar programación web, se ponen a crear juegos o análisis de datos. Blockchain sigue siendo poco conocido y desinformado como para que alguien se dedique completamente a este.
Cuando comenzó era tema exclusivo de cyberpunks, muy interesados o gente "rara". Pero recientemente eso ha cambiado. Si eres un desarrollador curioso y de mente abierta, tienes mucho que aportar.

3 - La innovación no está en las escuelas
Satoshi Nakamoto (Creador del Bitcoin) no era un académico. Actualmente no existe institución dedicada a Blockchain en concreto. Los avances han sido gracias a grupos de personas, investigadores o aficionados. Lo que necesites se encuentra en páginas, blogs y demás lugares abiertos al público, lo único que falta es interesarse en el tema.

4 - La oferta es excedida por la demanda de gente con habilidades y talento
El problema aquí es que no se pueden conseguir suficientes desarrolladores enfocados al tema. La mayoría se pelea por los pocos talentos existentes de Blockchain. Las mejores empresas no pueden mantener a la gente lo suficiente, debido a que tienen tantas oportunidades, que les resulta sencillo conseguir un nuevo trabajo.

5 – Las criptomonedas son asombrosas
Que mejor que un modelo de dinero descentralizado y seguro criptográficamente. Las criptomonedas son actualmente una de las áreas más innovadoras para trabajar.

Tenga en cuenta que debe investigar lo suficiente si algo no está claro, hay que entender bien la historia de esto para poder comprender el funcionamiento de las cadenas de bloques y componentes básicos, como ha evolucionado y errores que se han cometido.

A continuación algunos requisitos ordenados por importancia.
Considere que esta información no es la única y si desea profundizar algún tema en específico debe investigar más a fondo.
Ahora algunos requisitos previos para poder adentrarte en este mundo:

Computación

Estructuras de datos:
Debes estar familiarizado con características y garantías de complejidad que se encuentran en las estructuras de datos principales: listas vinculadas, arboles binarios de búsqueda, mapas hash y gráficos (con exactitud gráficos acíclicos dirigidos). Se aprende más construyéndolos desde cero para comprenderlos en funcionamiento y propiedades.

Criptografía:
Es la base de las criptomonedas. Todas utilizan criptografía de clave pública / privada en base a su autenticación e identidad. Una recomendación es aprender RSA por su facilidad al no requerir un fuerte conocimiento matemático, luego "ECDSA" criptografía de curvas elípticas aunque requiere más matemáticas abstractas, no es necesario aprender los detalles, pero esta es la que en su gran mayoría se necesitan en las criptomonedas.
También es importante la función hash criptográfica, con esta se pueden crear esquemas de compromiso y son la base de construcción para los arboles de Merkle, el cual es una optimización clave que sirve para la escalabilidad en las cadenas de bloques.

Sistemas distribuidos:
Esta es un área de estudio complicada y extensa. Son esenciales para razonar sobre blockchain, por lo que se deben tener buenos cimientos en estos antes de comenzar la programación blockchain.
Existen algunos buenos libros de texto sobre sistemas distribuidos (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)


Redes:
Blockchain es descentralizado ya que se basa en su mayoría de redes punto a punto. Por lo cual las cadenas de bloques descienden de las redes P2P.
Para lograr entender el modelo de comunicación Blockchainm se debe entender los conceptos de red informática: esto es comprender TCP ante UDP, el modelo de paquete como lo son los paquetes IP y entender el enrutamiento de internet.

Economía:
Las criptomonedas están entrelazadas con la economía. Derivan muchas propiedades de seguridad a través de estructuras económicas, las cuales son denominadas criptoeconomia. Entonces la economía es vital para entender las criptomonedas.

Teoría de juego:
La parte más importante que la economía juega en las criptomonedas es la llamada "Teoría de juegos" estudiar los pagos y beneficios a dividir entre los múltiples agentes, sin necesidad de adentrarse mucho en el tema. Es vital para comprender las herramientas de análisis de teoría de juegos y su uso para analizar incentivos y que estos se repitan.
Se debe comprender los conceptos de equilibrio de Nash y puntos Schelling, necesarios en el análisis de criptoeconomia.

Macroeconomía:
La criptoeconomia no son solo protocolos, también son formas de dinero. Y por ser así necesitan estar regidos por las leyes de macroeconomía.  Estas se sujetan a políticas monetarias y evidentemente son predecibles respecto a la inflación y deflación. Es necesario entender los procesos y efectos que se provoca sobre gastos, ahorro, etc.
También es necesario entender el concepto velocidad del dinero, que corresponde a la valoración de una moneda.

Microeconomía:
Las criptomonedas se entrelazan con los mercados por lo que se necesita comprensión microeconómica. Estudiar curvas de oferta y demanda es un requisito. Razonamiento de costos de competencia y oportunidad.
Si se tiene idea de alguno de estos temas se puede omitir.

Medianamente dominados estos requisitos se puede comenzar con el desarrollo de Blockchain.

Fundamentos de Bitcoin

En 2008, Satoshi Nikamoto describió un protocolo para crear una moneda digital descentralizada. Lo nombro el protocolo Bitcoin.
Antes de entender lo que está detrás de Blockchain, se debe iniciar con Bitcoin y entender la idea de Satoshi.
Primero leer sobre prueba de trabajo y la regla de elección de la horquilla o consenso de Nikamoto.

Ver el siguiente video está en inglés pero se pueden activar los subtítulos traducidos.


También ver este video para tener más clara la idea:


Ahora que ha visto le recomiendo el siguiente articulo (En Inglés No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) para tener una idea más profunda de los componentes y funcionamiento de Bitcoin.

Construyendo Blockchain:
Ahora que se tiene intuición sobre esto, es hora de ver como se construye una cadena de bloques propia basada en pruebas de trabajo. Es sencillo a continuación algunos recursos.

Esta es una conferencia donde se repasa como hacerla en Ruby. Recomendada incluso si no utiliza Ruby.


Diapositivas:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Existen otras implementaciones de Blockchain que se encuentran en distintos lenguajes de programación. La idea es crearlo y que sea funcional.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Llegados a este punto se tiene más idea sobre este mundo y su implementación. También se debe entender el documento original de Bitcoin: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para lograr entender la economía y la mecánica de la minería del Bitcoin, es recomendable ver la conferencia sobre minería de Bitcoin dada en un curso de Princeton sobre Bitcoin y Criptomonedas. Video en inglés y en esta ocasión parece que no se han generado los subtítulos para este video por lo cual será para los que dominen mejor este idioma, una disculpa.


Una vez en este punto y asumiendo que se ha entendido el material previo, se tiene el conocimiento para recorrer un encabezado de bloque de Bitcoin y entender el significado de cada componente.


Se podrá jugar con el explorador de bloques de Bitcoin y navegar en las transacciones crudas del Bitcoin. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Este es un buen momento para ver más sobre la historia del Bitcoin y las criptomonedas. El siguiente video enseña una visión general, en inglés pero con subtítulos.





Blockchain - [De Cero A Héroe] 2
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




Cualquier error favor de comentarlo o decirme por privado y se intentara solucionar a la brevedad.
Andrey...


"Es un mundo brutal y peligroso el que hay allá afuera... Pero encontré mi camino. El caos es mi hogar, y me aseguraré de que no escapes de el"...

"Solo se necesita una excusa para cambiar el mundo"