Bitcoin creó un montón de zumbido en Internet. Fue ridiculizado, fue atacado, y finalmente fue aceptado y se convirtió en una parte de nuestras vidas. Sin embargo, Bitcoin no está solo. En este momento, hay más de 700 AltCoin implementaciones, que utilizan principios similares de CryptoCurrency.

Entonces, ¿qué necesitas para crear algo como Bitcoin?

Sin intentar entender su motivación personal para crear un sistema descentralizado y anónimo para intercambiar dinero/información (pero todavía esperando que sea en el ámbito de las actividades morales y legales), vamos a analizar primero los requisitos básicos para nuestro nuevo sistema de pago:

  1. Todas las transacciones deben realizarse a través de Internet
  2. No queremos tener una autoridad central que procese las transacciones
  3. Los usuarios deben ser anónimos e identificados sólo por su identidad virtual
  4. Un solo usuario puede tener tantas identidades virtuales como él o ella le gusta
  5. El suministro de valor (nuevas cuentas virtuales) debe agregarse de una manera controlada

Intercambio de información descentralizada a través de Internet

El cumplimiento de los dos primeros requisitos de nuestra lista, la eliminación de una autoridad central para el intercambio de información a través de Internet ya es posible. Lo que necesita es una red peer-to-peer (P2P).

El intercambio de información en redes P2P es similar al intercambio de información entre amigos y familiares. Si compartes información con al menos un miembro de la red, eventualmente esta información llegará a todos los demás miembros de la red. La única diferencia es que en las redes digitales esta información no será alterada de ninguna manera.

Cryptocurrency y Toptal

Usted probablemente ha oído hablar de BitTorrent, uno de los sistemas más populares de intercambio de archivos P2P (entrega de contenido). Otra aplicación popular para compartir P2P es Skype, así como otros sistemas de chat.

En pocas palabras, es posible implementar o utilizar uno de los protocolos P2P de código abierto existentes para dar soporte a su nueva criptoconversión, a la que llamaremos Topcoin.

Hashing

Para entender las identidades digitales, necesitamos entender cómo funciona el “hashing criptográfico”. Hashing es el proceso de mapeo de datos digitales de cualquier tamaño arbitrario a los datos de un tamaño fijo. En palabras más simples, el hashing es un proceso de tomar cierta información que es legible y hacer algo que no tiene sentido en absoluto.

Puedes comparar el hash a obtener respuestas de los políticos. La información que tú les proporcionas es clara y comprensible, mientras que la salida que proporcionan se parece a una corriente aleatoria de palabras.

P2P Protocols

Hay algunos requisitos que un buen algoritmo hash necesita:

  1. Longitud de salida del algoritmo hash debe ser fijo (un buen valor es 256 bytes)
  2. Incluso el cambio más pequeño en los datos de entrada debe producir una diferencia significativa en la producción
  3. La misma entrada producirá siempre la misma salida
  4. No debe haber manera de invertir el valor de salida para calcular la entrada
  5. Calcular el valor de HASH no debe ser intenso de cálculo y debe ser rápido

Si echas un vistazo a las estadísticas simples, tendremos un número limitado (pero enorme) de posibles valores de HASH, simplemente porque nuestra longitud de HASH es limitada. Sin embargo, ¡nuestro algoritmo hash (que se denomina Politician256) debe ser lo suficientemente fiable que sólo produce valores de hash duplicados para diferentes entradas con tanta frecuencia como un mono en un zoológico se las arregla para escribir correctamente Hamlet en una máquina de escribir!

Si piensas que Hamlet es sólo un nombre o una palabra, por favor deja de leer ahora, o lee sobre el Infinite Monkey Theorem (ó el Teorema Infinito del Mono).

Firma Digital

Al firmar un documento, todo lo que necesitas hacer es adjuntar tu firma al texto de un documento. Una firma digital es similar: sólo tienes que anexar sus datos personales al documento que está firmando.

