#5 Criptomonedas Parte 1

 
Conocer qué son las criptomonedas son unas de las principales cosas que toda persona debe saber antes de invertir o especular (dependiendo del tipo de persona) en este mercado, ya que si nosotros vamos directamente a la parte de inversión o especulación (solo por el deseo de ganar dinero) sin entender de que trata, es posible que nos dejemos convencer de personas que no tienen ningún entendimiento sobre el tema y que solo hablan sobre el mismo en base a sus pensamientos sin fundamentos. El ejemplo que puedo brindarles sobre esto fue en una noticia que leí hace un tiempo donde un político, no recuerdo de que país, menciono en una entrevista que le hicieron que él no cree en las criptomonedas porque esa palabra cripto se escucha como algo malo y que para él no tiene sentido que se quiera ocultar información, ya que los que hacen eso es porque están en el mal vivir. 

Si una persona normal, sin un conocimiento en absoluto sobre las criptomonedas, escucha a ese político que tampoco tiene un conocimiento del tema es posible que vaya a creer e incluso piense que lo que aquella persona dijo tiene sentido, ya que muchas personas creen en los políticos o personas que tienen un puesto alto porque tienen la idea que si ellos hablan sobre un tema es porque saben del mismo, lo cual es una afirmación totalmente errada. Es debido a este tipo de situación que se vuelve necesario conocer no solo la definición de la palabra criptomoneda sino que significa en si la misma palabra. 

Si tomamos la palabra criptomoneda y la separamos nos daremos cuenta que está formada por otra dos palabras, cripto (lo cual es una abreviación de criptografía) y monedas.

Es posible que muchos tenga una ligera idea de que es la palabra moneda (esta será igualmente definida más adelante) pero no tengan una idea clara o incluso puede que nunca escucharan la palabra criptografía. 

La criptografía es la ciencia que estudia los métodos, principios y técnicas de cifrado destinadas a alterar las representaciones lingüísticas de ciertos mensajes con el fin de hacerlos intangibles a receptores no autorizados. 

Para completar el entendimiento de la definición anterior, es necesario que se comprenda qué es el cifrado. 

Para decirlos en palabras simples y sencillas, el cifrado se puede definir como el transformar un mensaje a una forma no entendible para la gente que no está autorizada a verlo.

La criptografía no es algo que se creara hace unas pocas décadas con la invención de las computadoras y el internet. Esta ciencia tiene sus origines desde los tiempos antiguos, hay pruebas que muestran que la misma existe desde hace 4000 años, ya que la palabra criptografía proviene del griego krypto que significa ocultar y graphos que significa escribir. 

La criptografía fue utilizadas en muchas áreas para establecer diferentes forma de cifrar información, ya sea en la guerra, las ciencias, el arte o la tecnología. Uno de los cifrados creados a través de las criptografía más famosos fue el cifrado de Cesar, el cual fue creado por el Emperador Romano para poder enviar mensajes desde un sitio a otro sin que pueda ser descubierto el contenido si fuera interceptado por sus enemigos. 

En los cifrados existe algo llamada clave, la clave es la palabra, numero o cualquier herramienta que permite cifrar y descifrar el mensaje. 

Para el caso del cifrado Cesar este consistía en reemplazar la letra del mensaje con la tercera letra a la derecha, eso quiere decir que la clave para descifrar el mensaje era contar 3 letras antes para saber cual era la letra original de la mostrada en el mensaje:


Estos métodos o técnicas de cifrado entre mayor era el avance de la tecnología se volvió más sencillo de descifrar lo que conllevo a la creación de nuevos métodos de cifrado. 

En la actualidad los métodos de cifrados existentes son llamado cifrado simétrico y cifrado asimétrico. El cifrado simétrico es un método criptográfico en el cual se usa una misma clave para cifrar y descifrar mensajes en el emisor y el receptor. Las dos partes que se comunican han de ponerse de acuerdo de antemano sobre la clave a usar. Una vez que ambas partes tienen acceso a esta clave, el remitente cifra un mensaje usando la clave, lo envía al destinatario y este lo descifra con la misma clave. 

