Monedas digitales descentralizadas. Parte 1. Bitcoin


El tema de varias criptomonedas y blockchains ahora se ha vuelto bastante popular y ha dejado de ser el grupo de geeks que murmuran sobre la revolución en el campo de las finanzas. Pero tan pronto como intente profundizar en este tema, inmediatamente encontrará un déficit de información: hay muy poco material que describa un lenguaje accesible y moderadamente técnico sobre el concepto y los mecanismos de estas tecnologías. Convencionalmente, todos los materiales se pueden dividir en dos categorías: ya sea técnica extrema, donde la criptografía, p2p, "oro digital", etc. comienza desde la primera oración, o tonterías de marketing sobre el nuevo Internet, la capitalización de Bitcoin o como una determinada empresa / país implementó blockchain y resolvió todos sus problemas. Si desea comprender cómo funciona todo y qué se puede hacer con estas tecnologías, estos artículos son para usted.


Intentaré transmitir la idea básica de una criptomoneda descentralizada, los mecanismos de su trabajo, así como desarmar las diversas horquillas de Bitcoin. Omití específicamente muchos detalles técnicos para no sobrecargar el texto. Lo principal es comprender la esencia, y luego puedes descubrir fácilmente la naturaleza por ti mismo.


Parte 1. Bitcoin
Parte 2. Otros (no) tipos populares de Bitcoin, blockchain
Parte 3. Ethereum


Idea


Tan pronto como intentamos comprender el mecanismo del trabajo de Bitcoin, inmediatamente comenzamos a entrar en conflicto con nuestra forma habitual de pensar, que se niega rotundamente a aceptar el concepto de un sistema de control descentralizado, sin palancas de influencia de poder sobre los infractores. Pero la pregunta surge de inmediato, si nadie controla Bitcoin, ¿cómo funciona? En 2008, a cierto Satoshi Nakamoto se le ocurrió una solución elegante en la que cada miembro de la red confía solo en su base, que mantiene de forma independiente, y la base de la mayoría si no tiene ningún registro.


Intentemos explicar con los dedos el ejemplo de una pequeña aldea que decidió abandonar la circulación del papel moneda e introducir una moneda descentralizada. Que sea un pueblo especial en el que todos los habitantes se conozcan por su nombre, puedan reconocer por voz, sean muy buenos en tonos de flores y adoren el color púrpura real. Entonces, los residentes están de acuerdo en que la nueva moneda funcionará de la siguiente manera:


  1. Todos los flujos de efectivo son públicos, es decir todos saben quién, a quién, cuánto ha transferido;
  2. Cuando alguien quiere transferir dinero a alguien, él declara públicamente esto: Yo, John, transfiero 100 monedas a James;


  3. Cada residente tiene un diario de contabilidad donde todas las transferencias de dinero que escuchó encajan. Todas las traducciones del día se registran en una página, y al día siguiente comienzan desde cero.


  4. Al final del día, los residentes hacen un extraño ritual que arregla todas las transacciones para este día, ya que la transacción no se considera válida hasta que se arregla. El ritual es laborioso, pero puede obtener una recompensa por ello y, por lo tanto, todos quieren participar en este proceso. El procedimiento es el siguiente:

4.1. Para cada transacción a partir de este día, de acuerdo con una fórmula especial, dependiendo de la cantidad de transferencia y destinatarios, se selecciona pintura de un determinado color y cantidad. Luego, todos estos tarros de pinturas se vierten en un tazón y se mezclan bien.


4.2. El ritual requiere llevar la mezcla resultante a un color púrpura real. Para hacer esto, en pequeñas dosis, mediante una búsqueda larga y agotadora, se agregan diferentes colores a esta mezcla;


4.3. Tan pronto como alguien encuentra los colores necesarios y sus dosis, inmediatamente escribe estos datos en la parte inferior de la página de hoy, acredita 50 monedas en su cuenta como recompensa y lo anuncia a todos los residentes.


4.4. Los residentes verifican rápidamente si realmente encontró las proporciones correctas. Si todo está correcto, aprueban la transferencia de recompensas, cierran la página de hoy y se van a dormir.



Ahora más sobre los puntos:


  1. Como recordamos, los residentes pueden reconocerse fácilmente por voz, respectivamente, si alguien intenta transferir dinero no en su propio nombre, entonces los residentes simplemente ignoran esta declaración y nadie agregará esta transferencia a sus notas.


  2. Como todas las transferencias son públicas, todos saben cuánto dinero tiene cada ciudadano en su cuenta, si John no tiene fondos suficientes, entonces se ignora su transferencia (nadie toma nota). Idealmente, una sola cadena de registros debería ser la misma para todos.


  3. Si alguien perdió su diario o perdió algunas traducciones, entrevista a los residentes y sincroniza sus notas. En este caso, es necesario confiar solo en aquellos registros que sean consistentes con la mayoría.


  4. La selección de la dosis requerida y el color de las pinturas es un proceso que lleva mucho tiempo y es muy fácil verificar el resultado del trabajo. Las transacciones para ese día simplemente se toman, la mezcla se prepara de acuerdo con la fórmula y las pinturas se agregan al tanque a la dosis anunciada. Si obtienes un color púrpura real, entonces todo es cierto y los habitantes aceptan recompensar a los que encontraron estas proporciones. Tan pronto como se sella la página, todas las transacciones se consideran válidas y permanecen en el historial para siempre. De esta manera, se mantiene la integridad de la base y también ingresa dinero nuevo al sistema. El monto de la remuneración se reduce a la mitad cada 4 años, lo que limita la cantidad total de dinero en el sistema. Y si agrega las proporciones de colores encontradas de la página anterior a la página siguiente, las páginas se vincularán y nadie podrá cambiar las transacciones de manera retroactiva. Al menor cambio en los registros, es necesario volver a calcular la dosis de pinturas para esta y todas las páginas posteriores, además, es necesario convencer a la mayoría de los residentes para que reemplacen sus propios registros por otros nuevos.

