Cómo funciona BitSignature en Bitcoin

En este artículo, veremos cómo funciona la firma múltiple en el protocolo Bitcoin. Tenga en cuenta que en otras criptomonedas y monedas digitales, estos mecanismos se pueden implementar de manera diferente: depende del modelo de transacción. Le daremos una definición de firma múltiple, analizaremos esquemáticamente su estructura utilizando un ejemplo de una transacción, consideraremos las opciones para su uso y las precauciones cuando trabaje con ella. Intentaremos revelar abiertamente el tema de las mejoras propuestas, P2SH, y también en el diagrama analizaremos el mecanismo para enviar un pago a una dirección con una firma múltiple. Creemos que el material presentado será de interés para los lectores cuya actividad o área de interés se relacione con las monedas digitales.

Dirección de firma múltiple


La dirección de firma múltiple (dirección de firma múltiple, para abreviar) es una dirección de Bitcoin a la que se adjuntan varios pares de claves ECDSA a la vez. Cada par consta de claves privadas y públicas. Los patrones de combinación según los cuales se pueden usar estas teclas pueden ser diferentes. Además, es posible establecer condiciones bajo las cuales será necesario proporcionar varias firmas para gastar monedas de la dirección.

Transacción de Bitcoin que usa firma múltiple


Con más detalle se puede mostrar esquemáticamente. Por ahora, será suficiente imaginar en sentido figurado que una dirección de múltiples firmas se forma al mezclar varias claves públicas concatenadas a la vez. Consideraremos esto con más detalle un poco más. El diagrama muestra una transacción que se gasta con una dirección de firma múltiple.

imagen

El gris indica el área del título. Contiene dos campos. Dos entradas se indican en azul y dos salidas en verde. La primera entrada contiene los campos rellenos: se escribe el valor hash de la transacción anterior, que gasta los datos de la moneda, el número de salida, etc. El campo scriptSig contiene la clave pública y la firma, que es típico de una transacción normal.

Presta atención a la segunda entrada de la transacción. El campo scriptSig contiene otra combinación de datos: se enumeran dos claves públicas y dos firmas. Deben ser verificados por estas claves públicas, respectivamente. Esta es la entrada de transacción que gasta monedas con una dirección de firma múltiple. Así es como se verá la prueba de propiedad de las monedas.

Opciones de combinación de teclas


Existen varias combinaciones de teclas cuando se usa la dirección de múltiples firmas. Las opciones más utilizadas son 2 de 2, 2 de 3 y 3 de 3. La opción máxima posible es 15 de 15.

La combinación más simple es 2 de 2. Implica que hay una dirección de múltiples firmas a la que se unen dos pares de claves, de hecho, dos claves públicas se combinan en una fila y se recibe alguna dirección. Para gastar monedas de esta dirección, debe proporcionar dos firmas que serán verificadas por dos claves públicas disponibles, cuya concatenación y hash en el orden correcto debe dar el mismo valor de la dirección. Resumiendo, hay dos claves preinstaladas y necesita dos firmas, que serán verificadas por estas claves, respectivamente.

El uso de la dirección de firma múltiple 2 de 3 implica que se deben usar dos de las tres claves predefinidas para verificar las dos firmas presentadas como prueba de propiedad de las monedas. En otras palabras, para gastar monedas, debe proporcionar dos firmas que serán verificadas por dos claves públicas de las tres predefinidas.

La combinación de 3 de 3, como ya entendió, requiere tres firmas, que serán verificadas por tres claves preinstaladas. El máximo en términos de la cantidad de firmas y claves públicas requeridas será el esquema de 15 de 15.

Veamos las opciones para usar estas combinaciones.

2 de 2


Imagine que un esposo y una esposa quisieran mantener un presupuesto común.

imagen

Acuerdan que solo con el consentimiento de cada uno de ellos, los fondos del presupuesto se gastarán en ciertas necesidades. Con Bitcoin, esto se puede implementar de manera bastante simple. Crean una dirección de múltiples firmas de acuerdo con este esquema, donde la esposa controla una clave y el esposo controla la segunda. Entonces la familia recibirá todos los ingresos en esas direcciones, y el dinero solo se puede gastar de común acuerdo.