Se puede pensar en un ejemplo de este cifrado el Cesar pero en la actualidad no se utilizan estas metodologías tan sencilla que son fácilmente descifrables con una computadora. Ahora utilizan procesos matemáticas muy complejos para cifrar la información. El cifrado simétrico más fuerte en la actualidad es el AES256, pero es de importancia mencionar que a pesar de que el método de cifrado sea robusto si se utiliza una clave sencilla se vuelve igualmente fácil de descifrar. Por eso se vuelve importante utilizar clave muy complejas (esto se explorara más adelante cuando se hable de las buenas prácticas en la seguridad informática). 


Otro método de cifrado, probablemente el más importante para todos nosotros, es el cifrado asimétrico. 
El cifrado asimétrico es un método o técnica criptográfica que usa un par de clave para el envío de mensajes. Las dos claves pertenecen a la misma persona que recibirá el mensaje. Una clave es pública y se puede entregar a cualquier persona, la otra clave es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella. Entre los cifrado asimétrico más seguro encontramos el RSA pero al igual que en los simétricos existen muchos otros. 




Este tipo de cifrado asimétrico es el utilizado en la tecnología blockchain, ya que a traves de su uso la generación de claves públicas (serían las direcciones) y privadas que permiten asegurar, enviar y recibir criptomonedas de forma segura.

De hecho, la tecnología blockchain ha sido una perfecta herramienta para probar y desarrollar nuevas técnicas criptográficas. Avances que no solo tienen un impacto positivo en el ecosistema blockchain sino en la informática en general. Ejemplo de esto por ejemplo es la prueba de conocimiento cero.

Una vez explicado qué es la criptografía, tal vez se piense que es utilizada por personas que realizan el mal en nuestra sociedad, pero tengo que decirle que no es así. La capacidad de poder ocultar la información que nos brinda el cifrado es lo que permite que a través de una llamada de por ejemplo whatsapp se puede conversar sin el temor de que alguna persona este escuchado nuestra conversación o que nosotros podamos enviar un mensaje de whatsapp a un familiar y sin preocuparnos porque este mensaje pueda ser interceptado y leído por un tercero. 
La criptografía es la ciencia que le brinda a todas las personas tener una mayor privacidad en el uso de herramientas tecnológicas y de evitar que suframos algún tipo de hackeo o interceptación de información.

En unos días colocare otro post que será la continuación de este.

#4 Riesgos de la Blockchain



La tecnología de la cadena de bloques (blockchain) es un sistema descentralizado y seguro que ha demostrado tener muchos usos potenciales, pero también presenta algunos riesgos y desafíos. Algunos de los riesgos más importantes de la blockchain son:

Los riesgos de la blockchain

Protocolos difíciles de integrar: Para poder entender este riesgo, es necesario saber que es un protocolo. Como estos post son realizado con la intención que cualquier persona pueda entender esta tecnología se vuelve necesario realizar una breve explicación de qué es un protocolo.

Un protocolo se puede definir como lenguajes o códigos de comunicación entre sistemas informáticos. Un protocolo permite la comunicación entre dos o más sistemas que transmiten información a través de diversos medios físicos. 

Debido a que la tecnología blockchain aún está en sus inicio, la complejidad de los protocolos de blockchain los hace difícil de integrar con otros protocolos ya existentes. Si por ejemplo, nosotros tomamos una plataforma con su propio protocolo y tratamos de que se comunique con el protocolo digamos de Ethereum, sería necesario que existe un intermediador que administre cada uno de los protocolos.

Al volverse tan compleja esta comunicación hace que sea más propenso a que existen errores o fallos que sean fácilmente explotados.
 
Estándares subdesarrollados: debido a que la blockchain tiene poco tiempo y su rápido crecimiento, no existe un estándar en esta tecnología. Cada blockchain tiene su propio lenguaje y su propia forma de funcionar que en muchos casos puede ser distinto al de los demás.
 
Aspectos legales: al igual que los estándares, en la actualidad no existe un reglamento legal claro de la tecnología blockchain. Al no tenerse un aspecto legal claro no es posible para los usuarios y creadores saber hasta dónde pueden llegar.
 
