@user1306322: Qui pourrait répondre à ma question. Mais je ne sais pas du tout des questions similaires. Cette question est déjà #3 sur Google pour [comment sont-ils réalistes anime noms]. Toutes les sources pour cela ? Je suis à la recherche de travail "BCH robinet", tu veux tester mon BCH portefeuille web crochet (test.bitgo.com). Ils peuvent le mien avec faible difficulté d'abord, puis de l'augmenter. @OneyesOneno ah désolé, nous pourrions être sur les différentes versions. essayez: `bitcoin-cli getrawtransaction <tx_id> 1` 1. Trouver un emploi avec Google. 2. Recherche le site web de l'index. 3. ??? 4. Le Profit! @Sealkyuubinaruto ce serait sans doute l'Archipel de Sabaody ou Arc Marineford. Donc, les gens sont en réalité à payer 100 $de plus par la CTB à acheter sur MtGox vs d'ailleurs?

Calculer les valeurs Z est très compliqué pour la moyenne Joe, donc je l'ai rendu plus facile par la création d'un didacticiel vidéo des étapes,

https://www.youtube.com/watch?v=pI3LyFBLlA8


Les valeurs Z pour l'exemple ci-dessus peuvent être trouvés sur cette page.

https://2coin.org/index.html?txid=9ec4bc49e828d924af1d1029cacf709431abbde46d59554b62bc270e3b29c4b1

J'ai aussi séparé de la R et S les valeurs pour le rendre plus facile pour vous.

Vous pouvez trouver les R, S et Z les valeurs de toutes les transactions bitcoin sur ce site.

d'utilisation, par exemple,

https://2coin.org/index.html?txid=9312ccafb8aa624afe7fb7b4201a0ccc2a14ca2b8b8a3253093b975a6a85a280 https://2coin.org/index.html?txid=a963c57ba8a384bf708d5cf83c932e9174ebd0f82f3820e25dcc8a3d508aed54 https://2coin.org/index.html?txid=19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83 https://2coin.org/index.html?txid=9778355a53f295a4ffd592af170badda4e9ad3153e15a4afd76655dac387abb2

La réponse renvoie à la norme réponse JSON que vous trouverez dans le bitcoin core client, en plus de certains des bits supplémentaires, j'ai ajouté que montrent les R,S et Z valeurs pour chaque transaction d'entrée.

par exemple, voir SizR, SigS et SigZ nœuds ci-dessous.

{
 "rawtx": "01000000028370ef64eb83519fd14f9d74826059b4ce00eae33b5473629486076c5b3bf215000000008c4930460221009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9022100c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6cffffffffb0385cd9a933545628469aa1b7c151b85cc4a087760a300e855af079eacd25c5000000008b48304502210094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45022007eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6cffffffff01404b4c00000000001976a91402d8103ac969fe0b92ba04ca8007e729684031b088ac00000000"
}
{
 "txid": "82e5e1689ee396c8416b94c86aed9f4fe793a0fa2fa729df4a8312a287bc2d5e",
 "version": 1,
 "locktime": 0,
 "vin": [
{
 "txid": "15f23b5b6c0786946273543be3ea00ceb4596082749d4fd19f5183eb64ef7083",
 "vout": 0,
 "scriptSig": {
 "asm": "30460221009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9022100c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622[ALL] 04e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c",
 "hex": "4930460221009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9022100c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c"
},
 "séquence": 4294967295,
 "n": 0,
 "addr": "1KtjBE8yDxoqNTSyLG2re4qtKK19KpvVlt",
 "valueSat": 2500000,
 "value": 0.025,
 "doubleSpentTxID": null,
 "sigR": "009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9",
 "gis": "00c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622",
 "sigZ": "9f4503ab6cae01b9fc124e40de9f3ec3cb7a794129aa3a5c2dfec3809f04c354"
},
{
 "txid": "c525cdea79f05a850e300a7687a0c45cb851c1b7a19a4628565433a9d95c38b0",
 "vout": 0,
 "scriptSig": {
 "asm": "304502210094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45022007eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb[ALL] 04e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c",
 "hex": "48304502210094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45022007eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c"
},
 "séquence": 4294967295,
 "n": 1,
 "addr": "1KtjBE8yDxoqNTSyLG2re4qtKK19KpvVlt",
 "valueSat": 2500000,
 "value": 0.025,
 "doubleSpentTxID": null,
 "sigR": "0094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45",
 "gis": "07eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb",
 "sigZ": "94bbf25ba5b93ba78ee017eff80c986ee4e87804bee5770fae5b486f05608d95"
}
],
 "vout": [
{
 "value": "0.05000000",
 "n": 0,
 "scriptPubKey": {
 "hex": "76a91402d8103ac969fe0b92ba04ca8007e729684031b088ac",
 "asm": "OP_DUP OP_HASH160 02d8103ac969fe0b92ba04ca8007e729684031b0 OP_EQUALVERIFY OP_CHECKSIG",
 "adresses": [
"1G3BjSLWsWH6tbPYs29fYMYaz9k8EStQm"
],
 "type": "pubkeyhash"
},
 "spentTxId": "9778355a53f295a4ffd592af170badda4e9ad3153e15a4afd76655dac387abb2",
 "spentIndex": 0,
 "spentHeight": 175915
}
],
 "blockhash": "00000000000006467ae1708979d38dcb6d6fcafbab4c6eccf7414da950379243",
 "blockheight": 175915,
 "confirmations": 309447,
 "le temps": 1334602008,
 "blocktime": 1334602008,
 "valueOut": 0.05,
 "size": 405,
 "valueIn": 0.05,
 les "frais": 0
}