Si entiende que el algoritmo hash se adhiere a la regla donde incluso el menor cambio en los datos de entrada debe producir una diferencia significativa en la salida del mismo, entonces es obvio que el valor HASH creado para el documento original será diferente del valor HASH creado para el documento con la firma adjunta.

Una combinación del documento original y el valor HASH producido para el documento con sus datos personales adjuntos es un documento firmado digitalmente.

Y así es como llegamos a su identidad virtual, que se define como los datos que agregó al documento antes de crear ese valor HASH.

A continuación, debes asegurarte de que su firma no se puede copiar, y nadie puede ejecutar ninguna transacción en su nombre. La mejor manera de asegurarse de que su firma está asegurada, es mantenerla tú mismo y proporcionar un método diferente para que otra persona pueda validar el documento firmado. Una vez más, podemos recurrir a la tecnología y los algoritmos que están fácilmente disponibles. Lo que necesitamos utilizar es criptografía de clave pública también conocida como criptografía asimétrica.

Para que esto funcione, debe crear una clave privada y una clave pública. Estas dos claves estarán en algún tipo de correlación matemática y dependerán el uno del otro. El algoritmo que utilizará para crear estas claves garantizará que cada clave privada tendrá una clave pública diferente. Como sugieren sus nombres, una clave privada es la información que guardará solo para ti, mientras que una clave pública es la información que compartirás.

Si utilizas tu clave privada (tu identidad) y el documento original como valores de entrada para el algoritmo de firma para crear un valor HASH, asumiendo que mantuvo su clave en secreto, puede estar seguro de que nadie más puede producir el mismo HASH valor para ese documento.

Cómo funcionan el Bitcoin y Cryptocurrency

Si alguien necesita validar su firma, él o ella usará el documento original, el valor HASH que produjo y su clave pública como entradas para el algoritmo de verificación de firma para verificar que estos valores coincidan.

Cómo enviar Bitcoin/Dinero

Suponiendo que tú has implementado la comunicación P2P, mecanismos para crear identidades digitales (claves privadas y públicas), y proporcionaste formas para que los usuarios firmen documentos usando sus claves privadas, estás listo para comenzar a enviar información a sus pares.

Puesto que no tenemos una autoridad central que valide cuánto dinero tiene, el sistema tendrá que preguntarle sobre él cada vez, y entonces compruebe si usted mintió o no. Por lo tanto, tu registro de transacción puede contener la siguiente información:

  1. Tengo 100 Topcoins
  2. Quiero enviar 10 monedas a mi farmacéutico para la medicación (incluirías la llave pública de los farmacéuticos aquí)
  3. Quiero dar una moneda como honorario de la transacción al sistema (volveremos a esto más adelante)
  4. Quiero mantener las 89 monedas restantes

Lo único que queda por hacer es firmar digitalmente el registro de transacción con tu clave privada y transmitir el registro de transacción a sus pares en la red. En ese momento, todos recibirán la información de que alguien (su identidad virtual) está enviando dinero a otra persona (la identidad virtual de su farmacéutico).

Tu trabajo está hecho. Sin embargo, tu medicación no se pagará hasta que la red entera acepte que tú realmente tenías 100 monedas, y por lo tanto podría ejecutar esta transacción. Sólo después de que su transacción sea validada su farmacéutico obtendrá los fondos y le enviará la medicación.

Mineros - La nueva raza de agentes

Se sabe que los mineros son personas muy trabajadoras que, en mi opinión, son muy mal pagadas. En el mundo digital de la criptocurrencia, los mineros desempeñan un papel muy similar, excepto en este caso, hacen el trabajo computacionalmente intensivo en lugar de excavar pilas de tierra. A diferencia de los verdaderos mineros, algunos mineros de criptocurrencia ganaron una pequeña fortuna en los últimos cinco años, pero muchos otros perdieron una fortuna en este arriesgado esfuerzo.

Los mineros son el componente central del sistema y su objetivo principal es confirmar la validez de cada transacción solicitada por los usuarios.

Para confirmar la validez de su transacción (o una combinación de varias transacciones solicitadas por algunos otros usuarios), los mineros harán dos cosas.