Ataque del 51%: este es un riesgo muy difícil que suceda en tecnología que utiliza métodos de consenso de PoW, ya que este tipo de riesgo surge cuando el 51% de los validadores de la red se ponen de acuerdo para aprobar una transacción. Hagamos un ejemplo para que sea más fácil de comprender. Si tomamos de ejemplo bitcoin y decimos que en esta red el 51% de los nodos aprueba una transacción falsa que ellos mismo introdujeron, la red tomara esa transacción como cierta, ya que cuando se realizó el consenso el 51% dijo que era correcto. Cabe mencionar que este riesgo es muy difícil que suceda y se explicara en otro post.
 
Centralización de los nodos: Ya que hablas de un riesgo que puede existir en una blockchain que utiliza el consenso PoW, se vuelve necesario agregar uno de los riesgo existente en el PoS.

Este riesgo surge cuando el mayor poder de decisión se encuentra en un nodo o en un pequeño grupo de nodos. Al existir esto es posible que este grupo de nodos se pongan de acuerdo para aceptar información falsa.

Centralización de los nodos en servidores: Este es un poco similar al caso anterior pero aquí nos enfocamos a los servidores utilizado para alojar nodos. Si digamos la mayoría de los nodos de una blockchain se encuentra en los servidores de Amazon se corre el riesgo que si Amazon service recibe un ataque que viole su seguridad o que Amazon decida prohibir todo sus servicios a algo relacionado con blockchain, causara una baja abrupta de la cantidad de nodos validadores.

Cabe mencionar que entre más validadores existen en una blockchain, más segura se vuelve, ya que entre mayor número de ellos existan es más fácil mantener el funcionamiento adecuado de la blockchain.
 
Riesgos de los usuarios

Como pudimos observar la tecnología blockchain no tiene una enorme cantidad de riesgos y muchos de ellos son originados por su reciente creación. Debido a esta situación es más fácil y simple realizar ataques a los usuarios que utilizan esta tecnología, entre los riesgos existentes tenemos los siguientes:

Phishing: es probable que cuando más incursiones en esta tecnología encuentres esta palabra como la causa de muchas violaciones de seguridad.

El phishing es una mecánica delictiva que forma parte de las estrategias utilizadas por los delincuentes para obtener información. Este se define como un conjunto de técnicas que persiguen el engaño a una víctima ganándose su confianza haciéndose pasar por una persona, empresa o servicio de confianza, para manipularla y hacer que realice acciones que no debería realizar.

Malware: Es cualquier tipo de software que realiza acciones dañinas en un sistema informático de forma intencionada y sin el conocimiento del usuario. El malware que usualmente utilizan es el ransomware.

Criptohacking: Es un método en el cual utilizan un malware para secuestrar un navegador o computadora de un usuario para minar criptomonedas con ella.

Vulnerabilidades de las implementaciones: Este tipo de riesgo es el cual el ataque es realizado a las herramientas de blockchain que utilizan los usuarios, tales como herramientas de soporte.

Es probable que se me pudieran pasar algunos riesgos existente en esta tecnología pero la mayoría de los riesgos que presenta las blockchain, los presentan otras tecnologías.


#3 Algoritmo de consenso y sus tipos


Un algoritmo de consenso es un mecanismo utilizado en sistemas distribuidos para garantizar que todos los nodos de la red tengan una copia consistente de la información. Los sistemas distribuidos son aquellos que están formados por múltiples nodos o dispositivos interconectados que trabajan juntos para realizar una tarea. En un sistema distribuido, cada nodo tiene una copia de la información y es responsable de validar y añadir nuevas transacciones a la red.

Los algoritmos de consenso se emplean para resolver conflictos y evitar situaciones en las que diferentes nodos de la red tienen versiones contradictorias de la información. Por ejemplo, en una cadena de bloques de criptomonedas, los algoritmos de consenso se usan para asegurar que todos los nodos de la red estén de acuerdo sobre el estado de las transacciones y para evitar el doble gasto (situación en la cual se intenta gastar la misma moneda dos veces).
En general, los algoritmos de consenso se utilizan en sistemas distribuidos para garantizar la seguridad y la integridad de la información y para evitar conflictos entre los nodos de la red. Los algoritmos de consenso pueden ser usados en una amplia variedad de aplicaciones, como redes de criptomonedas, sistemas de gestión de la cadena de suministro, redes de Internet de las cosas (IoT) y sistemas de almacenamiento distribuido.


