Dans cet article, nous verrons comment fonctionne la multi-signature dans le protocole Bitcoin. Veuillez noter que dans d'autres crypto-monnaies et monnaies numériques, ces mécanismes peuvent être mis en œuvre différemment - cela dépend du modèle de transaction. Nous donnerons une définition de la multi-signature, nous analyserons schématiquement sa structure à l'aide d'un exemple de transaction, envisagerons des options pour son utilisation et des précautions lors de son utilisation. Nous essaierons de divulguer ouvertement le sujet des améliorations proposées, P2SH, et également sur le diagramme nous analyserons le mécanisme d'envoi d'un paiement à une adresse avec une multi-signature. Nous pensons que le matériel présenté intéressera les lecteurs dont l'activité ou le domaine d'intérêt concerne les monnaies numériques.
Adresse multisignature
L'adresse multisignature (adresse multisig, pour faire court) est une adresse Bitcoin à laquelle plusieurs paires de clés ECDSA sont attachées à la fois. Chaque paire se compose de clés privées et publiques. Les modèles de combinaison selon lesquels ces touches peuvent être utilisées peuvent être différents. De plus, il est possible d'établir des conditions dans lesquelles il sera nécessaire de fournir plusieurs signatures pour dépenser des pièces de l'adresse.
Transaction Bitcoin utilisant plusieurs signatures
Plus en détail, il peut être affiché schématiquement. Pour l'instant, il suffit d'imaginer au figuré qu'une adresse multisignature est formée en hachant simultanément plusieurs clés publiques concaténées. Nous examinerons cela plus en détail un peu plus loin. Le diagramme montre une transaction qui passe avec une adresse multisignature.

Le gris indique la zone de titre. Il contient deux champs. Deux entrées sont indiquées en bleu et deux sorties en vert. La première entrée contient les champs remplis: la valeur de hachage de la transaction précédente est écrite, qui dépense les données de la pièce, le numéro de sortie, etc. Le champ scriptSig contient la clé publique et la signature, ce qui est typique d'une transaction normale.
Faites attention à la deuxième entrée de la transaction. Le champ scriptSig contient une autre combinaison de données: deux clés publiques et deux signatures sont répertoriées. Ils doivent être vérifiés respectivement par ces clés publiques. Il s'agit de l'entrée de transaction qui dépense des pièces avec une adresse multisignature. Voilà à quoi ressemblera la preuve de propriété des pièces.
Options de combinaison de touches
Il existe différentes combinaisons de touches lors de l'utilisation de l'adresse multisignature. Les options les plus utilisées sont 2 sur 2, 2 sur 3 et 3 sur 3. L'option maximale possible est de 15 sur 15.
La combinaison la plus simple est 2 sur 2. Cela implique qu'il existe une adresse multisignature à laquelle deux paires de clés sont liées, en fait, deux clés publiques sont hachées d'affilée et une certaine adresse est reçue. Pour dépenser des pièces de cette adresse, vous devez fournir deux signatures qui seront vérifiées par deux clés publiques disponibles, dont la concaténation et le hachage dans le bon ordre devraient donner la même valeur de l'adresse. En résumé, il y a deux clés préinstallées et vous avez besoin de deux signatures, qui seront vérifiées par ces clés, respectivement.
L'utilisation de l'adresse multisignature 2-de-3 implique que deux des trois clés prédéfinies doivent être utilisées pour vérifier les deux signatures présentées comme preuve de propriété des pièces. En d'autres termes, pour dépenser des pièces, vous devez fournir deux signatures qui seront vérifiées par deux clés publiques parmi les trois prédéfinies.
La combinaison de 3 sur 3, comme vous l'avez déjà compris, nécessite trois signatures, qui seront vérifiées par trois clés préinstallées. Le nombre maximal de signatures et de clés publiques requises sera le schéma 15 sur 15.
Passons en revue les options d'utilisation de ces combinaisons.
2 sur 2
Imaginez qu'un mari et une femme voulaient maintenir un budget commun.