En primer lugar, se basarán en el hecho de que “todo el mundo sabe todo”, lo que significa que cada transacción ejecutada en el sistema se copia y está disponible para cualquier par en la red. Examinarán la historia de sus transacciones para verificar que en realidad tenía 100 monedas para empezar. Una vez confirmado el saldo de su cuenta, generarán un valor específico de HASH. Este valor hash debe tener un formato específico; debe comenzar con cierto número de ceros.

Hay dos entradas para calcular este valor de HASH:

  1. Datos de registros de transacciones
  2. Prueba de trabajo del minero

Teniendo en cuenta que incluso el cambio más pequeño en los datos de entrada debe producir una diferencia significativa en el valor de salida HASH, los mineros tienen una tarea muy difícil. Necesitan encontrar un valor específico para una variable prueba de trabajo que produzca un HASH que comience con ceros. Si tu sistema requiere un mínimo de 40 ceros en cada transacción validada, el minero necesitará calcular aproximadamente 2 ^ 40 valores diferentes de HASH para encontrar la prueba de trabajo correcta.

Una vez que un minero encuentra el valor apropiado para la prueba de trabajo, él o ella tiene derecho a una tarifa de transacción (la moneda única que estaba dispuesto a pagar), que se puede agregar como parte de la transacción validada. Cada transacción validada se transmite a los compañeros de la red y se almacena en un formato de base de datos específico conocido como Blockchain.

Pero, ¿qué pasa si el número de mineros sube y su hardware se vuelve mucho más eficiente? Bitcoin solía ser minado en CPUs, GPUs y FPGAs, pero en última instancia los mineros comenzaron a diseñar sus propios chips ASIC, que eran mucho más poderosos que estas soluciones tempranas. A medida que la tasa de hash sube, también lo hace la dificultad de minería, garantizando así el equilibrio. Cuando se introduce más potencia de hashing en la red, la dificultad aumenta y viceversa; si muchos mineros deciden desconectar el enchufe es porque su operación ya no es rentable, la dificultad se reajusta para que coincida con la nueva tasa de hash.

Blockchain - El Libro Global de la Criptocurrencia

La cadena de bloques contiene el historial de todas las transacciones realizadas en el sistema. Cada transacción validada, o lote de transacciones, se convierte en otro anillo en la cadena.

Por lo tanto, la cadena de bloques Bitcoin es, esencialmente, un libro mayor público donde las transacciones se enumeran en orden cronológico.

El primer anillo de la cadena de bloques Bitcoin se denomina Bloque Génesis

Para leer más acerca de cómo funciona la cadena de bloques, sugiero leer Blockchain Technology Explained: Powering Bitcoin, de Nermin Hajdarbegovic.

No hay límite para cuántos mineros pueden estar activos en su sistema. Esto significa que es posible que dos o más mineros validen la misma transacción. Si esto sucede, el sistema verificará el esfuerzo total que cada minero invirtió en la validación de la transacción simplemente contando ceros. El minero que invirtió más esfuerzo (encontró más ceros principales) prevalecerá y su bloque será aceptado.

Controlando el Suministro de Dinero

La primera regla del sistema de Bitcoin es que puede haber un máximo de 21.000.000 Bitcoins generados. Este número todavía no se ha logrado, y según las tendencias actuales, se cree que este número se alcanzará en el año 2140.

Esto puede hacer que usted cuestione la utilidad de un sistema de este tipo, porque 21 millones de unidades no suena como mucho. Sin embargo, el sistema Bitcoin admite valores fraccionarios hasta los ocho decimales (0.00000001). Esta unidad más pequeña de un bitcoin se llama Satoshi, en honor de Satoshi Nakamoto, el revelador anónimo detrás del protocolo de Bitcoin.

Las monedas nuevas se crean como una recompensa a los mineros para validar transacciones. Esta recompensa no es la tarifa de transacción que especificó cuando creó un registro de transacción, pero está definida por el sistema. La cantidad de recompensa disminuye con el tiempo y eventualmente se pondrá a cero una vez que se haya alcanzado el número total de monedas emitidas (21m). Cuando esto sucede, las tarifas de transacción jugarán un papel mucho más importante ya que los mineros podrían optar por dar prioridad a transacciones más valiosas para la validación.