Tipos de algoritmos de consenso:

El algoritmo de consenso por prueba de trabajo (Proof-of-Work, PoW): Es un mecanismo utilizado en sistemas distribuidos para validar las transacciones y añadirlas a la cadena de bloques. Este algoritmo de consenso se usa principalmente en redes de criptomonedas como Bitcoin.

Los nodos de la red deben realizar una serie de cálculos matemáticos complejos para poder añadir una transacción a la cadena de bloques. Este proceso se conoce como “minería”. Los nodos que logran completar los cálculos y añadir una transacción a la cadena de bloques reciben una recompensa en la criptomoneda de la red. Para ejecutar este proceso matemático, se requiere una gran cantidad de energía para realizar los cálculos necesarios para validar las transacciones.

El PoW se usa para evitar el spam y el doble gasto en la red. Debido a la complejidad de los cálculos matemáticos involucrados, es muy difícil para un atacante crear transacciones falsas o intentar gastar la misma moneda dos veces sin ser detectado. Además, el algoritmo PoW también permite que la red se adapte automáticamente al aumento o la disminución de la actividad de minería, lo que asegura la estabilidad de la red. 
El algoritmo de prueba de trabajo tiene algunas desventajas como el mencionado gasto energético. Además, puede ser susceptible a ataques de “minería 51%”, en los que un atacante con una gran cantidad de poder de procesamiento puede controlar la red y hacer transacciones fraudulentas.

El algoritmo de consenso por prueba de participación (Proof-of-Stake, PoS); es un mecanismo utilizado en sistemas distribuidos para validar las transacciones y añadirlas a la cadena de bloques. A diferencia del algoritmo de consenso por prueba de trabajo (PoW), que requiere que los nodos realicen cálculos intensivos de procesamiento para poder validar una transacción, el algoritmo PoS utiliza un sistema de "apuestas" para determinar quién tiene derecho a validar una transacción.

En el algoritmo de consenso PoS, los nodos de la red deben demostrar que tienen una cierta cantidad de tokens de la red para poder validar una transacción. Esto se conoce como "apostar" por la transacción. Cuanto más token tenga un nodo, más probabilidades tiene de ser seleccionado para validar una transacción. Los nodos que validan correctamente una transacción reciben una recompensa en la criptomoneda de la red.

El algoritmo de PoS se utiliza para evitar el spam y el doble gasto en la red. Al requerir que los nodos demuestren que tienen una cierta cantidad de tokens para poder validar una transacción, se hace más difícil para un atacante crear transacciones falsas o intentar gastar la misma moneda dos veces sin ser detectado. Además, el algoritmo PoS es más eficiente desde el punto de vista energético que el algoritmo PoW, ya que no requiere que los nodos realicen cálculos intensivos de procesamiento para validar las transacciones.

Sin embargo, el algoritmo de consenso PoS también tiene algunas desventajas. En particular, puede ser susceptible a ataques de apostadores controlados en los que un atacante con una gran cantidad de tokens puede controlar la red y realizar transacciones fraudulentas. Además, puede ser vulnerable a ataques de estaca del cartel, en los que un grupo de nodos colabora para validar transacciones fraudulentas.

Derivaciones del mismo:

·        Prueba de Participación Anónima (PoSA): Cloakcoin, Spectrocoin 

·        Prueba de Importancia (PoI): NEM

·        Prueba de Almacenamiento: Storj

·        Prueba de Tiempo de Juego (PoST): Vericoin

·        Prueba de Velocidad de Estaca (PoSV): Reddcoin

 El algoritmo de consenso Paxos: Es un mecanismo utilizado en sistemas distribuidos para garantizar la consistencia de datos replicados en múltiples servidores. Este algoritmo de consenso se usa principalmente en sistemas de almacenamiento distribuido y en sistemas de gestión de la cadena de suministro.