Al predecir su pregunta sobre el escenario cuando el esposo y la esposa no están de acuerdo, imagine que la esposa considera que es necesario comprar una lavadora, porque está cansada de lavarse con las manos, y el esposo cree que no es un trabajo tan difícil, y será más conveniente gastar todas las monedas en el último modelo de PlayStation y pase su tiempo libre de esta manera. La esposa se ofende con su esposo y come un trozo de papel con su clave privada, lo que hace imposible gastar en esta dirección.

¿Cómo evitar tal situación y proteger las monedas de la pérdida final de monedas?

Es posible crear una transacción que gastará todos los fondos de la dirección deseada, a pesar de que el monto no se conoce de antemano. La entrada no es la cantidad, sino un enlace a la transacción, desde donde se pueden gastar estas monedas. Existe un tipo de hash , que es una forma de cubrir con una firma de transacción. Le permite crear una firma por adelantado, y algunos datos de transacciones, como la entrada, se pueden sustituir más tarde. Por lo tanto, puede crear una transacción que gastará monedas de una transacción que aún no existe, y aplicarla más tarde, es decir, cuando sea necesario.

Además, puede poner una restricción de LockTime en esta transacción. Le permite no confirmar la transacción inmediatamente, sino posponerla por algún tiempo. Entonces, el esposo y la esposa inmediatamente después de crear una dirección de múltiples firmas, incluso antes de recibir cualquier pago, pueden crear dos transacciones LockTime en las que todas las monedas futuras serán redirigidas a las direcciones habituales del esposo y la esposa, que controlan de forma independiente. Al mismo tiempo, las transacciones serán diferidas y solo podrán confirmarse, por ejemplo, después de dos meses. Estas transacciones pueden imprimirse en papel y almacenarse individualmente en una caja fuerte. Si surge una situación cuando las monedas están en el saldo de la dirección de múltiples firmas, y las claves se pierden (una o ambas), entonces las monedas se congelan. Pero hay una transacción LockTime. Cualquiera que publique dicha transacción podrá retirar estos fondos a una dirección externa válida. Se guardarán las monedas. Este fue un ejemplo simplificado, pero son posibles mecanismos más complejos.

2 de 3


Supongamos que hay un grupo de personas que tienen un presupuesto común.

imagen

Crean una dirección de firma múltiple en la que hay tres claves, pero dos firmas son suficientes para firmar la transacción. Con el consentimiento de los participantes que conforman la mayoría del grupo, estos fondos pueden gastarse. En otras palabras, dos de cada tres participantes pueden gastar monedas. Para hacer esto, es suficiente difundir la transacción a la red.

Ejemplo de servicio de billetera


Hay una forma más interesante de usar la combinación 2 de 3 y se usa en los llamados servicios de billetera. El servicio de billetera en este contexto no debe confundirse con la billetera Bitcoin habitual, que el usuario controla de forma independiente. El servicio no proporciona un almacenamiento completo para las monedas y no las posee, sino que solo brinda servicios para un trabajo conveniente.

Si imagina esta situación esquemáticamente, entonces una clave pertenece directamente al servicio, la segunda es generada solo por el usuario (y solo él lo sabe), la tercera clave también es generada y almacenada por el usuario, pero por separado. Después de eso, se calculan las claves públicas correspondientes a estas claves personales y se compila una dirección de múltiples firmas. Las monedas llegan allí y ahora las condiciones de gasto son limitadas.

imagen

Imagine que estamos tratando con un determinado servicio web y usted puede ingresar su recurso a través de un navegador. El navegador descarga el código de billetera Bitcoin, que en esta dirección recibe una lista de monedas no gastadas, calcula su saldo y está listo para gastar. Si el usuario quiere gastar monedas, entonces realiza una transacción directamente en el navegador y la firma con su firma (una de las necesarias).

Tenga en cuenta que el usuario puede recibir la clave privada ya sea desde su contraseña, o la clave puede generarse aleatoriamente, cifrarse con la contraseña del usuario y almacenarse en el servicio. Luego, el usuario envía una solicitud al servicio, recibe un contenedor con una clave cifrada, la descifra con su contraseña y ya tiene acceso a su clave privada.