Aparte de fijar el límite superior en el número máximo de monedas, el sistema de Bitcoin también utiliza una manera interesante de limitar la producción diaria de nuevas monedas. Mediante la calibración del número mínimo de ceros iniciales requeridos para un cálculo de prueba de trabajo, el tiempo necesario para validar la transacción y obtener una recompensa de monedas nuevas se establece siempre en aproximadamente 10 minutos. Si el tiempo entre agregar nuevos bloques a la cadena de bloques disminuye, el sistema puede requerir que la prueba de trabajo genere 45 o 50 ceros iniciales.

Por lo tanto, al limitar la rapidez y la cantidad de monedas nuevas que se pueden generar, el sistema Bitcoin está controlando efectivamente la oferta monetaria.

Comience a “Imprimir” tu Propia Moneda

Como puedes ver, hacer tu propia versión de Bitcoin no es tan difícil. Al utilizar la tecnología existente, implementada de una manera innovadora, tienes todo lo que necesitas para una criptoconversión.

  1. Todas las transacciones se realizan a través de Internet utilizando la comunicación P2P, eliminando así la necesidad de una autoridad central
  2. Los usuarios pueden realizar transacciones anónimas mediante la utilización de la criptografía asíncrona y sólo se identifican con su combinación de clave privada / clave pública
  3. Ha implementado un libro de registro global validado de todas las transacciones que se ha copiado de forma segura a todos los pares de la red
  4. Usted tiene una fuente de dinero asegurada, automatizada, y controlada, que asegura la estabilidad de su moneda sin la necesidad de la autoridad central

Una última cosa que vale la pena mencionar es que, en su esencia, criptografía es una forma de transferir información / valor anónimo de un usuario a otro en una red distribuida peer-to-peer.

Considera la posibilidad de reemplazar monedas en su registro de transacción con datos aleatorios que incluso podrían ser cifrados utilizando la criptografía asíncrona para que sólo el remitente y el receptor pueda descifrarlo. ¡Ahora piensa en aplicar eso a algo como el Internet de las cosas!

El sistema de Cryptocurrency podría ser una forma interesante para permitir la comunicación entre nuestra estufa y tostadora.

Una serie de pesos pesados de la tecnología ya están explorando el uso de la tecnología blockchain en las plataformas IoT, pero esa no es la única aplicación potencial de esta tecnología relativamente nueva.

Si no ves ninguna razón para crear una moneda alternativa propia (aparte de una broma), podría intentar utilizar el mismo o similar enfoque para otra cosa, como autenticación distribuida, creación de monedas virtuales utilizadas en juegos, redes sociales , y otras aplicaciones, o podrías proceder a crear un nuevo programa de fidelización para su negocio de comercio electrónico, que recompensaría a los clientes regulares con fichas virtuales que podrían ser redimidos más adelante.

About the author

Demir Selmanovic, Bosnia and Herzegovina
member since May 23, 2014
Demir is a developer and project manager with over 15 years of professional experience in a wide range of software development roles. He excels as a solo developer, team member, team leader, or manager of multiple distributed teams. He works closely with clients to define ideas and deliver products. [click to continue...]
Hiring? Meet the Top 10 Freelance Bitcoin Developers for Hire in September 2017

Comments

comments powered by Disqus
Subscribe
The #1 Blog for Engineers
Get the latest content first.
No spam. Just great engineering posts.
The #1 Blog for Engineers
Get the latest content first.
Thank you for subscribing!
Check your inbox to confirm subscription. You'll start receiving posts after you confirm.
Trending articles
Relevant Technologies
About the author
Demir Selmanovic
JavaScript Developer
Demir is a developer and project manager with over 15 years of professional experience in a wide range of software development roles. He excels as a solo developer, team member, team leader, or manager of multiple distributed teams. He works closely with clients to define ideas and deliver products.