Ils conviennent que ce n'est qu'avec le consentement de chacun d'eux que les fonds du budget seront dépensés pour certains besoins. Avec Bitcoin, cela peut être mis en œuvre tout simplement. Ils créent une adresse multisignature selon ce schéma, où la femme contrôle une clé et le mari contrôle la seconde. Ensuite, la famille recevra tous les revenus à ces adresses et l'argent ne pourra être dépensé que d'un commun accord.
Prédire votre question sur le scénario lorsque le mari et la femme ne sont pas d'accord, imaginez que la femme juge nécessaire d'acheter une machine à laver, car elle est fatiguée de se laver les mains, et le mari pense que ce n'est pas un travail si dur, et il sera plus judicieux de dépenser toutes les pièces de monnaie pour le dernier modèle PlayStation et passez ainsi votre temps libre. L'épouse s'offusque de son mari et mange un morceau de papier avec sa clé privée, ce qui rend les dépenses de cette adresse impossibles du tout.
Comment éviter une telle situation et protéger les pièces de la perte finale de pièces?
Il est possible de créer une transaction qui dépensera tous les fonds de l'adresse souhaitée, malgré le fait que le montant n'est pas connu à l'avance. L'entrée n'est pas le montant, mais un lien vers la transaction, d'où ces pièces peuvent être dépensées. Il existe un
type de hachage , qui est un moyen de couvrir avec une signature de transaction. Il vous permet de créer une signature à l'avance et certaines données de transaction, telles que la saisie, peuvent être remplacées ultérieurement. Ainsi, vous pouvez créer une transaction qui dépensera des pièces d'une transaction qui n'existe pas encore, et l'appliquer plus tard, c'est-à-dire lorsqu'elle sera nécessaire.
De plus, vous pouvez mettre une restriction LockTime sur cette transaction. Il vous permet de ne pas confirmer la transaction immédiatement, mais de la reporter pour un certain temps. Ainsi, le mari et la femme immédiatement après avoir créé une adresse multisignature, avant même de recevoir des paiements, peuvent créer deux transactions LockTime dans lesquelles toutes les futures pièces seront redirigées vers les adresses habituelles du mari et de la femme, qu'ils contrôlent indépendamment. Dans le même temps, les transactions seront différées et ne pourront être confirmées, par exemple, qu'après deux mois. Ces transactions peuvent être imprimées sur papier et stockées individuellement dans un coffre-fort. Si une situation se produit lorsque les pièces se trouvent sur le solde de l'adresse multisignature et que les clés sont perdues (une ou les deux), les pièces deviennent gelées. Mais il y a une transaction LockTime. Quiconque publie une telle transaction pourra retirer ces fonds vers une adresse externe valide. Les pièces seront enregistrées. Il s'agit d'un exemple simplifié, mais des mécanismes plus complexes sont possibles.
2 sur 3
Supposons qu'il y ait un groupe de personnes qui ont un budget commun.

Ils créent une adresse multisignature dans laquelle il y a trois clés, mais deux signatures suffisent pour signer la transaction. Avec le consentement des participants qui constituent la majorité du groupe, ces fonds peuvent être dépensés. En d'autres termes, deux participants sur trois peuvent dépenser des pièces. Pour ce faire, il suffit de répartir la transaction sur le réseau.
Exemple de service de portefeuille
Il existe une façon plus intéressante d'utiliser la combinaison 2 sur 3 et elle est utilisée dans les services dits de portefeuille. Dans ce contexte, le service de portefeuille ne doit pas être confondu avec le portefeuille Bitcoin habituel, que l'utilisateur contrôle indépendamment. Le service ne fournit pas de stockage complet pour les pièces et ne les possède pas, mais fournit uniquement des services pour un travail pratique.
Si vous imaginez cette situation de manière schématique, alors une clé appartient directement au service, la seconde est générée uniquement par l'utilisateur (et lui seul le sait), la troisième clé est générée et stockée par l'utilisateur également, mais séparément. Après cela, les clés publiques correspondant à ces clés personnelles sont calculées et une adresse multisignature est compilée. Les pièces y arrivent et maintenant les conditions de dépenses sont limitées.