Cuando un usuario firma una transacción, se envía al lado del servicio para que coloque la segunda firma necesaria y envíe la transacción. El servicio aclara el hecho de la necesidad de firmar la transacción a través del segundo canal de autenticación, es decir, a través de un canal diferente configurado de antemano, que puede ser una llamada a un teléfono móvil, SMS, mensaje de correo electrónico y otros métodos de comunicación alternativos (hasta una visita personal, si el nivel de seguridad lo requiere) . Cuando el servicio se ha asegurado de que el usuario registrado realmente inicie la solicitud de firma de transacción, coloca la firma faltante utilizando su clave. Después de eso, la transacción se vuelve válida y se puede distribuir a la red para su confirmación.

La tercera clave se usa cuando se niega el servicio. El software genera esta clave y ofrece guardarla de una manera conveniente para usted. El usuario generalmente lo almacena en un lugar seguro. Si se niega el servicio, el usuario puede firmar la transacción con sus propias claves (segunda y tercera). Si la segunda clave se almacenó en el lado del servicio, se enviará al usuario un contenedor protegido con esta clave por adelantado a través de un canal de datos alternativo, por ejemplo, por correo electrónico. El usuario descifra el contenedor con la clave utilizando su contraseña.

El usuario recibe dos claves privadas necesarias y entra en el software especial que el servicio proporcionó por adelantado. Además, este software se ejecuta de forma autónoma en la computadora del usuario, sin la participación del servicio. Vale la pena señalar que este software debe usarse solo en casos extremos, cuando el servicio lo niega (es decir, fue pirateado, dañado o dejó de existir). Luego, el usuario firma la transacción con sus llaves y transfiere las monedas cuando sea necesario.

Beneficios de los servicios de billetera 2 de 3


Nos detendremos en las ventajas de dichos servicios de Wallet con más detalle. Esta es una forma segura de almacenar, porque el servicio no posee todo el conjunto de claves necesario: posee solo una parte, que no es suficiente para tomar posesión de los fondos. Además, ni el servicio en sí ni el hacker que puede descifrarlo tienen acceso a fondos.

La conveniencia de este enfoque es que el usuario no tiene que tener acceso seguro a este servicio. Puede tener un dispositivo normal que pueda estar infectado con virus o controlado por estafadores, y los datos pueden verse comprometidos o reemplazados. Pero no es suficiente que un atacante posea solo este dispositivo, porque solo se puede obtener una de las dos firmas.

Otra ventaja es que si el servicio lo niega, el usuario no pierde el acceso a sus monedas. Estos fueron solo algunos de los posibles esquemas para usar direcciones de múltiples firmas, que son suficientes para las citas.

Precauciones de firma múltiple


Y ahora vale la pena hablar sobre precauciones con respecto a la firma múltiple. En el caso de 2 de 2, debe crear transacciones LockTime que puedan transferir fondos bloqueados a una dirección específica. Esto es cierto cuando se produce la pérdida de clave.

Si está utilizando la dirección de firma múltiple 2 de 3, es muy importante que guarde las claves en un lugar seguro. En caso de pérdida de una de las tres claves, debe transferir fondos de inmediato y no esperar hasta el momento en que se pierdan 2 de las 3 claves necesarias.

Cómo funciona Bitcoin Script (por ejemplo)


Para comprender con más detalle cómo funciona la firma múltiple, necesitamos hablar un poco sobre cómo funciona Bitcoin Script: cómo se establecen las reglas para gastar monedas, cómo satisfacerlas, cuáles son las operaciones para describir las reglas, qué es Bitcoin Script y cómo se ejecuta.

Considere un ejemplo de un caso simple de gastar monedas, donde hay una dirección regular a la que se asocia un hash de una clave pública, un guión correspondiente que establece las condiciones para gastar y un guión que cumple estas condiciones.

imagen