El algoritmo de consenso Paxos usa un proceso de votación para garantizar que todos los servidores estén de acuerdo sobre el estado de la información. Cada servidor envía una propuesta a los demás servidores de la red y espera a recibir una respuesta. Si la mayoría de los servidores responden de manera afirmativa, la propuesta se considera aprobada y se añade a la cadena de bloques.

El algoritmo de consenso Paxos es muy resistente a fallos y puede tolerar la presencia de hasta el 50% de servidores fallidos o malintencionados en la red. Además, es muy rápido y permite la confirmación de transacciones en cuestión de milisegundos.

Sin embargo, el algoritmo de consenso Paxos también tiene algunas desventajas. En particular, requiere que un número suficiente de servidores estén disponibles y respondan de manera rápida para poder garantizar la integridad de la red.


El algoritmo de prueba de autoridad (Authority Proof, AP): Es un mecanismo utilizado en sistemas distribuidos para validar las transacciones y añadirlas a la cadena de bloques. Este algoritmo de consenso se usa principalmente en redes privadas, donde se confía en un grupo seleccionado de nodos autorizados para validar las transacciones.


En el algoritmo de prueba de autoridad, los nodos autorizados tienen el derecho de validar las transacciones y añadirlas a la cadena de bloques. Estos nodos son elegidos de manera centralizada por el propietario de la red o por un grupo de nodos autorizados. Una vez que un nodo es elegido para validar una transacción, recibe una recompensa en la criptomoneda de la red.

El algoritmo de prueba de autoridad tiene varias ventajas en comparación con otros algoritmos de consenso. En particular, es muy rápido y permite la confirmación de transacciones en cuestión de segundos. Además, es muy eficiente desde el punto de vista energético, ya que no requiere la realización de cálculos matemáticos intensivos.


Sin embargo, el algoritmo de prueba de autoridad también tiene algunas desventajas. En particular, es altamente centralizado y depende de un grupo seleccionado de nodos autorizados, lo que puede ser vulnerable a ataques de censura o manipulación. Además, el algoritmo AP puede favorecer a los nodos autorizados con mayor cantidad de poder, lo que puede llevar a una concentración de poder en pocas manos.

El algoritmo de consenso delegado (Delegated Proof-of-Stake, DPoS): es un mecanismo utilizado en sistemas distribuidos para validar las transacciones y añadirlas a la cadena de bloques. Este algoritmo de consenso combina elementos del algoritmo de consenso por prueba de participación (PoS) y el algoritmo de consenso por anillo (BFT).

En el algoritmo de consenso DPoS, los nodos de la red delegan su derecho de validación a un grupo seleccionado de nodos, conocidos como testigos. Los testigos son responsables de validar las transacciones y añadirlas a la cadena de bloques. Los testigos son elegidos por los nodos de la red a través de un proceso de votación, y cuantos más votos reciban, mayor será su probabilidad de ser elegidos como testigos.

El algoritmo de consenso tiene varias ventajas en comparación con otros algoritmos de consenso. En particular, es muy rápido y permite la confirmación de transacciones en cuestión de segundos. Además, es muy eficiente desde el punto de vista energético, ya que no requiere la realización de cálculos matemáticos intensivos.

Sin embargo, el algoritmo de consenso DPoS también tiene algunas desventajas. En particular, puede favorecer a los testigos con mayor cantidad de votos, lo que puede llevar a una concentración de poder en pocas manos. Además, puede ser vulnerable a ataques de estaca del cartel, en los que un grupo de testigos colabora para validar transacciones fraudulentas. 

El algoritmo de consenso por anillo (Byzantine Fault Tolerance, BFT): es un mecanismo utilizado en sistemas distribuidos para garantizar la integridad y la seguridad de la información a pesar de la presencia de nodos fallidos o malintencionados. Este algoritmo de consenso se usa en sistemas distribuidos en los que se espera que algunos de los nodos puedan fallar o comportarse de manera incorrecta.

El algoritmo de consenso BFT usa un proceso de votación para garantizar que todos los nodos de la red estén de acuerdo sobre el estado de la información. Cada nodo envía una propuesta a los demás nodos de la red y espera a recibir una respuesta. Si la mayoría de los nodos responden de manera afirmativa, la propuesta se considera aprobada y se añade a la cadena de bloques.