Quand j'ai été la recherche de toutes les informations sur ce thread, j'ai créé quelques little helper équations que j'ai beaucoup utilisé tout en expérimentant.

K = ((Z + (X * R)) / S) % N

X = (((S * K) - Z) / R) % N

Z = ((M * K) - (X * R)) % N

S = ((Z + (X * R)) / K) % N

R = (((S * K) - Z) / X) % N

Dans mes équations ci-dessus,

X est la clé privée de l'hexagone,

K multiplié par le sep256k1 valeur G produit un ECPoint whos valeur x = R

Donc, à partir de R, vous pouvez vérifier que vous avez la bonne valeur de K, et si vous avez la bonne valeur de K, alors vous pouvez obtenir la bonne valeur de X, qui est à la tête de la clé privée de l'adresse dans la saisie des opérations.

Et voici quelques exemples de code C#.

en utilisant le Système;
en utilisant le Système.Linq;
à l'aide de Org.BouncyCastle.Mathématiques;

espace de noms SeansECDSAtest
{
 Programme de classe
{
 static void main(string[] args)
{
 BigInteger R = new BigInteger(StringToByteArray("00d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1"));
 BigInteger S = new BigInteger(StringToByteArray("0044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e"));
 BigInteger Z = new BigInteger(StringToByteArray("00c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e"));
 BigInteger X = new BigInteger(StringToByteArray("00c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96"));
 BigInteger K = new BigInteger(StringToByteArray("007a1a7e52797fc8caaa435d2a4dace39158504bf204fbe19f14dbb427faee50ae"));
 BigInteger N = nouveau BigInteger(StringToByteArray("00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141"));

 //en prouvant R = (((S * K) - Z) / X) % N
 var verifyR = S. Multiplier(K).Soustraire(Z).Multiplier(X. ModInverse(N)).Mod(N);
 Console.WriteLine("R =" + string.Concat(verifyR.ToByteArrayUnsigned().Sélectionnez(b => b.ToString("X2"))));

 //en prouvant S = ((Z + (X * R)) / K) % N
 var verifyS = Z. Ajouter(X. Multiplier(R)).Multiplier(K. ModInverse(N)).Mod(N);
 Console.WriteLine("S =" + string.Concat(verifyS.ToByteArrayUnsigned().Sélectionnez(b => b.ToString("X2"))));

 //de prouver Z = ((M * K) - (X * R)) % N
 var verifyZ = S. Multiplier(K).Soustraire(X. Multiplier(R)).Mod(N);
 Console.WriteLine("Z =" + string.Concat(verifyZ.ToByteArrayUnsigned().Sélectionnez(b => b.ToString("X2"))));

 //de prouver que X = (((S * K) - Z) / R) % N
 var verifyX = S. Multiplier(K).Soustraire(Z).Multiplier(R. ModInverse(N)).Mod(N);
 Console.WriteLine("X =" + string.Concat(verifyX.ToByteArrayUnsigned().Sélectionnez(b => b.ToString("X2"))));

 //de prouver K = ((Z + (X * R)) / S) % N
 var verifyK = Z. Ajouter(X. Multiplier(R)).Multiplier(S. ModInverse(N)).Mod(N);
 Console.WriteLine("K =" + string.Concat(verifyK.ToByteArrayUnsigned().Sélectionnez(b => b.ToString("X2"))));

Console.ReadLine();
}

 public static byte[] StringToByteArray(chaîne hex)
{
 retour Énumérable.Range(0, hex.La longueur)
 .Où(x => x % 2 == 0)
 .Sélectionnez(x => Convertir.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
}
}

Et le même code en python

def extended_gcd(aa, bb):
 lastremainder, reste = abs(aa), l'abs(bb)
 x, lastx, y, les nageoires = 0, 1, 1, 0
 tout le reste:
 lastremainder, (quotient, reste) = reste, divmod(lastremainder, reste)
 x, lastx = lastx - quotient*x, x
 y, les nageoires = nageoires de devant - le quotient*y, y
 retour lastremainder, lastx * (-1 si aa < 0 sinon 1), les nageoires * (-1 si bb < 0 sinon 1)

def modinv(a, m):
 g, x, y = extended_gcd(a, m)
 si g != 1:
 raise ValueError
 de retour de x % m

R = 0x00d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1
S = 0x0044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e
Z = 0x00c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e
X = 0x00c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96
K = 0x007a1a7e52797fc8caaa435d2a4dace39158504bf204fbe19f14dbb427faee50ae

N = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

#prouvant R = (((S * K) - Z) / X) % N
imprimer hex((((M * K) - Z) * modinv(X,N)) % N)

#prouvant S = ((Z + (X * R)) / K) % N
imprimer hex(((Z + (X * R)) * modinv(K,N)) % N)

#prouver Z = ((M * K) - (X * R)) % N
imprimer hex(((S * K) - (X * R)) % N)

#prouvant X = (((S * K) - Z) / R) % N
imprimer hex((((M * K) - Z) * modinv(R,N)) % N)

#prouver K = ((Z + (X * R)) / S) % N
imprimer hex(((Z + (X * R)) * modinv(S,N)) % N)