En el diagrama a la izquierda vemos la pila de datos, y a la derecha el script en sí. Las dos primeras partes de la línea de script son la firma y la clave pública, el llamado script de desbloqueo, es decir, el script que se indica en la entrada de la transacción que gasta monedas. Esto es seguido por el conjunto de datos que se indica en la salida de la transacción; esto se denomina script de bloqueo. En otras palabras, aquí se presenta la concatenación de dos guiones: un guión que desbloquea monedas y un guión que bloquea monedas. En el caso en que el nodo de red ya valide la transacción, estos dos scripts se combinan para verificar las condiciones de gasto de monedas. Por lo tanto, el script de desbloqueo viene primero, seguido del script de bloqueo.

Después de esto es la ejecución secuencial de un conjunto completo de operandos y datos. El punto de ejecución se ejecuta secuencialmente para cada operando y cada pieza de datos. Si el punto de ejecución golpea una pieza de datos, entonces se empuja a la pila. Como vemos en el diagrama, el cursor de ejecución del script en la parte superior indica los datos de la firma, que luego se introducen en la pila.

Además, el cursor de ejecución apunta a la clave pública: también se inserta en la pila.

El tercer paso es realizar la operación de duplicación, lo que significa copiar la parte superior de la pila y volver a colocar estos datos en la pila.

Después de eso, el hash se realiza utilizando la función hash Hash-160. Esto significa que la parte superior de la pila se codifica primero con el algoritmo SHA-2 con una longitud de 256 bits y luego con la función RIPEMD-160 con una longitud de 160 bits. La operación es exactamente la misma que cuando se codifica la clave pública y se obtiene la dirección. De hecho, esto es todo.

imagen

Tenemos una pila, firma, clave pública y valor hash de la clave pública. El cursor de ejecución del script apunta a la dirección que se especificó en la salida de la transacción, es decir, el valor hash de la clave pública, que se indicó cuando se le enviaron las monedas. Este dato también se pone en la pila.

La siguiente operación es igual verificar.

imagen

Se comparan los dos elementos superiores de la pila. Si son exactamente el mismo byte, estos datos se eliminan de la pila y se cree que la verificación fue exitosa. Después de eso, la firma y la clave pública permanecen en la pila. En consecuencia, la operación de verificación de firma toma estos dos operandos y verifica la firma con la clave pública. Si la firma es correcta con respecto a la transacción, que actualmente se está verificando, porque la firma cubre parte de la transacción, por lo tanto, debe tomar el valor hash de ciertos campos de esta transacción. Esto se establece mediante un byte separado de la estructura de tipo hash, es decir, se toma un valor hash y se alimenta a la entrada de verificación de firma junto con la firma misma y la clave pública. Si la verificación se realiza correctamente, entonces el resultado de la verificación es verdadero, este valor se transfiere a la pila. Esto completa la ejecución del script. Los datos se pasan a la función de llamada y se verifican allí. Si la pila es verdadera, entonces la verificación de esta entrada de transacción fue correcta. Si todas las entradas de transacciones se han verificado correctamente, la transacción completa se considera correcta.

Aprendimos cómo funciona Bitcoin Script para verificar las entradas y salidas simples de una transacción. Ahora hablaremos sobre cómo se organiza la firma múltiple y cómo funciona cuando se utiliza Bitcoin Script.

P2SH


Una vez se propuso BIP16, que define un nuevo concepto en el protocolo de Bitcoin: el llamado hash de pago a script (P2SH). Esta es una oportunidad para establecer las reglas para gastar monedas que no están en un script abierto, donde escribe operandos y algunos datos en una fila, que luego se ejecutan de la manera que examinamos, pero en forma de un valor hash del script que necesita, es decir, una suma de comprobación de estos operandos. Esto permitió que la salida de la transacción estableciera condiciones grandes y complejas para gastar monedas, pero la salida en sí permaneció corta.

Para gastar estas monedas en tales condiciones, a la entrada de la transacción debe especificar los datos que satisfacen este script, y el script completo para demostrar que sabe qué condiciones se establecieron al enviar monedas, de modo que el valor hash del script de origen coincida con las direcciones a las que Se enviaron monedas. En otras palabras, demuestre que conoce las condiciones y las cumple.

Esta propuesta para mejorar Bitcoin fue aceptada el 3 de enero de 2012. De hecho, el cumpleaños de Bitcoin. Ahora se usa activamente para implementar direcciones de múltiples firmas.