El algoritmo de consenso BFT es muy resistente a fallos y puede tolerar la presencia de hasta el 33% de nodos fallidos o malintencionados en la red. Además, es muy rápido y permite la confirmación de transacciones en cuestión de segundos.

Sin embargo, el algoritmo de consenso BFT también tiene algunas desventajas. En particular, requiere que un número suficiente de nodos estén disponibles y respondan de manera rápida para poder garantizar la integridad de la red. Además, el algoritmo BFT puede ser vulnerable a ataques de “estaca del cartel”, en los que un grupo de nodos colabora para validar transacciones fraudulentas.

#2 Utilidad de la blockchain


La cadena de bloques es una tecnología que permite el registro y seguimiento de transacciones o intercambios de información de forma descentralizada y segura. Esto hace que sea útil en una amplia variedad de aplicaciones, no solo en el ámbito financiero. Algunas de las utilidades más destacadas de la cadena de bloques incluyen:

  • En la industria alimentaria: permite realizar un seguimiento y registro de la procedencia de los productos alimentarios, facilitando la trazabilidad y permitiendo a los consumidores conocer la información de los productos que consumen.
  • En la logística: permite efectuar un seguimiento preciso de los envíos y una trazabilidad de estos.
  • En el comercio: permite establecer identidades únicas y verificables para facilitar el acceso a plataformas y servicios sin necesidad de hacer un registro por parte del usuario.
  • En la medicina: permite mantener un registro completo y seguro de investigaciones y datos médicos.
  • En el sector inmobiliario: permite la creación de contratos inteligentes para realizar acuerdos y registros de forma sencilla y segura.
  • En el copyright y los derechos de autor: permite a los creadores proteger sus obras y recibir el beneficio que les corresponde, al mismo tiempo que protege sus derechos de propiedad.
  • En las finanzas: permite hacer seguimiento y registro de transacciones financieras de forma segura y que no pueden ser modificadas.
En resumen, la cadena de bloques es una tecnología muy versátil y revolucionaria que tiene un gran potencial en una amplia variedad de aplicaciones, no solo en el ámbito financiero.


#1 Blockchain

La blockchain es una tecnología descentralizada y distribuida que permite llevar un registro seguro y verificable de operaciones digitales. Esta tecnología utiliza una cadena de bloques, donde cada bloque es un conjunto de datos que están vinculados entre sí mediante criptografía. Cada bloque contiene una serie de transacciones digitales, junto con un hash criptográfico del bloque anterior y una marca de tiempo.

La descentralización de la blockchain es uno de sus principales beneficios, ya que permite que la red de nodos se encargue de verificar y autorizar las transacciones en lugar de depender de una autoridad centralizada. Esto se logra mediante el uso de algoritmos de consenso, que requieren que la mayoría de los nodos de la red comprueben y aprueben cualquier cambio.

La distribución de la blockchain también es una de sus características más importantes, ya que significa que los datos no se almacenan en un solo lugar, sino que están replicados en múltiples nodos de la red. Esto hace que la blockchain sea muy resistente a ataques y fallos, porque para alterar los datos de la misma sería necesario modificar simultáneamente todas las copias de los datos en la red.

La blockchain se utiliza para registrar una amplia variedad de cosas que tienen valor, incluyendo transacciones financieras, contratos, propiedad de bienes inmuebles, identidades, entre otros. Además, la misma es una base de datos segura y verificable, ya que cada bloque incluye un hash criptográfico del bloque anterior y una marca de tiempo, lo que hace que sea muy difícil alterar los datos sin que sea detectado.

En resumen, la blockchain es una tecnología descentralizada y distribuida que permite llevar un registro seguro y verificable de operaciones digitales sin la necesidad de intermediarios. Esta tecnología se basa en la utilización de bloques de datos vinculados entre sí y en una red de nodos que verifican y autorizan las transacciones mediante el uso de algoritmos de consenso. La blockchain es utilizada para registrar una amplia variedad de cosas que tienen valor y es una base de datos segura y resistente a ataques y fallos.