Cada miembro de la red decide por sí mismo si acepta transacciones fraudulentas o no, y aunque la mayoría de los participantes de buena fe, el sistema funcionará como debería. Pero, ¿qué significa "cómo", qué objetivos fueron establecidos por los desarrolladores de una moneda tan descentralizada?


  1. La cantidad de dinero en el sistema debe ser limitada, en este sentido, la moneda es como el oro. Nadie debería poder imprimir una tonelada de dinero, lo que a su vez puede generar inflación y la depreciación de los ahorros.


  2. Eliminar las restricciones asociadas con las unidades mínimas del sistema monetario actual. Por ejemplo, desea vender sus servicios por 1 kopeck, o tal vez por una centésima de centavo.


  3. Una garantía de que cualquier transferencia de dinero formada correcta se llevará a cabo debido a la falta de un solo punto de falla, a menos que toda la Internet esté desconectada. Ninguna organización, ni siquiera un estado, debería tener la capacidad de revertir / bloquear una transacción.
  4. Para engañar al sistema o cambiar las reglas, es necesario convencer a la mayoría de los participantes (> 50%) de la red, etc.

Implementación


Si todo está claro con la idea fundamental, entonces podemos pasar a una implementación técnica simplificada. A continuación, debe conocer conceptos como hash, cifrado de clave pública y firma digital.



Cada miembro de la red genera una cuenta / cuentas, donde una cuenta es solo un par de claves generado por el algoritmo ECDSA (algoritmo de clave pública para crear una firma digital). Como dirección de la cuenta, la clave pública se usa del par, y para transferir dinero desde la cuenta se requiere firmar esta transferencia (transacción) con la clave privada. La transacción se transmite a todos los participantes de la red donde hay participantes especiales, mineros que participan en la formación de una cadena única y coordinada de la historia de todas las transacciones (blockchain). Los mineros empaquetan las transacciones actuales en un bloque mientras verifican su corrección. Además de la lista de transacciones, un bloque contiene un hash del bloque anterior y un cierto valor NONCE. Para que el bloque se considere correcto, es necesario seleccionar un NONCE de modo que el hash de todo el bloque sea hermoso (con una gran cantidad de ceros al principio).


Dado que el hash de datos proporciona valores completamente impredecibles, es muy difícil recoger este NONCE. En la lista de transacciones, la primera es una transacción especial (recompensa en bloque) que recompensa al minero con una cierta cantidad. Tan pronto como el minero recoge el NONCE necesario, notifica a todos y a otros mineros que verifiquen el resultado de su trabajo. Este proceso se llama minería, debido a que se crea una sola cadena de bloques y los mineros obtienen una recompensa por este trabajo. El procedimiento de verificación es muy rápido, se verifican todas las transacciones y el hash de todo el bloque. Si no hay errores ni fraudes, cada minero incluye este bloque en su blockchain y continúa minando más. Si se incluye un bloque en la cadena de bloques, todas las transacciones se consideran completas, incluida la transacción muy especial que transfiere una recompensa a la cuenta del minero.


Para resumir


  • Todas las transacciones están disponibles públicamente.
  • Existe un conjunto de reglas generalmente aceptadas, y si se debe cumplir o no, depende de todos decidir por sí mismos. No existe una autoridad central con métodos de influencia de la fuerza sobre los infractores.
  • Una transacción se considera exitosa (aprobada) si está empaquetada en un bloque.
  • Las transacciones empaquetadas en un bloque se consideran válidas, ya que se verifican repetidamente.
  • El proceso de validación de las traducciones debe ser alentado y más involucrado en este asunto.
  • Pero es necesario complicar el proceso de envasado. Para esto, se utiliza el principio de Prueba de trabajo. Se requiere para resolver una tarea de uso intensivo de recursos, cuyo resultado es fácil de verificar.
  • Un bloque se considera empaquetado si tiene un hash hermoso, para esto debe ordenar la variable NONCE en el bloque durante mucho tiempo. Encontrar el NONCE correcto es difícil, y verificar el hash es fácil. Encontrar el valor correcto recibe una recompensa.
  • Cada bloque contiene un hash del anterior, obtenemos una cadena de bloques que crece en una dirección.
  • A veces una cadena puede ramificarse, pero la rama más larga será válida. Para crear un bloque con transacciones ficticias y aumentar esta rama, los atacantes tendrán que gastar más recursos informáticos.

La siguiente parte describirá las limitaciones y problemas actuales de Bitcoin, así como una descripción general de las horquillas destinadas a resolver varios problemas.


Literatura: sobre Bitcoin y el Github .

Source: https://habr.com/ru/post/es405453/


All Articles