¿Cómo funciona P2SH?


Veamos un ejemplo de cómo funciona esto. Para construir una transacción, necesitamos comprender conceptos como Canjear guión, Bloquear guión y Desbloquear guión.

Canjear secuencia de comandos contiene las claves públicas a las que se vinculará la dirección de múltiples firmas. En este caso, estamos considerando una combinación de teclas "2-de-5". Primero viene el valor 2, es decir, indicamos que serán necesarias 2 firmas, que serán verificadas por las claves públicas correspondientes. Esto es seguido por las claves públicas, en nuestro caso hay 5. Luego, indicamos el valor 5, ya que especificamos 5 claves públicas, y cuando los datos se leen en orden inverso, este valor es necesario para comprender cuántas claves necesita leer. Después de esto, se indica la operación de verificación de firma múltiple.

Secuencia de comandos de bloqueo: una secuencia de comandos que se indica en la salida de una transacción que paga por una dirección de múltiples firmas.Aquí se realizará la operación de obtener un valor hash, con el que ya nos hemos familiarizado en detalle. El siguiente es el valor de hash Redeem Script, que ocupa 20 bytes. Después de eso, se realiza una operación para verificar que los datos coincidan con el valor hash real.

Desbloquear script es una concatenación de scripts en la entrada de la transacción con scripts en la salida de la transacción que pagó a esta dirección. Hay dos firmas necesarias para gastar monedas, y el Script de canje completo, que luego se codificará y se comprobará para verificar el cumplimiento de la dirección a la que se enviaron las monedas. Después de eso, el script se ejecutará en su totalidad, incluso para verificar la firma múltiple.

Es importante que haya restricciones en el tamaño máximo para cada uno de los scripts enumerados y esto es 520 bytes. Este número se calculó sobre la base de que Desbloquear script puede caber en un máximo de 15 firmas y 15 claves públicas correspondientes, así como varias operaciones para verificar estos valores. Así es como se obtuvo un cierto número, que, al redondear, dio 520 bytes. Debe decirse que este número se obtuvo con la expectativa de que la dirección de múltiples firmas del tipo "15 de 15" es un límite lo suficientemente razonable para el uso práctico. Canjear script cuando se utiliza un gran número de firmas se vuelve muy grande en volumen. El usuario que usa la dirección de múltiples firmas u otras direcciones P2SH, cuando gasta monedas de ellas, tiene transacciones muy grandes. Significaque para confirmar sus transacciones tendrá que pagar grandes comisiones.

Beneficios de P2SH


Consideraremos por separado las ventajas de P2SH. La primera es que tales direcciones pueden codificarse en la forma familiar utilizando Base58, en la que su longitud es de 34 caracteres. De acuerdo con BIP13, que define las reglas para establecer el byte de versión para las direcciones de Bitcoin codificadas por Base58Check, la dirección comenzará con un triple, es decir, se inserta allí un byte de versión específico.

Como ejemplo, puede ver la dirección P2SH.

3P14159f73E4gFr7JterCCQh9QjiTjiZrG

Esto puede no ser una dirección de múltiples firmas. Canjear script puede describir no solo una dirección de múltiples firmas, sino también otras reglas complejas para gastar monedas.

Agregamos que esta no es la única forma de organizar la firma múltiple en Bitcoin. No puede usar P2SH, pero en el resultado que pagará la dirección de múltiples firmas, no el valor hash del script, sino el script en sí mismo, es decir, enumere todas las claves públicas directamente en el resultado y establezca la operación en multisignatura. Sin embargo, cuando envía monedas a esta dirección, divulga inmediatamente las claves públicas, ya que estarán en el dominio público y en ese momento las monedas se almacenarán en ellas.

Y otro inconveniente es que el remitente de las monedas en la dirección de múltiples firmas tiene una gran transacción, por lo que tendrá que pagar una gran comisión. Es poco probable que el remitente quiera pagar de más por el hecho de que el destinatario quiera usar la firma múltiple. P2SH le permite transferir los costos de comisión al destinatario. Si el destinatario quiere aceptar monedas en la dirección de múltiples firmas, él mismo pagará las grandes transacciones, lo cual es un enfoque más justo.

