Peut-être que vous pouvez clarifier la suite de vous dire: voulez-vous être payé pour le fait que vous êtes l'exécution d'un plein de noeud? Ou êtes-vous en offrant d'autres services et d'être payé pour votre qt porte-monnaie? Même avec les modifications, je ne comprends pas ce que la question est. merci à vous, alors juste pour m'assurer que je comprends bien - signifie-t-il, je pourrais avoir 10 pousse (520 chacun) dans une sortie et une op_return avec un total de >5 ko? et n'520 comprend op code lui-même ou est-520 seulement des données brutes? Le plaisir est le mien. Et profiter de la regarder! C'est un bon!

En gros, lors de la création d'une clé publique à partir d'une clé privée, ce que vous êtes en train de faire est de multiplier un nombre par un point sur la courbe. Dans la plupart des cas, vous serez en multipliant certains très grand nombre par ce qu'on appelle un Générateur de point. C'est juste un certain point tout le monde le sait et l'accepte lors de l'.

La multiplication d'un nombre d mod n par un point G, ou, parfois, la dG est défini de manière intuitive, comme :

G + G + G + G... et ainsi de suite d fois.

Si vous vous souvenez de la façon de faire le point outre, le processus est sensiblement le même. Pour ajouter deux points A et B, de coordonnées (A_x, A_y), (B_x, B_y), pour un faire un troisième point C de coordonnées(C_x, C_y), point plus est définie comme :

  1. Trouver la pente (que nous appellerons slp) entre les deux points A et B
  2. C_x = slp^2 - A_x - B_x mod p
  3. C_y = slp * (A_x - C_x) - A_y mod p

Et lors de l'ajout du même point pour lui-même, Un + Un (ou 2*A quand d == 2), point de doubler est défini comme:

  1. Trouver la tangente (nous allons l'appeler tgt (ticket granting ticket) à la courbe au point d' Un
  2. C_x = tgt^2 - 2*A_x mod p
  3. C_y = tgt * (A_x - C_x) - A_y mod p

Maintenant, nous avons seulement besoin de définir comment trouver slp et tgt, et nous pouvons commencer à créer des clés publiques. Une pente entre deux points doit vous être familier :

B_y - A_y
--------- mod p
B_x - A_x

Et une tangente à la courbe en un point est :

3 * (A_x)^2 + a
--------------- mod p
 2 * A_y

* le nombre a est un paramètre de la courbe. comme n et p.

Vous pouvez déjà voir le problème ici, c'est que la division ne fait pas beaucoup de sens dans l'arithmétique modulaire. Au lieu de cela, nous sorte de multiplier le numérateur par le modulaire inverse du dénominateur, ce qui est logique. Pour diviser deux nombres, on utilise le mod inverse de la fonction (qui à son tour peut utiliser l'algorithme d'euclide étendu, par exemple), donc, ce que nous finirions le calcul serait :

(B_y - A_y) * modinv(B_x - A_x) mod p pour la pente slp et :

(3 * (A_x)^2 + a) * modinv(2 * A_y) mod p pour la ligne tangente tgt.

Et c'est là que nous utilisons le mod inverse lors de la création de clés publiques, ou bien lors de l'ajout de points.