Imaginez que nous avons affaire à un certain service Web et que vous pouvez entrer sa ressource via un navigateur. Le navigateur télécharge le code du portefeuille Bitcoin, qui à cette adresse reçoit une liste des pièces non dépensées, calcule leur solde et est prêt à dépenser. Si l'utilisateur souhaite dépenser des pièces, il effectue une transaction directement dans le navigateur et la signe avec sa signature (l'une des nécessaires).
Notez que l'utilisateur peut recevoir la clé privée soit à partir de son mot de passe, soit la clé peut être générée de manière aléatoire, chiffrée avec le mot de passe de l'utilisateur et stockée sur le service. Ensuite, l'utilisateur envoie une demande au service, reçoit un conteneur avec une clé chiffrée, le déchiffre avec son mot de passe et a déjà accès à sa clé privée.
Lorsqu'un utilisateur signe une transaction, celle-ci est envoyée du côté du service afin qu'elle place la deuxième signature nécessaire et envoie la transaction. Le service clarifie le fait de la nécessité de signer la transaction via le deuxième canal d'authentification, c'est-à-dire via un canal différent défini à l'avance, qui peut être un appel vers un téléphone mobile, un SMS, un e-mail et d'autres méthodes de communication alternatives (jusqu'à une visite personnelle, si le niveau de sécurité l'exige) . Lorsque le service a vérifié que l'utilisateur enregistré initie réellement la demande de signature de transaction, il place la signature manquante à l'aide de sa clé. Après cela, la transaction devient valide et peut être distribuée au réseau pour confirmation.
La troisième clé est utilisée lorsque le service se voit refuser le service. Le logiciel génère cette clé et propose de l'enregistrer d'une manière qui vous convient. L'utilisateur le stocke généralement dans un endroit sûr. Si le service est refusé, l'utilisateur peut signer la transaction avec ses propres clés (deuxième et troisième). Si la deuxième clé a été stockée côté service, un conteneur protégé avec cette clé sera envoyé à l'avance à l'utilisateur via un autre canal de données, par exemple par e-mail. L'utilisateur déchiffre le conteneur avec la clé à l'aide de son mot de passe.
L'utilisateur reçoit deux clés privées nécessaires et entre dans le logiciel spécial que le service a fourni à l'avance. De plus, ce logiciel fonctionne de manière autonome sur l'ordinateur de l'utilisateur, sans la participation du service. Il convient de noter que ce logiciel ne doit être utilisé que dans des cas extrêmes, lorsque le service refuse le service (c'est-à-dire qu'il a été piraté, endommagé ou a cessé d'exister). Ensuite, l'utilisateur signe la transaction avec ses clés et transfère les pièces si nécessaire.
Avantages des services de portefeuille 2 sur 3
Nous nous attarderons plus en détail sur les avantages de ces services Google Wallet. C'est un moyen sûr de stocker, car le service ne possède pas tout le jeu de clés nécessaire - il ne possède qu'une seule partie, ce qui n'est pas suffisant pour prendre possession des fonds. De plus, ni le service lui-même ni le pirate informatique qui peut le pirater n'ont accès à des fonds.
La commodité de cette approche est que l'utilisateur n'a pas besoin d'avoir un accès sécurisé à ce service. Il peut avoir un appareil ordinaire qui peut être infecté par des virus ou contrôlé par des escrocs, et les données peuvent être compromises ou remplacées. Mais il ne suffit pas qu'un attaquant ne possède que cet appareil, car une seule des deux signatures peut en être obtenue.
Un autre avantage est que si le service refuse le service, l'utilisateur ne perd pas l'accès à ses pièces. Ce ne sont là que quelques-uns des schémas possibles d'utilisation des adresses multisignatures, qui sont suffisants pour la datation.
Précautions concernant les signatures multiples
Et maintenant, il vaut la peine de parler des précautions concernant la multi-signature. Dans le cas de 2 sur 2, vous devez créer des transactions LockTime qui peuvent transférer des fonds bloqués vers une adresse spécifique. Cela est vrai en cas de perte de clé.
Si vous utilisez une adresse multisignature 2 sur 3, il est très important de conserver les clés en lieu sûr. En cas de perte de l'une des trois clés, vous devez immédiatement transférer des fonds et ne pas attendre le moment où 2 des 3 clés nécessaires sont perdues.
Comment fonctionne le script Bitcoin (par exemple)
Afin de comprendre plus en détail le fonctionnement de la multi-signature, nous devons parler un peu du fonctionnement du script Bitcoin: comment les règles de dépense des pièces sont définies, comment les satisfaire, quelles sont les opérations de description des règles, qu'est-ce que le script Bitcoin et comment est-il exécuté.
Prenons un exemple de cas simple de dépense de pièces, où il existe une adresse régulière à laquelle un hachage d'une clé publique est associé, un script correspondant qui définit les conditions de dépenses et un script qui remplit ces conditions.

Dans le diagramme à gauche, nous voyons la pile de données et à droite le script lui-même. Les deux premières parties de la ligne de script sont la signature et la clé publique, le soi-disant script de déverrouillage, c'est-à-dire le script qui est indiqué dans l'entrée de la transaction qui dépense des pièces. Ceci est suivi par l'ensemble de données qui est indiqué dans la sortie de transaction - c'est ce qu'on appelle un script de verrouillage. En d'autres termes, la concaténation de deux scripts est présentée ici: un script qui déverrouille les pièces et un script qui verrouille les pièces. Dans le cas où la transaction sera déjà validée par le nœud de réseau, ces deux scripts sont combinés pour vérifier les conditions de dépense des pièces. Ainsi, le script de déverrouillage vient en premier, suivi du script de verrouillage.
Après cela, l'exécution séquentielle d'un ensemble complet d'opérandes et de données. Le point d'exécution s'exécute séquentiellement pour chaque opérande et chaque élément de données. Si le point d'exécution atteint un élément de données, il est poussé sur la pile. Comme nous le voyons dans le diagramme, le curseur d'exécution de script en haut indique les données de signature, qui sont ensuite poussées sur la pile.
De plus, le curseur d'exécution pointe vers la clé publique - elle est également poussée sur la pile.
La troisième étape consiste à effectuer l'opération de duplication, ce qui signifie copier le haut de la pile et remettre ces données sur la pile.
Après cela, le hachage est effectué à l'aide de la fonction de hachage Hash-160. Cela signifie que le haut de la pile est haché d'abord par l'algorithme SHA-2 à une longueur de 256 bits, puis par la fonction RIPEMD-160 à une longueur de 160 bits. L'opération est exactement la même que lors du hachage de la clé publique et de l'obtention de l'adresse. En fait, c'est ça.

Nous avons une pile, une signature, une clé publique et une valeur de hachage de la clé publique. Le curseur d'exécution du script pointe vers l'adresse qui a été spécifiée dans la sortie de la transaction, c'est-à-dire la valeur de hachage de la clé publique, qui a été indiquée lors de l'envoi des pièces. Cette donnée se retrouve également sur la pile.
L'opération suivante est égale à vérifier.

Les deux premiers éléments de la pile sont comparés. S'ils ont exactement le même octet, ces données sont supprimées de la pile et l'on pense que la vérification a réussi. Après cela, la signature et la clé publique restent sur la pile. En conséquence, l'opération de vérification de signature prend ces deux opérandes et vérifie la signature avec la clé publique. Si la signature est correcte par rapport à la transaction, qui est actuellement en cours de vérification, car la signature couvre une partie de la transaction, vous devez donc prendre la valeur de hachage de certains champs de cette transaction. Ceci est défini par un octet distinct de la structure de type hachage, c'est-à-dire qu'une valeur de hachage est prise et envoyée à l'entrée de vérification de signature avec la signature elle-même et la clé publique. Si la vérification se produit correctement, le résultat de la vérification est vrai, cette valeur est poussée sur la pile. Ceci termine l'exécution du script. Les données sont transmises à la fonction appelante et vérifiées à cet endroit. Si la pile est vraie, la vérification de cette entrée de transaction était correcte. Si toutes les entrées de transaction ont été correctement vérifiées, alors la transaction entière est considérée comme correcte.
Nous avons appris comment Bitcoin Script fonctionne pour vérifier les entrées et sorties simples d'une transaction. Nous allons maintenant parler de l'organisation de la multisignature et de son fonctionnement lors de l'utilisation du script Bitcoin.
P2SH
Le BIP16 a été proposé une fois, ce qui définit un nouveau concept dans le protocole Bitcoin - le soi-disant hash pay to script (P2SH). C'est l'occasion de définir les règles pour dépenser des pièces non dans un script ouvert, où vous écrivez des opérandes et des données d'affilée, qui sont ensuite exécutés de la manière que nous avons examinée, mais sous la forme d'une valeur de hachage du script dont vous avez besoin, c'est-à-dire une somme de contrôle de ces opérandes. Cela a permis à la sortie de la transaction de fixer des conditions importantes et complexes pour dépenser des pièces, mais la sortie elle-même est restée courte.
Afin de dépenser ces pièces dans de telles conditions, à l'entrée de la transaction, vous devez spécifier les données qui satisfont ce script, et le script entier pour prouver que vous savez quelles conditions ont été définies lors de l'envoi de pièces, de sorte que la valeur de hachage du script source corresponde aux adresses auxquelles des pièces ont été envoyées. En d'autres termes, prouvez que vous connaissez les conditions et que vous remplissez ces conditions.
Cette proposition visant à améliorer le Bitcoin a été acceptée le 3 janvier 2012. En fait, l'anniversaire de Bitcoin. Maintenant, il est activement utilisé pour implémenter une adresse multisignature.
Comment fonctionne P2SH?
Regardons un exemple de comment cela fonctionne. Pour créer une transaction, nous devons avoir une compréhension des concepts tels que Redeem Script, Locking Script et Unlocking Script.
Redeem Script contient les clés publiques auxquelles l'adresse multisignature sera liée. Dans ce cas, nous envisageons une combinaison de touches «2 sur 5». Vient d'abord la valeur 2, c'est-à-dire que nous indiquons que 2 signatures seront nécessaires, qui seront vérifiées par les clés publiques correspondantes. Ceci est suivi par les clés publiques, dans notre cas il y en a 5. Ensuite, nous indiquons la valeur 5, puisque nous avons spécifié 5 clés publiques, et lorsque les données sont lues dans l'ordre inverse, cette valeur est nécessaire pour comprendre combien de clés vous devez lire. Après cela, le contrôle de fonctionnement multisignature est indiqué.
Script de verrouillage - un script qui est indiqué dans la sortie d'une transaction qui paie pour une adresse multisignature.
Ici, l'opération d'obtention d'une valeur de hachage sera effectuée, avec laquelle nous avons déjà pris connaissance en détail. Ensuite, la valeur de hachage Redeem Script, qui prend 20 octets. Après cela, une opération est effectuée pour vérifier que les données correspondent à la valeur de hachage réelle.Unlocking Script est une concaténation de scripts à l'entrée de la transaction avec des scripts à la sortie de la transaction qui a payé à cette adresse. Il y a deux signatures nécessaires pour dépenser des pièces, et le script de rachat complet, qui sera plus tard haché et vérifié pour vérifier la conformité avec l'adresse à laquelle les pièces ont été envoyées. Après cela, le script sera exécuté dans son intégralité, y compris pour vérifier la multi-signature.Il est important qu'il y ait des restrictions sur la taille maximale pour chacun des scripts répertoriés, ce qui représente 520 octets. Ce nombre a été calculé sur la base que Unlocking Script peut contenir un maximum de 15 signatures et 15 clés publiques correspondantes, ainsi que plusieurs opérations pour vérifier ces valeurs. C'est ainsi qu'un certain nombre a été obtenu, ce qui, lors de l'arrondi, a donné 520 octets. Il faut dire que ce nombre a été obtenu dans l'espoir que l'adresse multisignature de type "15 sur 15" soit une limite suffisamment raisonnable pour une utilisation pratique. Utiliser le script lorsque vous utilisez un grand nombre de signatures devient très volumineux. L'utilisateur qui utilise l'adresse multisignature ou d'autres adresses P2SH, lors de la dépense de pièces, a de très grandes transactions. Cela signifieque pour confirmer ses transactions, il devra payer des commissions importantes.Avantages de P2SH
Nous considérerons séparément les avantages de P2SH. La première est que ces adresses peuvent être encodées sous la forme familière à l'aide de Base58, dans lequel leur longueur est de 34 caractères. Conformément au BIP13, qui définit les règles de définition de l'octet de version pour les adresses Bitcoin codées par Base58Check, l'adresse commencera par un triple, c'est-à-dire qu'un octet de version spécifique y est inséré.Par exemple, vous pouvez voir l'adresse P2SH.3P14159f73E4gFr7JterCCQh9QjiTjiZrGIl ne s'agit peut-être pas d'une adresse multisignature. Redeem Script peut décrire non seulement une adresse multisignature, mais aussi d'autres règles complexes pour dépenser des pièces.Nous ajoutons que ce n'est pas le seul moyen d'organiser la multi-signature en Bitcoin. Vous ne pouvez pas utiliser P2SH, mais dans la sortie qui paiera pour l'adresse multisignature, pas la valeur de hachage du script, mais le script lui-même, c'est-à-dire répertorier toutes les clés publiques directement dans la sortie et définir l'opération sur multisignature. Cependant, lorsque vous envoyez des pièces à cette adresse, vous divulguez immédiatement les clés publiques, car elles seront dans le domaine public et à ce moment-là, les pièces y seront stockées.Et un autre inconvénient est que l'expéditeur de pièces à l'adresse multisignature a une grosse transaction, pour laquelle vous devrez payer une grosse commission. Il est peu probable que l'expéditeur veuille surpayer le fait que le destinataire souhaite utiliser la multisignature. P2SH vous permet de transférer les frais de commission au destinataire. Si le destinataire souhaite accepter des pièces à l'adresse multisignature, il paiera lui-même les transactions importantes, ce qui est une approche plus équitable.Nous ajoutons que P2SH vous permet d'implémenter différentes combinaisons de telles multisignatures (2-sur-2, 2-sur-3 et autres).Envisagez schématiquement l'envoi à une adresse multisignature.
Supposons qu'Alice veuille payer Bob, qui n'utilise que des adresses multisignatures. Pour ce faire, Bob localement sur son ordinateur (à propos, il peut y avoir une sorte d'organisation au lieu de Bob) génère plusieurs clés privées, reçoit d'eux les clés publiques correspondantes, qui sont concaténées d'une certaine manière. Le plus souvent, les clés publiques sont d'abord encodées avec Base58Check, puis elles sont triées par ordre alphabétique, puis concaténées.Cette approche est payante lorsqu'un recalcul des clés publiques à partir des clés personnelles est requis. Ils doivent être concaténés exactement dans le même ordre, car l'étape suivante consiste à créer un script de rachat et à le hacher. Si les mêmes clés exactes entrent dans Redeem Script, mais dans un ordre différent, nous obtiendrons une valeur de hachage différente et une adresse différente. Cela entraînera certains malentendus. Par conséquent, avant la concaténation, les clés publiques doivent être triées selon une règle. Et le plus souvent, ils utilisent le tri alphabétique dans le système numérique Base58.Bob a donc calculé la valeur de hachage à partir de Redeem Script. Il peut le représenter comme 20 octets et l'envoyer à Alice, en disant qu'il s'agit d'une adresse multisignature utilisant P2SH. Cependant, Bob peut le coder avec un octet de version, comme une adresse régulière, et l'envoyer simplement à Alice. Alice comprendra à partir de l'octet de version qu'il s'agit d'une adresse multisignature, composera une transaction et remplira sa sortie en conséquence afin que Bob reçoive ses pièces. Il propage ensuite la transaction au réseau. Ils attendent la confirmation et Bob accepte le paiement d'Alice. Bob de remplacement, par exemple, fournit un service ou transfère des marchandises.Il arrive un moment où Bob veut dépenser ces pièces. Il faut comprendre que le script de rachat complet n'a pas été rendu public alors que les pièces étaient à son adresse multisignature. Et même Alice n'a pas vu exactement quelles clés publiques Bob a utilisées, combien il y en avait, etc. Elle ne sait pas du tout par quelles règles cette adresse P2SH est composée, adresse multisignature ou non, etc. En conséquence, les attaques contre les appareils électroniques Une signature numérique (sur une courbe elliptique) n'est toujours pas possible.Disons que Bob veut envoyer un paiement à Eve.
Elle génère une nouvelle adresse et la donne à Bob. Il crée une transaction vierge dans l'entrée dont il indique la transaction dans laquelle il a reçu des pièces d'Alice, et la sortie est l'adresse d'Eva. Maintenant, il doit fournir la preuve de la propriété des pièces qu'il dépense. Pour ce faire, il prend deux de ses clés privées (nous avons mentionné ci-dessus que son adresse multisignature suppose l'option «2 sur 5»), à partir de laquelle il calcule deux signatures pour cette transaction. Ensuite, il prend le script de rachat complet et l'ajoute à l'entrée de transaction.Veuillez noter que ce script d'échange doit être entièrement stocké sur l'ordinateur de Bob ou il doit se souvenir de l'ordre dans lequel il a utilisé les clés publiques pour composer ce script. S'il a appliqué certaines règles de tri, il doit s'en souvenir. Il doit également se rappeler qu'une adresse multisignature est liée à certaines clés privées. Sans cette connaissance, Bob n'aurait pas su sur laquelle de ses clés privées opérer et dans quel ordre elles devaient être hachées pour obtenir l'adresse souhaitée.Il a donc deux signatures et un script de rachat complet. La transaction est considérée comme correcte et Bob la distribue au réseau, puis attend sa confirmation. C'est l'essentiel des dépenses avec une adresse multisignature.Des questions
Nous arrivons maintenant à vos questions.- Est-il possible d'exécuter le même portefeuille simultanément sur trois ordinateurs différents et de démarrer la synchronisation?Il s'agit très probablement d'une sorte de nœud de réseau: soit un nœud SPV, soit un nœud complet. Plusieurs ordinateurs différents et le même portefeuille ont été utilisés. Et un portefeuille signifie des clés privées. Il existe plusieurs nœuds complets qui implémentent la fonctionnalité de portefeuille. Sur ces nœuds, nous insérons les mêmes clés privées et commençons la synchronisation. Très probablement, avec une synchronisation complète avec le réseau, nous verrons le même équilibre sur chaque portefeuille qui utilise son propre nœud. Si vous voyez des changements sur un nœud, alors après la synchronisation avec le réseau, vous verrez exactement les mêmes changements sur tous les autres nœuds. La transaction n'est pas gardée secrète, elle est distribuée à tous les nœuds qui la vérifient et affichent les modifications correspondantes, s'il s'agit de leurs adresses. En fait, oui, vous pouvez utiliser les mêmes clés sur plusieurs nœuds,mais toutes les transactions seront également synchronisées automatiquement. Les bitcoins ne doubleront certainement pas de cela et, en outre, ne tripleront pas.— P2SH Segregated Witness?Le témoin distinct est une telle structure de transaction où la preuve de la propriété des pièces est transférée dans une structure distincte, elles ne tombent pas dans la blockchain, mais lors de la validation des transactions, elles sont distribuées ensemble, c'est-à-dire que tous les validateurs vérifient l'exactitude des transactions dans une structure séparée avec une preuve. Une fois la transaction confirmée, les preuves ne sont pas enregistrées, car elles n'ont aucun sens. Il existe également des avantages à construire de telles chaînes de transactions dans lesquelles certaines pièces sans confirmation réelle dans la transaction en cours sont déjà dépensées dans la suivante construite sur sa base, mais elles ne sont pas distribuées au réseau. Ainsi, des chaînes de transactions se forment qui ne révèlent pas de preuve de propriété des pièces. Cela facilite le transfert de données et ajoute de la confidentialité. Un type d'adresse différent a été utilisé pour le témoin isolé,il contient des opérandes légèrement différents. Il est possible d'envoyer des pièces stockées à des adresses régulières, y compris des adresses P2SH, à des adresses de témoins P2SH.- Les adresses des trois premiers commencent-elles dans le réseau d'éclairage?BIP13 définit les règles selon lesquelles un octet de version est sélectionné pour les adresses Bitcoin dans le réseau de test, d'autres devises, etc. Oui, Lighting Network utilise des adresses multisignatures, qui utilisent également la méthode P2SH pour définir les conditions.- Pourquoi est-il impossible de personnaliser un portefeuille, c'est-à-dire de le lier à une personne spécifique?Le bitcoin en tant que protocole d'un système de paiement ne nécessite pas l'identification de l'identité d'un portefeuille, car il fonctionne selon les lois des mathématiques et les mathématiques ne permettent pas de décrire une personne comme une personne. De plus, ce n'est pas une condition préalable à la vérification des transactions. Il y a suffisamment de signature numérique. Celui qui peut générer de telles signatures est leur propriétaire - cela ne s'applique pas au protocole Bitcoin. Par conséquent, une signature peut être détenue par une personne, un groupe de plusieurs personnes, un robot, etc.En ce qui concerne la personnalisation, si vous établissez une connexion entre une adresse spécifique et une personne spécifique, vous violez la confidentialité et pouvez deanonymiser une partie du réseau avec un certain degré de probabilité. En général, la base de données est ouverte, mais elle ne contient aucune donnée d'identité.— , 70-80%, ?Il est bien écrit qu'il s'agit d'une monnaie, pas d'une crypto-monnaie, car la crypto-monnaie fonctionne selon les mêmes principes que Bitcoin, c'est-à-dire que tous les processus sont décentralisés au maximum: émission, vérification des transactions, stockage des données, acceptation des modifications, etc. Mais il existe de telles devises , nous les appellerons des monnaies numériques, dans lesquelles tous les processus répertoriés ne sont pas décentralisés. L'une des options peut être un problème centralisé, c'est-à-dire qu'il n'y a rien de tel que l'exploitation minière, l'exploitation minière, c'est-à-dire qu'il n'y a pas de solution à un problème complexe. Selon ce principe, Ripple, Stellar, la monnaie numérique NXT, Cardano fonctionnent. D'autres principes de distribution de pièces entre les utilisateurs y ont été appliqués, par exemple via les ICO, la preuve d'identité, etc. En raison du fait que tous les processus ne peuvent pas être décentralisés et indépendants, vous ne pouvez nommer aucune monnaie numériquecrypto-monnaie . De plus, la question de la confiance dans une devise particulière est de nature personnelle. Vous décidez du montant de cette fiducie. Il est nécessaire de prendre en compte les finalités pour lesquelles la devise est utilisée, ainsi que ses risques et limites.