Agregamos que P2SH le permite implementar diferentes combinaciones de dicha firma múltiple (2 de 2, 2 de 3 y otras).
Considere esquemáticamente el envío a una dirección de firma múltiple.

imagen

Supongamos que Alice quiere pagarle a Bob, que usa solo direcciones de múltiples firmas. Para hacer esto, Bob localmente en su computadora (por cierto, puede haber algún tipo de organización en lugar de Bob) genera varias claves privadas, recibe de ellas las claves públicas correspondientes, que se concatenan de cierta manera. Muy a menudo, las claves públicas se codifican primero con Base58Check, y luego se ordenan alfabéticamente y luego se concatenan.

Este enfoque vale la pena cuando se requiere el recálculo de claves públicas a partir de claves personales. Deben ser concatenados exactamente en el mismo orden, porque el siguiente paso es crear un Script de canje y hash. Si exactamente las mismas claves entran en Canjear script, pero en un orden diferente, obtendremos un valor hash diferente y una dirección diferente. Esto implicará ciertos malentendidos. Por lo tanto, antes de la concatenación, las claves públicas deben clasificarse de acuerdo con alguna regla. Y con mayor frecuencia utilizan la clasificación alfabética en el sistema de números Base58.

Entonces Bob calculó el valor hash de Canjear script. Él puede representarlo como 20 bytes y enviarlo a Alice, diciendo que esta es una dirección de múltiples firmas usando P2SH. Sin embargo, Bob puede codificarlo con un byte de versión, como una dirección normal, y simplemente enviarlo a Alice. Alice entenderá por el byte de la versión que esta es una dirección de múltiples firmas, compondrá una transacción y completará su salida en consecuencia para que Bob reciba sus monedas. Luego propaga la transacción a la red. Están esperando confirmación y Bob acepta el pago de Alice. Bob de reemplazo, por ejemplo, proporciona un servicio o transfiere bienes.

Llega un momento en que Bob quiere gastar estas monedas. Debe entenderse que el script de canje completo no se divulgó públicamente mientras las monedas estaban en su dirección de firma múltiple. E incluso Alice no vio exactamente qué claves públicas usaba Bob, cuántas de ellas había, etc. Ella no sabe en absoluto por qué reglas se compone esta dirección P2SH, dirección de múltiples firmas o no, etc. Por consiguiente, ataques a dispositivos electrónicos. Todavía no es posible una firma digital (en una curva elíptica).

Digamos que Bob quiere enviar un pago a Eve.

imagen

Ella genera una nueva dirección y se la da a Bob. Crea una transacción en blanco en la entrada de la cual indica la transacción en la que recibió monedas de Alice, y la salida es la dirección de Eva. Ahora debe proporcionar evidencia de la propiedad de las monedas que gasta. Para hacer esto, toma dos de sus claves privadas (mencionamos anteriormente que su dirección de múltiples firmas implica la opción “2 de 5”), a partir de la cual calcula dos firmas para esta transacción. A continuación, toma el Script de canje completo y lo agrega a la entrada de la transacción.

Tenga en cuenta que este Redeem Script debe almacenarse en la computadora de Bob por completo o debe recordar el orden en que usó las claves públicas para componer este script. Si aplicó ciertas reglas de clasificación, entonces debe recordarlas. También debe recordar que una dirección de múltiples firmas está vinculada a ciertas claves privadas. Sin este conocimiento, Bob no habría sabido en cuál de sus claves privadas operar y en qué orden deberían ser procesadas para obtener la dirección deseada.

Por lo tanto, tiene dos firmas y un script de canje completo. La transacción se considera correcta y Bob la distribuye a la red, y luego espera la confirmación. Esto es lo principal de gastar con una dirección de múltiples firmas.

Preguntas


Ahora llegamos a sus preguntas.

- ¿Es posible ejecutar la misma billetera simultáneamente en tres computadoras diferentes e iniciar la sincronización?

Lo más probable es que estemos hablando de algún tipo de nodo de red: un nodo SPV o un nodo completo. Se usaron varias computadoras diferentes y la misma billetera. Y una billetera significa llaves privadas. Hay varios nodos completos que implementan la funcionalidad de billetera. En estos nodos, insertamos las mismas claves privadas y comenzamos la sincronización. Lo más probable es que, con la sincronización completa con la red, veamos el mismo saldo en cada billetera que usa su propio nodo. Si ve cambios en un nodo, luego de la sincronización con la red verá exactamente los mismos cambios en todos los demás nodos. La transacción no se mantiene en secreto, se distribuye a todos los nodos que la verifican y muestran los cambios correspondientes, si se trata de sus direcciones. De hecho, sí, puede usar las mismas teclas en varios nodos,pero todas las transacciones también se sincronizarán automáticamente. Bitcoins ciertamente no se duplicará con esto y, además, no se triplicará.

— P2SH Segregated Witness?

Testigo segregado es una estructura de transacción en la que la evidencia de la propiedad de las monedas se transfiere a una estructura separada, no caen en la cadena de bloques, pero al validar las transacciones, se distribuyen juntas, es decir, todos los validadores verifican la corrección de las transacciones en una estructura separada con prueba. Después de que se confirma la transacción, la evidencia no se guarda, ya que no tiene sentido. También hay ventajas en la construcción de tales cadenas de transacciones en las que ciertas monedas sin confirmación real en la transacción actual ya se gastan en la próxima construida sobre la base de esta, pero no se distribuyen a la red. Por lo tanto, se forman cadenas de transacciones que no revelan evidencia de propiedad de monedas. Esto facilita la transferencia de datos y agrega privacidad. Se utilizó un tipo diferente de dirección para Testigo segregado,Contiene operandos ligeramente diferentes. Es posible enviar monedas almacenadas en direcciones regulares, incluidas las direcciones P2SH, a las direcciones Witness P2SH.

- ¿Las direcciones de los tres primeros comienzan en Lighting Network?

BIP13 define las reglas mediante las cuales se selecciona un byte de versión para las direcciones de Bitcoin en la red de prueba, otras monedas, etc. Sí, Lighting Network usa direcciones de múltiples firmas, que también usan el método P2SH para establecer condiciones.

- ¿Por qué es imposible personalizar una billetera, es decir, vincularla a una persona específica?
Bitcoin como protocolo de un sistema de pago no requiere la identificación de la identidad de una billetera, porque funciona de acuerdo con las leyes de las matemáticas, y las matemáticas no permiten describir a una persona como persona. Además, este no es un requisito previo para verificar las transacciones. Hay suficiente firma digital. Quien pueda generar tales firmas es su propietario; esto no se aplica al protocolo de Bitcoin. Por lo tanto, una firma puede ser propiedad de una persona, un grupo de varias personas, un robot, etc.
En cuanto a la personalización, si establece una conexión entre una dirección específica y una persona específica, viola la privacidad y puede desanonizar parte de la red con un cierto grado de probabilidad. En general, la base de datos está abierta, pero no contiene datos de identidad.

— , 70-80%, ?

Está bien escrito que esta es una moneda, no una criptomoneda, porque la criptomoneda funciona con los mismos principios que Bitcoin, es decir, todos los procesos están máximamente descentralizados: emisión, verificación de transacciones, almacenamiento de datos, aceptación de cambios, etc. Pero existen tales monedas. , los llamaremos monedas digitales, en las que no todos los procesos enumerados están descentralizados. Una de las opciones puede ser un problema centralizado, es decir, no existe la minería, la minería, es decir, no hay solución para un problema complejo. De acuerdo con este principio, Ripple, Stellar, moneda digital NXT, Cardano funcionan. Allí se aplicaron otros principios de distribución de monedas entre los usuarios, por ejemplo, a través de ICO, prueba de identidad, etc. Debido al hecho de que no todos los procesos pueden ser descentralizados e independientes, no se puede nombrar ninguna moneda digitalcriptomoneda . Además, la cuestión de la confianza en una moneda en particular es de naturaleza personal. Usted decide el monto de este fideicomiso. Es necesario tener en cuenta los fines para los que se utiliza la moneda, así como sus riesgos y limitaciones.

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


All Articles