Bitcoin Forum
May 09, 2024, 06:11:32 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 ... 96 »
421  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: May 28, 2020, 05:45:12 PM
Code:
pons@linpons:~/VanitySearch$ for i in `more tst.txt`; do ./VanitySearch -cp $i | grep Addr | grep P2PKH | awk '{ print $3 }';echo $i; done
12csaq6uhAtyhzUN8N4akVpat7GP6wB3ea
5B3F38AF935A3640D158E871CE6E9666DB862636383386EE510F18CCC3BD72EB
1PGVt2mWHgbULrx9pjWDPc2EKp2LWLT4fd
5B3F38AF935A3640D158E871CE6E9666DB862636383386EE510F18CCC3BD72EC
1DVjd5oZqCCYywtgL7FLbT3ZX4FFJK5nwc
5B3F38AF935A3640D158E871CE6E9666DB862636383386EE510F18CCC3BD72ED


I tested today this method on my Linux Mint and unfortunately it is slow... don't know why if this is simple mathematics process (generate public address from hex key and save it to file)
I try 1575 lines of hex heys (100KB file)
The whole process took 54 sec.
I tested on HDD and SSD and results are the same.

Do you know how speedup this process to make it as fast as generating new addresses (where I have easily Mb/s of file increment)

thanks

I have a little python script 'private_to_address.py' that does what you want in few seconds: 100k addresses (6,2MB file) from hex random private keys in 23 seconds. If you need more you have 2 options:

1) use consecutive private_keys (it is faster generate 'consecutive' public keys)
2) use a C program

Usage:

python3 private_to_address.py input_file > output_file

Code:
$ python3 private_to_address.py tst.txt 
5B3F38AF935A3640D158E871CE6E9666DB862636383386EE510F18CCC3BD72EB
12csaq6uhAtyhzUN8N4akVpat7GP6wB3ea
5B3F38AF935A3640D158E871CE6E9666DB862636383386EE510F18CCC3BD72EC
1PGVt2mWHgbULrx9pjWDPc2EKp2LWLT4fd
5B3F38AF935A3640D158E871CE6E9666DB862636383386EE510F18CCC3BD72ED
1DVjd5oZqCCYywtgL7FLbT3ZX4FFJK5nwc

To use it you have to do this before:

sudo apt-get install python3-gmpy2

Copy this script in a file:

part 1 of private_to_address.py:

Code:
#!/usr/bin/env python

import gmpy2
from gmpy2 import invert, f_mod

import struct
import hashlib
from hashlib import sha256
from binascii import  a2b_hex, b2a_hex

import sys
input_file=str(sys.argv[1])

f=open(input_file, "r")
f1=f.readlines()
f.close()

##precomputed G,2*G,...15*G  16*G,2*16*G,...15*16*G  16*16*G,2*16*16*G,...15*16*16*G, ....  ,    16^63*G, 2*16^63*G,... 15*16^63*G
G = [0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798, 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8,
0xc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5, 0x1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52a,
0xf9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9, 0x388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672,
0xe493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13, 0x51ed993ea0d455b75642e2098ea51448d967ae33bfbdfe40cfe97bdc47739922,
0x2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4, 0xd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6,
0xfff97bd5755eeea420453a14355235d382f6472f8568a18b2f057a1460297556, 0xae12777aacfbb620f3be96017f45c560de80f0f6518fe4a03c870c36b075f297,
0x5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc, 0x6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da,
0x2f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01, 0x5c4da8a741539949293d082a132d13b4c2e213d6ba5b7617b5da2cb76cbde904,
0xacd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe, 0xcc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37,
0xa0434d9e47f3c86235477c7b1ae6ae5d3442d49b1943c2b752a68e2a47e247c7, 0x893aba425419bc27a3b6c7e693a24c696f794c2ed877a1593cbee53b037368d7,
0x774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb, 0xd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b,
0xd01115d548e7561b15c38f004d734633687cf4419620095bc5b0f47070afe85a, 0xa9f34ffdc815e0d7a8b64537e17bd81579238c5dd9a86d526b051b13f4062327,
0xf28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8, 0xab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81,
0x499fdf9e895e719cfd64e67f07d38e3226aa7b63678949e6e49b241a60e823e4, 0xcac2f6c4b54e855190f044e4a7b3d464464279c27a3f95bcc65f40d403a13f5b,
0xd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e, 0x581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58,
0xe60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a, 0xf7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821,
0xd30199d74fb5a22d47b6e054e2f378cedacffcb89904a61d75d0dbd407143e65, 0x95038d9d0ae3d5c3b3d6dec9e98380651f760cc364ed819605b3ff1f24106ab9,
0x6eca335d9645307db441656ef4e65b4bfc579b27452bebc19bd870aa1118e5c3, 0xd50123b57a7a0710592f579074b875a03a496a3a3bf8ec34498a2f7805a08668,
0xbf23c1542d16eab70b1051eaf832823cfc4c6f1dcdbafd81e37918e6f874ef8b, 0x5cb3866fc33003737ad928a0ba5392e4c522fc54811e2f784dc37efe66831d9f,
0xe9623bbef1bf90ec0d7c744ed34659f010e6e638637161270ecd31e14f87f62e, 0x38a9743b4bc299e9e0fe953a8edaa929fe6043c9dd68844e53013eafa44ee737,
0x3f0e80e574456d8f8fa64e044b2eb72ea22eb53fe1efe3a443933aca7f8cb0e3, 0xcb66d7d7296cbc91e90b9c08485d01b39501253aa65b53a4cb0289e2ea5f404f,
0xbc82dd73e5161dba0884a36f2080d682ffc274bf62fca8f9eb0aadf82a8d733c, 0xe5f28c3a044b1cac54a9b4bf719f02dfae93a0bae73897301e786104f47797f0,
0x34ff3be4033f7a06696c3d09f7d1671cbcf55cd700535655647077456769a24e, 0x5d9d11623a236c553f6619d89832098c55df16c3e8f8b6818491067a73cc2f1a,
0x8e3d1248c7657211d20291ce1798f490743f1bc852858e32d7efe2315fbc7671, 0x99a48e10ecfcb81f64480e19393e90eb9352baaa63e144a7ef1dc6418717dec,
0x308913a27a52d9222bc776838f73f576a4d047122a9b184b05ec32ad51b03f6c, 0xf4a5b09543febe5f91e3531f66c0375da8333fea82bd1f1260ab5efce8fe4c67,
0x78a891aa2234a498896a193ed088a2b68fcae82788f506a0f3287432beb31db2, 0x6912a35beb5035cbfcf5f25527302df654379bcdd800b82d3069d623b9fa4343,
0xd7a0da58d01dc635812ddf64d99c9aeae783c797d7cd204ec7b750f733ce1752, 0x912770e068008032f6f2928340e284650be040a8c062b742bbc027380762cef4,
0x7d86781855db1b17d7ce3765816076eba7163cb9fba082bb65348f778db0e595, 0xe2b99adfec86f8772e562e2bed4f88382937844e0e25d53299951e3abc733de8,
0x8bc89c2f919ed158885c35600844d49890905c79b357322609c45706ce6b514, 0xd313f3cdd7cdcc16de776fec3b5892c1172d3056112776f06f63f4cea8c95157,
0xddc5310f00582ac848494b9dc41ab08676545f84205e6a2a008fef8516060dfc, 0xba0d2f3af20d96920191ab6dcc8f0e9041dbafc6abd04730fb5f8ab6e7820ca8,
0x8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508, 0x11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf,
0x465370b287a79ff3905a857a9cf918d50adbc968d9e159d0926e2c00ef34a24d, 0x35e531b38368c082a4af8bdafdeec2c1588e09b215d37a10a2f8fb20b33887f4,
0x8262cf2ff0799c4c0d9a30f8aca98ca009809191a3c7e184fcfc0cb9e57e8dfa, 0x83fd95e209109e4e66fee22ec5b34f3457b6ed332b14c47835cff8d8fbac376a,
0x241febb8e23cbd77d664a18f66ad6240aaec6ecdc813b088d5b901b2e285131f, 0x513378d9ff94f8d3d6c420bd13981df8cd50fd0fbd0cb5afabb3e66f2750026d,
0x19825c8b1da0ddd5168105b24ce99c877ca41bd47b734b949052e48b026bdb6f, 0x6294310f0d4c878f320261cc94f59f6cebe9eecc8cf6d3a6b5df7084c49cfc9b,
0x1653a8a48d2c236dc60dd31a2b6717804998c4beabc288d9d17cc1f27c70620c, 0x338290935af7f7aeafa99474efa701c012af748dfd3dc526ca2e81d315b32cd,
0x6f12d86c1160191443c5f56ec6c2999edfa58e345e1534e650ed09523d82824c, 0x5c4ff7f44ab3bfa0875994f3fd623769391c92410854bc5b8579c34806eb34d0,
0x5d1bdb4ea172fa79fce4cc2983d8f8d9fc318b85f423de0dedcb63069b920471, 0x2843826779379e2e794bb99438a2265679eb1e9996c56e7b70330666f7b83103,
0x203a8c6f9a0aaa5d14262716a23abef645cfdcdc0f59e603076ddc02db453629, 0x3b0f0b53de5dd9b936cc76d15f410612686deb25c5285ed45971c7853ff89f84,
0x474a4732c294b1e119e6a36324655103553199217ab8cb45b9446557b147f3d6, 0x94625e231206f04eed2cc30cc3a48aa311fa7f17010e1300dcee852828628ba4,
0x6e2acaeb3d034181c81ef7334866e1ec9d3aed3fe5bb4ce9783130dde46c7ecb, 0x9e61a46797efee149d80c4daf0fb643afac706b91b67512c8449201eeebc8720,
0xd49ee4fb6b63f43c6098ae3260b5373f54d3fe4989e5cb4f47d42ba6e71dabcd, 0x531e39209a5490dd7c87ea7a61bf356129c509312ff7031e66a90cf016603c2,
0xd5a70492e9e9156baf61717e8a490a582747dd8bf775f201eb7018f3f0a4147e, 0x9db526f5dbab89c6fc490990765e0532f4c4d9847967f57f8e4b3cb833fb65ff,
0x6cc1109e03df089949bb6b52dcebf4c212aa3cc0d343efbd63da8f68b43841c6, 0xaf561afe9c094b760ffd3d6b0a29ffecd79b433e2d906cf5b9733a46b954e94d,
0x38c5119aabe18ba80523efc6302cdac6a1061cc2d3634f454eddb46bd8edcec6, 0xe649dd2285d9732a668cb2da275f282f28a16c822b5530a6456e0bfb1933db08,
0x175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739, 0xd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695,
0x423a013f03ff32d7a5ffbcc8e139c62130fdfeb5c6da121bce78049e46bc47d6, 0xb91ae00fe1e1d970a1179f7bbaf6b3c7720d8ec3524f009ed1236e6d8b548a34,
0xda75317b21f7acf4128b59efdc2fed523f7335f6842b836a65b7f8f1c5041216, 0x73f8a046bf72d5f0df19e21b342d7fc6e9aac07ae77acedadaed32986e708572,
0x111d6a45ac1fb90508907a7abcd6877649df662f3b3e2741302df6f78416824a, 0x696911c478eaffbb90d48dbff065952f070008996daca4ca9a111d42108e9d0,
0x1c71c5b48e9749d70573c58c4a82eb1e2587f1c16b1352fdb0143e71e465a930, 0x4a91c334e8f5fa0c2713f1f2824bb68c79345e3fb7174d471d873f6cc34638b5,
0x9530f0f9023f469c1364b7d2c3e8b70e19150ddf51f0ab069505324f3c62bac0, 0x8f3c305a8f9f21e234dd2f7f59b333e0e25b32852f1fdc68478abda97618e309,
0xd84e4afc1f31a566936e837a909b4c9c7850dd432744a077e318dae5badb6ee7, 0xe525809a7c7b79ce12a38d58f565de4dfdd8ac974aa3e64982d556e6d42ebed2,
0x4a4a6dc97ac7c8b8ad795dbebcb9dcff7290b68a5ef74e56ab5edde01bced775, 0x529911b016631e72943ef9f739c0f4571de90cdb424742acb2bf8f68a78dd66d,
0xf3d4444bde66814d41b22b9285ff6ed3f60adff3aeac99d2394e9ecfa49e6d10, 0xa4324dfa6f0163d4bab95ac198a4b5bfc1ada50ce9d6c630a038cc05347da3f,
0xf006c42f1d8e4f751df82efee099522c356929d1fd665411f5e91b77a547b4b3, 0xf68154d4a666520a5c47848a4e4f7d1675c933eed6be7ae1b5ef449fa86aa74b,
0xae30652c9d9c1d89f9085520cdbdf4044e72ee08aa39bcab48cb3406e9d33a07, 0x6cb9d9c38d63fe57efcce7d33db8d5cf1c9c37f5dfd7e95c74870c0f60a0b2a6,
0x67be02dcbe4298fd6f09ff43aaa332b0f2816fee3e4367b206704385dc3c9c8f, 0x7a9b55a73e4def84a2c945b608291693cd993bf60b88c2be55384998593652d9,
0xd8dc1b2a5bd5e1c815e17e7583388c9a1869c7bbcc8281da759654b90c28caca, 0x8cec0ad927cec7d58c6d8da420247d947d315d2cec8128f6cdb676ea23b3ec7a,
0xe69b346403de885c1a50c45352405b1ddccc88b8710badac5c2f974518b01b5, 0xb4efac5fcd7e45261ded70ab7d7dd37cedf595f3d00683e418ee36878d965c5,
0x2749e292c5f84eccd59425a8d032f31da7aefd23f30b04028921fb663bc4416f, 0x50cc2d4e37672bc4403d94990fcadb3ef59e9fb65ee961057e98bde2fc6bbd8e,
0x363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640, 0x4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9,
0x4c1b9866ed9a7e9b553973c6c93b02bf0b62fb012edfb59dd2712a5caf92c541, 0xc1f792d320be8a0f7fbcb753ce56e69cc652ead7e43eb1ad72c4f3fdc68fe020,
0x4431404790c5ffb2ba84a440c05094426ff95ab6eaca04394b891216f6e55dc8, 0x96b0c142e65366f8fe99837f5642fed7a66a29b79eaa2e5031d944aedbe323b3,
0xa4083877ba83b12b529a2f3c0780b54e3233edbc1a28f135e0c8f28cbeaaf3d1, 0x40e9f612feefbc79b8bf83d69361b3e22001e7576ed1ef90b12b534df0b254b9,
0x9e22fe8d866ca87c126243d5b921089dab7b7d470a87ee0adfe9485d701b23a8, 0xfd2ff0e9ca122d10177f3f02099c1533c0f7c949fb511cecf7a413c50884edae,
0xe5380fe8575f26adb7924ae0d58138d268112776b11bd34b3eb5e19633f0e9aa, 0xb97fd8739087b41d5b691363924c8e016fb94e5df468318ec4ba41364082720f,
0x508df6d503ce2a8d2edd69e64705306dcd5ee51f5f5cf475dd7408bf071a70e4, 0x154c439b933bc42d777304aa733e49c54ec03228ee8aadfedf2e5bf729950984,
0xa804c641d28cc0b53a4e3e1a2f56c86f6e0d880a454203b98cd3db5a7940d33a, 0x95be83252b2fa6d03dec2842c16047e81af18ca89cf736a943ce95fa6d46967a,
0xe3dbff8455109763338df581930125b2dab921c259cb220f6eafda76ce1abe11, 0x6f2f9099a3414216438fa75db8a8ef3d3c97d903c6b5c414b49ad549fa8de63,
0xf7a4be3dfc6579fb43c5a9600890893af4026165ed9e3ab2e6929378b63968b6, 0xd6ddef6ce823c61521d2903038ca52d299702fb8d110105e494dda32d0c34882,
0x19ace064c7de940d878d9c13a07d014af61b7c12e42a46ffdcf1b23603593449, 0xe37992035268a333bfebd739d9402c46ac710b9f4084068a3a414b93adf83631,
0x939ff3e4a3ed9af0c395f0d15d6b1f518a8fd3a7d9ff42de1aed361beebc61d6, 0xdeab3bcf08b7a90e9d46fc4eef016c04980bf26eb78c7f82e75ea466a3f5cb70,
0xd8740cec20f87daa108c33228ea88e310a0fe674fd0b3bb5ee3e9892ccba6b63, 0x6472c133c6b932bf378a6ee9903ac37d40104f5cc381694abeea36c06934c5f3,
0x19a9e5f1c4cae30797a98dba24051a438ea755c7b062094a34ed6e88a8ff2cf, 0x1e661c67ea85af5efa9062925012b7300ce7ebee88486d353a77e766db0e4352,
0x58ac33391b50608364883e762f290a50d9fd516ae60c6b276194ff2c1b3ec038, 0x9163d706d55c92d978779249e991fe970219043c0b4fbbca16eaa3f110246279,
0x8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c, 0x4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36,
0xed0c5ce4e13291718ce17c7ec83c611071af64ee417c997abb3f26714755e4be, 0x221a9fc7bc2345bdbf3dad7f5a7ea68049d93925763ddab163f9fa6ea07bf42f,
0x7029bd7a92ff352f0b6abed6c058f78e3d446723552d30e2a0a2a582f55812dd, 0xb0eefadafde8b3d27dd6544ae30683ac47dae84243b2c73c721cc66b1a2d2927,
0xfaecb013c44ce694b3b15c3f83f1fae8e53254566e0552ced4b6e6c807cec8ab, 0xcc09b5e90e9ecb57fc2e02c6ec2fb13d9c32b286b85e2e2e8981dfd9ab155070,
0x9ccfedcaeae65c99009d4109d8cf75605745beba49565b6a49ce5683bd486ed1, 0x7c2f4d713d6a32cfb6122481200b34112421675969592aa24f6d59ed75e95d8d,
0xf42c102af47e6e474aa264b818a34e7edd2f62bb5cc62364dcdabff9b181fdc2, 0x57503ab46cfe806c78fad05cb86fe22a4c15502d9a2acf2681f00093a485d7fd,
0xcd9a4b876341414335a8fde33ca4df19d0c74576ba2d4ab7a206b1a75bd0eaca, 0xf0455879a1e8f23e815488ae933ea08b0127b38eed6f634f6e6fafb5abff4acc,
0x9bb8a132dcad2f2c8731a0b37cbcafdb3b2dd824f23cd3e07f64eae9ad1b1f7, 0x945bb2b2afeee3b9b6f9dd284f863e850f54a840f4752d5364130627c3811c80,
0xad09882f88ed9bea884f2d2e93d630944903d7a23eb276cbf20953a3c7bc57c6, 0x7243c08c42fba52ba28186c729dabe5f7b311d373590e2d3ca32c0edae4a0ab8,
0xe260a0cc082ba6bbe669ed95366a142337a7a40d63d418a49e2dab644f927dc7, 0x37ee6744b0da9d67f073cb3d725bf440edbcc0b4462cb82da45f36f446aef35d,
0xd9d1290aeb3ca41f1eada2d2a9fad2e0f506a937af0f1862ea830c72aba56302, 0x7eb53113ec2d3eed029715c6726386e41739aecd9fa74f2aeaaddafa88291c29,
0x32cfcf6a24c7524bca5a7840ee7cfdec49376fe265e1968c3866d47deedd7dd6, 0x21846a34976a77486208096a409f561e7a0d8cd20349a08b25fd44aefe08e330,
0xbc5079de539d6cef91cd21ac063f558402b126023f54a5fdbacd3704f4d1243a, 0x65062a3b3a705cbb8eec72b94dffc8d75f7ee4f5b1f47169f5c95168855db68a,
0x235caadde85ac49f3ecbe68f10d22c02b8f94058fb2d0596696d03fdf6abf83d, 0xdc12f9c745fd47ebee4232a5bc93ad893f0518d6323610ae7f4ec9e90d33e191,
0x4d31a77e505fc7e8913deaae7db2625ac287a665dc09816908d244e6b74a3f9f, 0x22241ec96098575b06b18f38c7802753cbf6fb51b6e00a754fcb0241301e0ba7,
0x723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda, 0x96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f,
0x57efa786437b744d343d7dc45773a3c62d240a43079849071fd383d60ca030d5, 0xd712db0bd1b48518893627c928de03ec689b6d2ae5e9974ab07ab44274b02f9e,
0x6dde9cf317aacad400c6273212181fcb575a224b69d021132567e09e80633cb1, 0x9188fbe7a707e41d5c99ef86a1ba66a880b27fdacf859ef357dd49aa67ce6b34,
0x264bbd436a28bc42a2df7e9cd5226cb91080577e327b012a7fafc7770c584dd5, 0xd87c6fa94ee093b4d4f75ce24c33be226a118243717b8d8de61227937704ab11,
0x486fa72cd5b5cde813c4bb7f8e47b850085a0f7115f12522419a518d2933f3c5, 0x62e12319f56bdd43e48c48baecc8f19f62d9b783cf0f23b79ad4a71acafb0f53,
0x97d064f0fc69a1222c21f62e0ec970e940908ab819bbface4d0bd76a44e5467d, 0x89974f2ed33402cc03f7c66fa850861fda5fb3b854f17ccd797300fd1e9cb3fa,
0x24796974a894af4fb664ff27b76a5303677375fbe6f12204ebd594225e99f728, 0xe3d78d44688f3001ec52e87e7d8d664a5adbf3c09575a2d837a00516ebaaebff,
0xa94c6524bd40d2bbdac85c056236a79da78bc61fd5bdec9d2bf26bd84b2438e8, 0xb5201fd992f96280fd79219505019e3a7e5d3c60a0e39b2bc2e2c8dbf18661f4,
0x2f39cbdaa3d55ff0631a59ee76b38324916f9ef723926049c9e0c6d42fb0079a, 0xabeadbde138639834da936d0278da58b9bfb3fbc882a0230fe2297302c5690ba,
0x3e842e5baa802bdd289263b70aa8e6fc40c10e34b62663ff5f46f289b98086c8, 0x89f24ff5fc92e72e1b93704631b077c037b8e576b75e7d4ef994b5138ee939a9,
0xe5a31d6c327d61ba56a39e86c534aed262e3d4ea9d4443a7793300b2e4f7ab73, 0x37788c3d8d1e9d7a0c118a977a4ece5dbf8c4449a80cba213913a3fc70561f42,
0x2dcfcab8c93937bdedf1b33dc74f972a8bb5fc9d101cfe67cca81cb913613bec, 0x46dbc4dd9474a41265f088b7d6f6c6f43732cfbad33f5f383e7309249a039215,
0xcc389d4a0d153447df50dd982051dcf11fc5d42096bf71b588f929a3c14dcd86, 0x93ae4fd660f6bbed9b568bdbbea910ca05c57e18fe7e787468eb6dd9c8f0a873,
0xa2ae53d1ae7582288ec4bb0428f0e8b6b567d5ff4fa3eb648443d764dfb4f6be, 0x6933594d44b3a0987c95679c7c1b547c4c0efa67c3d40436c04225674aeeb9a2,
0x7f9291c89d71e9023750a17e0cf5ed1f0b3e1ee21087714724f9c6eb78819311, 0x9da00d1063ec3ef0f5d0de8c452415b6120aaa409c86a174aa9f9b57ac2eb125,
0xeebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa, 0x5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999,
0x381c4ad7a7a97bfda61c6031c118495fc4ea4bc08f6766d676bee90847d297fd, 0x936af53b238eeee48f3e5fa709915eccf0451032db939c0093ace3187d493fc5,
0x437a86204276d45036ffb8126f6e681473a59f938897faf0f3f678ffbb7ceceb, 0xb916ba13eeac32f69b8feb699d297ff87220fcfdc8f97827363bcc356c181e1,
0xe1efb9cd05adc63bcce10831d9538c479cf1d05fefdd08b2448d70422ede454c, 0xecb4530d8af9be7b0154c1ffe477123464e3244a7a2d4c6ad9fd233a8913797,
0xa9ef9f13e2a489bc83cb7e3b9a3cc27335823529d2c8735cd58d729e097f96f2, 0xe814cce594559d7cd956ee160ebb613db74f89af5a9b4702c03d55b056c04be4,
0xb89070ae96ead4dc49be16f6a1a30bc241b4e98bc18d02274c9d9d87dcbf00eb, 0x6f24c8c2c8a2d88f472294e4c1c4a766cb0d8b06b6b96a671b7f1bcd1b0e664e,
0x66d80541ee1d35be553827d69faa064207dbf57454a8ab0dbc0ab5a1350cf77e, 0x51cfdfe732fffb42c3f1d420535613f69444b43ab7b1b76d2a5f97afa0eaa3a6,
0x5318f9b1a2697010c5ac235e9af475a8c7e5419f33d47b18d33feeb329eb99a4, 0xf44ccfeb4beda4195772d93aebb405e8a41f2b40d1e3ec652c726eeefe91f92d,
0x62ac05e136503fa2bf3508a1c64cc3c80b73204a785fa62b9354862887213a5a, 0x236fbdf3a0d1a6e4d395e79e07a92579e5590901817994efc10d21c0f46a9e45,
0x188ef3bfab10378437e1859a7d53e8996124c395ca422c05d6b21b3cefc76ac1, 0xe6fc997a052fba99d005fb18cf398e38e4d66de83c7638753516032a528f00bc,
0xca13c44972448f5b5bf613af5c6f2db385d5ea00eaf66e1ec30fd49867bad12b, 0x83aa098361c287c8ac15fa64eaada3d66370ab7111a5756689699f469723b0f2,
0x264887669cb441f8f336bbb1b2a884605eadedc1458d65a3b9d6ff9ab6fbe7b2, 0x9e15dab4b20144988f2f2dcad02ddf185638d9816a0eb603932a78bc21bc2a34,
0x1cecb101a7052ae85ac11c4f44609e4914ef8a862d66cf7fddaee5f95c80414e, 0xf343606696097cfb4e5aa32835edad16907557e5447231d0dcae9492d2169a3b,
0xf98b5dbc3e54c227b002f45894850ff43b15b2d61607851c50d1e4d18b20907d, 0xe2d508bd4f4a13fa42939b706ba9cc9e41fcd9e025a90e358351319b5cc926af,
0x2a69907504d78f9cc950daf5f1df23924f889d3f3c700155c4f5bc8c4ed810a9, 0x54f9039b6c3dffdac3ec586954fb04fc667d47e97ec145c7cf86b388fa9b4728,
0x100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0, 0xcdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09,
0x8c0989f2ceb5c771a8415dff2b4c4199d8d9c8f9237d08084b05284f1e4df706, 0xfb4dbd044f432034ffd2172cb9dc966c60de6bf5156511aa736ac5a35d72fa98,
0x10e90e2e51eeadc9ed858ee9ced7ca8d9275028e465a2ee69cb9a13495bc15b4, 0xc68a370380d5e0424d57a8c616ad1f754ca5896302bb6a8834ebe60958aa258d,
0xfb8f153c5e266704c4a481743262c0259c528539bc95bc1bb1e63c33dc47bffd, 0x6ca27a9dc5e0621816fa11d9b4bccd531dde1389ac542613090a45ddd949b095,
0xf7422f42da5416384575b90b714b7dcda377a3cc053d33182dd3fc303fe75269, 0x406c2f1a3313093fd18ce7dcb9f635977fb3a237f4a398e018980e8717e49bd5,
0xb6b15a68a614cca5b17c9be7002ff9c34d625158c65a9c740f62abc87a1c0a80, 0xfae62e14d6cdb61ea54e223eef6536d49c9a12b3082e16eeb6cd011041ce0a03,
0x2d8cad0417d43cff72879a5582d5debbedb8e771d31cf42a653b6696f5a7175f, 0xc73f3b83318ca94a7bb232fa612c9d377a846bfd9cb5e5e0cf37bb91bb9d592a,
0xe747333fd75d51755a0cc9f0a728708465a02c587737a7b8b8fa1b8b4bb2629a, 0xf2affe0145070c114cc43603804c2581c88376aa6e1a969a9f8d961a6946f6d6,
0x1ecbfd1db98a6ea58ae73d4eb1e8cf73bbc6c896f31c25b3e34c9bc394b51045, 0x1cf6e2308b99c3a6447d0bb1849a9b38b1900646b436422d53a6710102c70026,
0x99741bb8b477e296af8b1bfeb7edb64af92f69efddd5ef674a35b56c6413e439, 0xde47e9b07bd9c9a5e735aa56258e3e7ab17c15c9697466e43e657d826832cd5b,
0x9a0894c5fe57752883e955a291d32a8c10a933f9d4fb4b9df7acd766e9358533, 0xa79883c4201b8fc31f917d5f954fc32165a6e5bdbb80ddadfb3e1c5dc360ba08,
0x35963ea43256eaca06fb171283ea227a7a5ce7e59bb6a141a7caa50a92b062d4, 0xf65be1454951e5c9bfcce196f9c08a96d04082b964de59b1a10aa4d1bbb25302,
0x664dd849db4fd2e35bd9c85273b8aea65923f3f77a078f9f694405d6198ef7f6, 0xad51201717f27932a1448ce5dd0458cffc3d3ab31b8e6ecee7496ff35d1eac94,
0xcebb7b7b02cfc321c6a0e82485c29e4174728efb3a0ad1b60d0b66f3119334f0, 0xfe3df243633b4a32ba1ec0f74dd2e3704765a29db9e036cb16750bd251e45191,
0x82113a9377d0b8638231d9669811a7022b31f5805b0ae2c4e0c0a6b7c3c934b3, 0x8da1b8dac9ae366608466cf2b5a0c628aa1f7c269a44680377e5e62ac42c6a0f,
0xe1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d, 0x9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d,
0xf4b93f224c8089eab9f95dcd0f29b2c9028a6ac5de94d85784e27e36a95c8356, 0xa67a92ec062962dfb0e5f6a7a40eee90c37ef1344915609abd5861b9be001fd3,
0xa7ebf7c4e3c785ec6a5abe5a15de69db6195926dba743961579623aeef028d83, 0x6205152fbfe362d5cfd9c7377044804b47a389274b0539199640392b99d0bed1,
0x9d1aca1fce55236b19622ea025b08b0d51e8512f97e696c20d62fe17b160e8a, 0x1153188f5101f0c63e56692ce0d8c27e6fe9e0ee9212b5e534e050c57ca04c44,
0x5b5ca08dcb024f4c1cdc6a53426346336a89c5137f09d4b5bae0e40227dd5cfa, 0x3eccb6f70aa15825e991f0cea8869094bfd067ccaf3269d3e664a6f99e48e98c,
0xd4933230cc8721b8662638cd8974ae6eda4f04e2fb1f0c13f28844137bb61ee5, 0x21c09abf51a9d23edcc5e9d1ecafb5e1ad12c8c5a438ddc662da4d0e5d694a8,
0x46f26acc1114bb5ccef3e7489c22c29ff51326bb10c2c9f2b9528e323531f82, 0x6b804b31635b82eace2370ac2fc32579d025945cdab55c7fa505fc8b0bceda07,
0xc66c59cc454c2b9e18a2ad793821cde7518b3a93bfc39562e97d7d0475ba7fc2, 0xd9592fe2bfb30fcfbea4f3ceaac10cb2f00a60ddb15955977ec3c69cf75f5956,
0xc11926d931e0efb535f96f0f0899645acf140b2fdd916b9060b1543710432711, 0x8be1f8cc7d25b68918494bf186ccc6cf83ab922ca0f34055e49261e2efe2610c,
0x559cd5aa4a0b37b32b17cef5b25ef5f16bf4043f278e7ad0f836c6cd22be316c, 0xaad5449c08d44076f2dba929874c692f8a389a1d360780e71a6ab9c99fe04013,
0x690846e9eb688f2e6cdbb54b538979c45b018d52c34aa861c179874fa1257963, 0xe2485fcb7f3febc5b4017024f92fbb7f6cbc3ca821c92b253a576599466f9835,
0x896f37c89873d1a0474652c27a10a2ecaadcffbb4688cffe530ddcbcec04554a, 0x380423e7224ac4acda622bb04e811bf1e6085b61acc417dcd68f9fe1929138df,
0xfb3df7fb8c9220babba7552df4a32915dec87c65b54dd2fd2d11394bdee23ace, 0x510e29bc11c73c5652a251540dbab58a9e727142fed27f5ee09def4c9722e8de,
0x482b6f1769155239651d68b872900ee31e4754c6e700cb925f90f1305cd36f89, 0xe8c3c11df9a5cc5acb18c23e6d7fe92e19ee073442d49a68467ca37270a4f423,
0x6dd85ec24f5c518b3eb8a3eb3ab1cd4170734b3df99ff1098607cfef50272351, 0x16ea67f4121f427e09d407f9af5c41b7877c6ff7c3e0817c9b07fa2b7fc7664b,
0xfeea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d, 0xe57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088,
0x4d000b621adb87e1c53261af9db2e179141ecae0b331a1870aa4040aee752b08, 0x6a0d5b8f18e0d255cb6d825582d972cccb7df5f119c7293a3e72851f48302cea,
0x5084b41bacf4508b34867aaa2cf5a12d5ec4ba38c9b02656079361bb48dfd587, 0x34a9631a1d980d31619aa6c8552927475db6f5606891f5606e79e97f91470e89,
0x71f570ca203da05dd6aa262114717128d657a0403e1f1b77f89962fd475c58ef, 0xeb42415b95dc880dd25557345bc95b8df2445d00c3363e7df8649a72d35d420e,
0x4f14c03e0642d5ea53fb3f1fd18d7128c80c29767cf30a12d08232617ab34cc6, 0x7b53d0a8caa4e894c653a70f43a62540b9de3cce8e81dd0225ec252f987e681f,
0xa49ed10eaaab93233a5f485d4bd18c0628ab2629f0b8c3db4d05956d6c953fa9, 0xcc72b894660f5398e03476c0a0dfddfb5ae87534968e181b67b2bd2246fb4c72,
0xa74db87e49c79ed1d41436095eddd363e81cf141db2444f8342771011241d90d, 0xf78691cdaf23eef327fdd08a588171c8a9ee509344a0a313f32518b83f7adad4,
0xa2b7b3629f7bd253b7d282b5c21da01446b4821dc65e76516048b06043ff8359, 0x693038941695122d57a937a3f71e29c910d10835046f3835a2397fecfe86fec2,
0x6901fa5744baa2cf9acdcd44eba35658456e58c68acd40b2a5ecca2231c1ae1f, 0x35de5c882273c212461b5380c29c900dd79f3ba5e5c77a930f833065d22838b0,
0x5d134e5c5da47f7ba495f216b4994d904a79057a3d0076be34f0901399f1f366, 0x3b1ef4d3e0845042dbe2a4ae3a82b73cf02d61620a88b39e2b0d3e9c4990f2c,
0x8d3cd82d1d438127a244b643f1bba35d046a6d0435494cac4b031081b27a4bdb, 0x9bd4256180ee41f470cfbf9d0076236ed4e3807d370ad296c3d34c7ce69a8a2c,
0x650ef9acb6d59d0cbac6158a65dbb070315b0a395d1f1f3a3c096d3fe7a1d916, 0x85d11f21162b11870e9c0b9279b82c558bb4608a76c26ba85849ca67068387b,
0xeaf98363d6064739afe9d672967b691fd9099f5c6e7d8f45440cd3c6b4ec1d2d, 0xe518183a7fe78d22775228a0e6b199aaa9f52d5457e84b53fcfe75604c838452,
0x1d770ace0ceb2183fea7c924a8fba197579df37a908992bed42c8e808bd98ee1, 0x278f8805f46ef5de78963038b6552a8637f61ca40e3d57ecf9fb81791d38ffca,
0xfb95bd163aedb63466f40e052c06e5d8c273a9cb9e89771cbcb35bf7045ae767, 0x664c14d811a8ddbc52004d9d3682275bb816f4718a59f1341853ea0afbbf0e11,
0xda67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1, 0x9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d,
0x4dbacd365fa1ef587c0c0cfaaf00d8718bbd9f35ccea5a835ee3cc821fe741c9, 0x16c3540e8a51892e7fdcfd59e838299d0cc384a09fc0535f60be10f8338eb623,
0x4d0180583cfceda3d38565a4ba5a5fc768410177cbe151a19efdd06515bc8a44, 0x3a33c6c18cb4f5d367e9ba8007d63813969420468582da362f1f94c91adbc09e,
0x13d1ffc481509beee68f17d8ff41c2590f4c85f15268605087eda8bab4e218da, 0x6008391fa991961dcecb9337b1b758bda4ad01206d5bd127e0db419ddb191c19,
0x2f661507df5cf957082cb6a273b6e9d15923eb24ce645f76bc1ab52865daeb00, 0xfd5c12136f52b33f6ef9537a8200add06ecdee27195d308c12276789833992c0,
0xc11968e43adf2256f0ff54a3ccaf2dce07f557f1ab8b5a3cf52213e4935b4eb8, 0xbff5e6937786458f8379d81fe6766f8242f8b49412a7149b7044996d6f911add,
0xf594117d05fe47d2254f174da1835a383662c8b647702dcf182a90a0916aa6d9, 0xcaa761a56e971b12cf65dbdab094bceb7a9277883e6b5b86c7d0696ebf2e50cf,
0x219b4f9cef6c60007659c79c45b0533b3cc9d916ce29dbff133b40caa2e96db8, 0x24d9c605d959efeaf5a44180c0372a6e394f8ac53e90576527df01a78d3b6bc7,
0xf2d4d7f1f4d9cdec4e1c38be696711dda4e8de8cc4bdc4ccaae03957ac6f4c0, 0x3ec89f857e93de4d17fb27fdf381e71e8f6a10a790242656e7e7bbad72339b58,
0xf6840bdcd64b45cdd43ebdd806a3417ac4020b0383a6facc56d1f9af4284327, 0xf304d37f100f1a77495e8bff4b6114afb68daba7712b9eb7400d275a45e2ab72,
0x1d5dcec2e2a14bbd1eb7a1815958d0f1233822fd66a22b55d855053fdf428cb2, 0x6e5c4083b142c8c50d078782486f0b88bd3e912f876044a51e5ed100895b189b,
0x161c6cbee1483deaf6f9b395c817eb019228cda5afac5857295ba10959dffc96, 0x8a26ca92a6b9ff985bd259391cb183059b9634c92eaf8621c93bcf611b492de4,
0x89d9a2fd300967439fdea9b2cc4126ced84376960693dae5fb0ea88fa8381273, 0xdfca25b451d66f50377aaf2076cf62f58f61d680ad127324a03eb3eed309773d,
0x783d0ecc3f64d4a0fe6c7285f189aa8c5248bd31bf6eb1be4cf6155f810a683f, 0x200a6d029073f4a3016b745727f2d51eb5de928872395ee9dfd66ce2e0f54c4c,
0x83191b8783a50ae1c52a1c13115afece23945e2e2a894fd21cc32b2cb5c71d91, 0xe0ac7f1573801b709e06de13d17cae8a17a11f51750445ee70b9ec08e2148a61,
0x53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0, 0x5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8,
0x1a575af9d4146753cf991196316995d2a6ee7aaad0f85ad57cd0f1f38a47ca9, 0x3038f1cb8ab20dc3cc55fc52e1bb8698bdb93c5d9f4d7ea667c5df2e77ebcdb7,
0x673724fd24bc731896b769cc6e479b89742ef557615f8a6771ac42fe48a2050e, 0xe4cf8257896a4a20203482c09a886b6dbe6bacfd43349cc2b90c9a49061d3d70,
0xf5f0e0437621d439ca71f5c1b76155d6d3a61a83d3c20c6ee309d755e315565b, 0x6b9f4e62be5a052bf62189160df7101aa5bf61bf3ed7e40a678430afdd2ecc82,
0x4366efa472df4c309e598a631f6166a8e03af53287261c66cbf6e48382de63bf, 0x2e7dd909bee2d7ce2ee2537e130268eaf33b0c525aaa6d6b02c6a408e17924cd,
0x995ca7f37081b8dc905a47336209ed9f6b50e905260d6afe34cf601fa9a78179, 0xd9a059e95553573ab5e34d880492863abbcc85569ab64e52931fbb4cafec1f47,
0x7bd753627991ab1f97be5569667aa75fd1f02de907c9525ef10527ff06f96190, 0x8336f2b3dbba6309d5ed6474943827d6ce0fcc5c1e0ea695a3d17204abda00f6,
0x8f506f0b6c0b6e9a57a7f36d970ca4e347cbc92146227642cbe781d9f5362d33, 0x469f955d2afa61719530c5424f1c336848cf925d43bb8eaf30487d0c87fa243f,
0x4f7e927bddaad5c1afa3419e8918dc920308ac35f4f0352433b1531556ad41ed, 0xdfe7745156a88b10552980df53a8f6a62e7314714eaf775bdf4357867e642d57,
0xfbc2107338b97dbf87e017141e412463166d65f59d8ffcb4c1843a1a3e5e6618, 0x9f9b0859185c9414b4960c1a6f39b11d7f3c4f3f1dcbccf20ed54da02230c860,
0x2355cb867d291ccc94b452b1edd33d007d57904dd8630b01cfa6051267748690, 0x21c2f18a5a71e1f8f55b85ec15aa7c5858286858cd1c939147c475314c89582b,
0x5940bc7ef82a85a65c134294130b16a74203cd012e431fc13d8d85d849135d3, 0x90537985eb4fab612f75b0c7aab6687af1286328c9902391d02d7451962255d2,
0xb66825b9b3da56c013592ab6c275d24ae9cbae93cbe028c6daea2160ade7f16, 0xa1fba0b818e09b3fef3a76ba8b57a97fb7243c0df3e7cd2bd944426848c56217,
0x16ee8ed8b5e5c9d25da5a9f71b3ff6a4dcf38a9684cfeb2bc633070164d2374d, 0xf500e7f0546ff1108a26b843e5b6ff620755130ee6d4ddd980e5bcb4fc865998,
0xf602043cf0bd022cb6109b2fd9f951cb904613b11c3a3a7c2906b02299060d5b, 0xf036b706c1f0cf19881a8f64ac4f7bea37aa56d2b7dd1a3f76f6f50b1af88f13,
0x8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047, 0x10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a,
0x33b35baa195e729dc350f319996950df3bc15b8d3d0389e777d2808bf13f0351, 0xa58a0185640abf87f9464036248d52bcaa6560efbc889b702bc503cccb8d7418,
0xbfc90c0c8c8f337ec714734efafe76be3a75edfb691b03c1ffe8879a041ead4b, 0x7a9481b1e09cded24dba718dd5042d36fb468eff32e0ae3e7452c6f086fedaed,
0x374deeae22c93f955cb83ad2071f7e2256f6e109cad7bca6d71dc7b24414bb36, 0x171165b64fcd4f9916032c06f806f7293828d66300e543217875bea98daf734a,
0x732df11cbe3faaa4dca5993e8c2d3f5b50753617ef9f73cb26e7bd0775bb3b3e, 0x7f41903ede8f9977cb7e255840253916e69dad6d64c58436cc577e1ed7366693,
0x3a55690dabb5e00dc2d0d8a496d16c4476ee767ca9d0d1d3694c856ee5b7ad0d, 0xc3e28e1975a0657bfb21fbac97ef99f301cacb8acac31218d6c98790b2e8c407,
0x4ce094b9603947b428da8840cc97ef6019a66924e9774c99c5f5b3c1888dc3b9, 0x5390fbabf1a9b3ed57b4d80ca76aca216205b20c9ea06502c14f7b6e5c0de52,
0x2380c09c7f3aeae57c46e07395aeb0dc944dbaf2b62a9f0c5e8a64ad6ae7d616, 0x6f8e86193464956af1598aefd509b09a93af92148f8467560099be48161bbc1a,
0x9a968eb76fc667de96d8a6a95b023fd0e25470b3a509aedd4c375e0b0aaafe5a, 0xabf6fb07a6d3ba2954fc66d03d861d0ee7b5880a65e70cc0ce6bfd424ed975c0,
0x180a4eced74ceaabe0f7db3bb038034e5e659c613c66a5348d962d14efa32402, 0x498a4d5747bad7e2adbbfc2f24febe85a602c5937fdcd18b3203780dc4894b4e,
0xd3c6fbed017161954f0aef802536b22107dd3db50074cd093751cbf9f34c6397, 0x4a0dd2c55e5e2af19458394d92eab6468a0c7708905e0e00b1fc8d0568cb3f9c,
0x405a645c62bfb92ccc92d18ecce32c04ec5e7a1647104fb1927a47b099b2df82, 0xbc3cb414f44d96e0f5caca61e237e7122ffa9db2cedc462b5da2834a09307dbf,
0x4cbde398129243b8e02f06a76aab3953fe925b62a5af644619b825930ac3137e, 0x6ce554608f13615950092a134b94c370d193a7ae588ead60c008f15ceec02fe6,
0xaa6dc4d3ce531af3e68590fcacbe7816c8293af0d77914a3c7119e23e50ce56e, 0xebc7998fa241e5296e1f6edc5e65e663c11984daf8f710a8b9df3a347dedd739,
0x4b9d333c82b16247b8bd9c730c14cebb03c48fcbbc3f0b8a47a2306ce0fbf84b, 0xfd7fc7fbe24cc15255313d982679b7eb6766d543e2f5b5e6239ee4b4a36c3c48,
0x385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862, 0x283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453,
0xf6f622083daf54800456be134d5f67d147c82642befc1ce2dc83a27078f2827c, 0x1bcd4e817de73a0faf2c5715b367cee7e657ca7448321bf6d15b20b520aaa102,
0x19a314f397c705e75e12ea6139cf845641db92831b38d63514bd306ab6e2d9b3, 0x6cacd8f5dac728dd234965f887f528b3a5021d1d2404be56d552ee25cbaaaf33,
0xfb26e5188f953de2bd70cb3c3d1fc255cd91c3ce7d8c6f369d893209715adcb6, 0xf3e128811012a34d58e846a719d0176916d2cb31b8b7ab5449dbca3b58ba68f3,
0x5840ed4b95a8daa355dc986364f6721920358804a100dcee7d8587eb12f00480, 0x670cda6b220bf14107968deaa15dd8daba75225452ae38721592d5e2be22cf9e,
0x85ffdc0de8187fe9a806e2a9aae51cffd0adfc0315400b3752e737d963a52264, 0x3fee30187ae2948d0be568f50554706c678182c92b179d0498c7d29a82da2082,
0x9f5701a5346918fb1dc58c1f4ece532545dc1a3c269a3dc8e484dee823f54c42, 0xce7b8fb8801d9e57bfb95b6b5729bfdd89ee784ab219e527860e1c492feb6a21,
0x8991225911b9132d28f5c6bc763ceab7d18c37060e8bd1d7ed44db7560788c1e, 0xda8b4d987cc9ac9b27b8763559b136fa36969c84fdef9e11635c42228e8f0ef1,
0x27f61169235a8cfc01bb8701067ef9a0bcb30a265bc718327e9413329522461a, 0xe512f1a9900a6ad2ea48c56127428ee8e4981b20da8639446aa4caf9c7301a2d,
0x96ee53e6732a2e095852d90d6ce2d5a37bf8f633a2f006516dbd9895e6ddd3ac, 0x39b9caeae4b629f2d8c4c9711ebf1e0eef0d07976c66dc06fbf25b36729b6fde,
0x640779856ceef941261bf2f435f4a9812598cabb63b9f390cce2c9b2d14f36b9, 0xda61928f44e56efaef90d75fd85a7b6c8cda0870499ceeb2894b1ee9e4b4b50a,
0x78659081e54791398b21d9ac972caa2aa37b68663149df069c1ff5a4b6a88c9c, 0x59a2307792a30d2b69e8fa7225e8196112cf919b03ab6a155e05934575a7d19b,
0xa23750e31c85669f452f708bc09dfeae7fe5a9fbb4c815dbcef63df994d6b76f, 0xf7339b14a6e7de6dac32fa3e4d411113e7707c11fdb848d141d92ccc8dcca8da,
0x5e52b50b6e1f0ebb809fea76edaf30166f3e5a0154dd1688d4fcdb13d0c13079, 0x199edee73a354b0c9b69878534a03eac4a3829d13d63ce1cc103c48e70e1296f,
0xbbf1ac07a3f2378d5ed3c021f3caff41ab6ac82840ed782b12ee9c64fceee475, 0xb4bfb8deead460e610883cc836b15fe324eb9d89438b41d684622a0087fe5067,
0x6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7, 0x7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160,
0xae86eeea252b411c1cdc36c284482939da1745e5a7e4da175c9d22744b7fd72d, 0x19e993c9707302f962ab0ace589ff0e98d9211551472f7282334cb7a4eee38bc,
0x43ca41d162b3c64fb8374d859ca6f72fb2a7258e426763d524ed75e8d21ce204, 0xdcea5a82e37023fa1c650f9218dba31f9ab6c7b33ea4a468e525044e934a8f6b,
0x2248c9f90bbfff55e61d2f8c56dc2c488718be75cf36f2ee7a1474267c169290, 0xfa0594692d21eed7a506bb55b435ba18e163750235da2be2369d8a12883ea257,
0x9c3e06ef22892bf5b666f723785a506d922d4ff3f872805964fce92cebe6efda, 0xa7b709e5e762923d8af0b2d44ce26fd5d43bc8687b36fdf7df140f32a7aefc7d,
0x30abf89b9cf231374978419990f92214cdd6e9aef061613f5b3a432014978583, 0x4b035115477f7498cdf7b4f2d0e1ab8063120ea23bb584ac446180351dc75777,
0x5d6f8aa313e20f033bb72759d830775bea2c7820d06ee5e279127ab5c6c88be2, 0xadc4b18d8d56d4e8c71aaf33ab08bc20edab6f8ea6bf92c2892e553f0d7ad75d,
0xe11a6e16e05c44074ac11b48d94085d0a99f0877dd1c6f76fd0dac4bb50964e3, 0x87d6065b87a2d430e1ad5e2596f0af2417adc6e138318c6f767fbf8b0682bfc8,
0xf57d35c304a60d5fc86b15c3c1388bc5c69c0382c173e484f289351b92d1b844, 0x707f3d9ea98ef4d97904d3f5a9e4634c7006972030915c6a464babbd61266837,
0x6a73fb216726a955ce8d419b9da10ba811f80d462c39fdf873971647b21f51d3, 0x4f3ceefca1edf3c27fea7d29497211322db482468b60b77401824dd9a5224b17,
0x13e7607a3a6594a5f596e1fee3d871463bc7eb68a1d1b435234d007f3cc7cb09, 0x284dc88de8fbb8b1e325fdd85b34299d65eae2bb66b576411be75a8a08079160,
0xaa014eaad936de6f681fac61a05b6aa64673f853eedc99cc39a37e63ec288015, 0x3de913c04636be9ac3f2a7e43f7b0f63ef4b9b0743cecad9df814e6646c1006f,
0x29bea322568182e62400250b1b06901da8761fb2172ec3b90060ce1258cdee05, 0x7c40d9a2690e9a0ea9009b3fb8705ec7f9fc31b6c8c698e39e4a0359a62651c8,
0x36aee3d35337512b4ea2ef2c77db796eba4c1cde6c7966144cf85578f11d45f9, 0xcaadda35cd69609c79cb954707c98f54004b35d0ac4736069d3bab3f7cfebad4,
0xf521786d238288e7d9c36faff33d4a59d460bd93bbdbdbcc11b6c75612f18ada, 0xe0686fbf6038db57ecc26102bcd1d1d6aa5ef4a36c5bf0981dd68afd23953516,
0x3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd, 0x56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0,
0x8d26200250cebdae120ef31b04c80cd50d4cddc8eadbcf29fc696d32c0ade462, 0xebed3bb4715bf437d31f6f2dc3ee36ba1d4afb4e72678b3ad8e0a8b90f26470c,
0x78baaff3015c05ba5d2196b3c67f01bc0b13299c6e73c330abd9d3f2059ab499, 0xad4bdcdbdb06c0afafca84e0ed82082e91632eee8d125199681d2318fee097fd,
0x1238c0766eaebea9ce4068a1f594d03b8ed4930d072d9c8b9164643e1516e633, 0x8a9db02dbb271359d6c979e2d1c3dc170946252dcc74022805cdb728c77b7805,
0x6f70f211a14ae3d4c20b84984929ab1a23709b36f83a20ca4493e16cfd06ace6, 0x791e8a3094027b736f95d8f347b99f5075329566be5ac5ee048bed34b602d5de,
0x17c072d56bdd1382a782481b8aa4d2232db794385870bcadc3063330a5cd5379, 0xd901bdf4283da064e77c1247af1d034f8959ac76265bad0df7cae051b108cd25,
0xe1599db29d6aa415f80949f19103ccd48ced485b71e96247dc8ee3ee60ee1b40, 0x793362232a81d4a0efaf894aaa2fc7cfa6363a74bc32999de1d6265ed78f93a6,
0x271d5b0770cb9c15e7b2ea758a6a11b9cddcd7282b0ec21619b01552788e7a66, 0x5d3aa45834e7f491e457d09949ac877fe2a065e3508a824e7a8d7258e03c9727,
0xbb0b049704406956436562d33d451859f00e8f03c91208e2f81dfa2849c00c3e, 0x4067e45853af9f63655d2fa17ab1b052fe67044e905dc90a799a982d11955a35,
0xac2acb9b21999a70540708ab68338266aef650eed81c5b30da1e87d8a8a923b7, 0x7684428511c1724d1c9afa0df13d9eb360b0d0bf12d27a4fa2dc124ad7cd20a6,
0xdc5a41554195789e9b649dbe075a5fbfc663b551b53e5ee7e0e75b9c05dd32e6, 0x4af3a8a63f9f67a76dcea5e201bf59442ff2ee9076e49bcf80e7db7a754a99b9,
0x88271c02621192f9ba6b25ef9cb2256eac32a5f91fd25ea95793c018ca2d8dae, 0xd719dd53507176aa401c8b3ae5abf5acc300876dc717d099fb426c0f3e1e77d9,
0x156e197039873b9dbe3354a571014e99a1064225b52960359ed45bac4544e7cb, 0x6bc08d9f8f31907da939572a63834be89496d58d5eb439cd6d5392c0ad250a37,
0x15b8390d652d7338e18ee09197e0e17674f8c4bafa2e7b858f5badc99c89240f, 0x786cf20c8efe8d083abdd7ccc7a59f99b30367ab5c1a33352e2f9ef8e326f04a,
0x4269bccecb6843826bca76a228e7161348e9626b9f19bf54dbfbc29cc59853ca, 0xed2b1c1a82c016b723c84ca9c431a409fd3940a5f9e5a8a3da958ef535b8d367,
0x85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83, 0x7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6,
0x534ccf6b740f9ec036c1861215c8a61f3b89ea46df2e6d96998b90bc1f17fc25, 0xd5715cb09c8b2ddb462ae3dd32d543550ae3d277bfdd28ddd71c7f6ecfe86e76,
0xac3874f9fff1d8c1684876075840143dc4872f9c6825e8b6fdf0723a83ba9000, 0xaa65e92308a1c069b862dde894117f93085e350d7f66e9fa4da3c7d96f10cf0a,
0xa91d1f5cee87b7f3081e142018f8aaed79020d47ecfbc8d2c7170923e8bee8b6, 0x748a324ee2df8ee15a7189c8dddad3b2f800569f628cb225003d16aa410644c1,
0x570d5ce7aa6870139ad14075e9a3e729ec0e3f8578a20d081a606f66ed06dbd4, 0xa6ae5349420e02f605b66e6711d01bbbb683a36dc6460bed5a65becebd1ed495,
0x8e891b5cd18fa02a58bead0c4848e3c3c3b81a5c2d042989ae5d630b17ba402e, 0xe5d30e0e6a9ec6680b38d0e404f2a306af650c242157a7ee8e1b6279c4fad9e0,
0x75b5f87028268bb6f87c229ee0366ef5daee32a0d2933928434c1f92092d230e, 0x527cce21e3a7852363d7874554ddfa8e0267a4b00511f8fb037cbdfbd51570b8,
0xc15c8c23d90c8e35c1a214dde2d4383c0735ae45bef61f10aa1a1c255984cf74, 0x2ba954d828522235c8dc6f45e25fd7ba47bf772d50b015a2c4a48cd839ccb000,
0x44fc8efae1eddec2b0a5b80e27d259c8927f10a42be3884c47b6bf6ac34fcc0e, 0xd2c7de94ba9b1367e49267e78833d3d7720e94a4bcd0489d9cff031e719c420a,
0x1566861334285db67946ad8ba60a87feab35a98cb8b7f13058413f0e8942dea9, 0x4f3597aa0e82f05104e894effb20fd22de4828688b23edcbf92546f0367be3df,
0xdea2ba47bace7bc6866a16620e02f535fffb3fa2c3307175d5a481fc8bb69991, 0xae28bfd6d90c28e4ac5cbfec84f7b9e7229dcdb3621ed9bc706742a9f16fe2df,
0x1332f8bc1cc6999b472ca8f2306b319a0e0c179ed69b7bb3e61ed61e536bcfe8, 0xc39dc7ee29602ed713f67c4535dc0681ba93b424d5a8c21451b0dd2cdae78402,
0x3968fc98a6e168d6efc1cf6cc4b8a83626d00abc29a461658c240d02514fc9cc, 0x789cbbd0db4b59281237982d1aad32c91a146576ff88f334019394895fad37dd,
0xb5dd69364e540816830e37159c2a495380bf1d6deeba1f27c023af3e14cc84bf, 0x4b36ec5853c7cb6b6bd18733c58d4145353110dedd6b1a90c785217ce374750c,
0x6896910698e06a2926b25df0957945d5a6a52e53603a3a250aec2191ae0c85f1, 0xaefd3fb4b38c979256f305c1d845d72d1f40c19da0d503922c7482332dc1de21,
0x948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a, 0x53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589,
0x26952c7f372e59360d5ce4c66291f0b6ef16c1331e825e51396eb0457e8b000a, 0xf513ea4c5800a68862bc893d2d688422debe398f653d67318c3d401f05ef705a,
0x9945b2fbe3822bbcb5c3396d2056f849641242ee65e2aa527282fe5fb8c8ac7f, 0x3eefed824b0f282d607db44ffb28eff5282f7a23eedacdfa96d943a169aea3b0,
0xc62e58e6fc23c5bdbef2be8b131ff243f521196572d6b0e9f102588976134f96, 0x4397827d45b1a1678c3d676753141fc5bcfb853563731c3e82277ed4d14cf97e,
0x2a314c6b205870e6235f82227107d5fe10a0440852bbe1f6ed1d79e3969e353a, 0x15a4ac0bf35a27ac1a463e476baa1ba0138a54aadb2658bfc25926e1e5746067,
0xc7d115c0eb4637db068772c77c95dbf3bd278de2581318e3baa499892fccf64, 0x4aa8747b1925b0447aa424b8478af14548785d83959ae68d53f6d3b32878fee0,
0x5959a500b703fc2d498b6faf3a6b6c911b4f4106dd7f3ff989e2f49ee9b84966, 0x370e6741f5ca897f94312820dc82a709100dcc08cfe242640a6632187473a6a,
0x107460520eec5c741683329a716622b0b81c03200807de973686f8800b188cbb, 0xabe5d4c09a21598c35326b9b9cf54a11242e0d748dce3da601d7b6361f272124,
0x9eeb313937222fe8e1160c46305b5f9d7dd8623c7eed3feb3b0c9b922bc6b173, 0xe121f1e0110ed58d952aabfdbbba1ae30ea71abed0e70c4b9539620d9723a71d,
0x520d9a9bf3daa9cb18d1e80ba27b3c2f7ba49b4dbc927a94457e9bc92ad2cf25, 0xe526f49b10271eae48f0ae71b4ba97062bab0b6511bf70c7610b6c83a285181f,
0x39cc4fe4c7f718f516ebb238806e97887de40f7509d995915772443f7ec805f3, 0xecb1472c5a46f8f3151e6693cf42de7dbbb957373fc912e4d191a0c13a3c48d3,
0x5fc6c11e61689535a39586a81bf3381be1db07ef7a51bd2e8b5aebac548d5622, 0x10e80e549aa1d9db9c19ba2db0367acb0e05ad08e6c7bf300d0d840101ac1683,
0xf94c807466ecdc696892ffde64dbd4d2c7132896d2d6f88793d62fb5ce22580e, 0x5e9c7fdc6785225a9194bff6ab5a81f69887ec4532371d4e81e523f67127db82,
0x5aa433e5d872d6e93431274a33ed09ad26d77d684573ef99123ab607c0a3d8a5, 0xddcea1fc682ae79a19a394aec728a56116475cf52d9d6ef4fb5f7ef76d3c2ba7,
0x8cccb86c6ad5d162fcc02068db1999d25024a9594d03da7a6be40bad10c4f21f, 0x57f8965862751c43699bef549c8758a54b92dcac8264be28f7f126ea729dfea0,
0x6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8, 0xbc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17,
0x85d8da4748ad1a73dec8409be84f1a1316e65c5196aad27e0766746f3d477c2d, 0x58948b53665c6690586b536531efc7bc94b0a02033c4d5a62079816fc7d1dd70,
0x87d127280482dfc33d058937f2333b3d38c46f480d9e3a5bbb0ba46541136602, 0x71ce24870a5a03de926a276cff67745387a884746fd3bf7c4f683c41d8af6aac,
0x8e2a7166e7ec4b968c0892e9cc3ee3ee4d1e7e100fdc47f04850312d6c0b80d9, 0xeadb0ba9ae2cbe592cedd29b716a9d485297b688d706349a49c61f2ad6b29f50,
0xfd5d7d3fe261e9746b0acc63dab54aa13f5c440d535610f25b205d7348c5a916, 0xdd83ed0eeb55b07d2b43ca679c7b52fe5d73814bdcf6faab14b37b07adb8bda,
0x28df781d4ec05680590f4658713c8a91fef2376387ddb6dd674a35c8b0e74459, 0xf1499ea66a130f17cb0db17890f22794a3795ba501ae6f0a8de07cc0ef5e656f,
0xde0dd410981c26122ba453c32d34438138765b98b5bd51dd45d9909635f7529c, 0xd70a6e9d10a2145f9b2109822d7a3570178924c6889b774063c20c02e4cd88fe,
0x769bc75842bff58edc8366ecd78f8950ee4ab2e81359d90f9921fa3d2c4561be, 0x4bf817362fe783bac8dce4cef73f5d4741a177767b7873add5920bffb0d9685f,
0xb26c208ada4cf44e69c5befc39c292a21511000fbf8515573c82f48d38f76d11, 0x1f1cf8820949d33cf0c4e87d90cd6433050030659d82624bdc1c00b1e3b7356b,
0x66e3fcefb7b24cf7af0f8de28e53c2df2bd1dfb2c0289b1031239da0948e129e, 0x20bf8b4fb770c0f6598b5bf34cdf80cb5fd7d99ed1a53b5172bbc3602ee7bbea,
0xfceb14b8fc7ff523a7e3bd29018c294eac993ff59f9c8933f94e3b06669e22db, 0x64aa6b3a40d6b8d1fcd8a5a7525f0924ad550e793a4ebe4cbf572db25c2260a1,
0xeb45f9622bbea103ca7ccf90023fa352e7eadac44f057ea346d9dc529c71143, 0x52c42f585838bd0f573601f5901e2857d65969ea6a2b1bf4c8a8cda20b70b136,
0x4e909a623ccd5cac55c175774b507faa53721a716549c5506f084179a38a2755, 0xae56da878cce35aecef246dd507559dbb6cd5394d229800caf7a49f623cca3de,
0x3cf9208ab230b73d68470411bf3d4899e0f19675f829e32f00cd148d3c07d7c8, 0xde03c64c15af865d51ece6ca65c167209d4684c8d5b8c59c0c4a91dada4cee08,
0xc367455c22e04c03bfb0a145eb8e40e2bde60f7788c595a3a8258959983ba64d, 0x3a520ad069cb6033080e0e6e84d964c742626aaca1778f14614cc8f96a2181fd,
0xe5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d, 0x4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda,
0xa5e00da467fd5494f40b6cf7d2d61b3ec3ab217c792a2ddb8c63c8c79e3d34ef, 0x98fe5f5e5608555421726fe99bf43d25b60dcfe790900acb855c5ce2f7adb4c,
0x9d896a3aff9633cee58543bacf5291aeb5e1559388ed95f6388a8a6e177e7775, 0xdd91a9e43f49bf0b94e964ed7250927de899cd7ee299253befcf6d3aba056691,
0xa99415f5ef3a2b403519f4bb1c9bfbc46d4afd2e4477572ae6737160d7b91252, 0x82d0e64cae81f84bb9e2f10f24f6f6b6899a16ad590f4ddd73a377ac4bedc264,
0x8327b8ee71163792d0eb0a573282f4cd5688b86ee903476c5fde04de3c2a3293, 0x4997e266ee0a98e18bb3ea66279708496afdab4ee326a416bc854e18e0df9bd,
0xcf8c2d2db818dff97f8e6431272384df2a74589058578415957f1e8c904ed3, 0xaaad000ea781d44119dd5c1bd51bd81122991d79d32f6827b009963b796f77c1,
0x5ae42aaa2a6db16897d6661d8f9a8ed6092d23234b8dfb1a2421b26c4562c042, 0x99d93a7c05ff051eab5c1ddc60389d4a94e0db95107cd8dbf905ccdf8f79269c,
0xb56f4e9f9e4fd1fc7d8edde098f935f84c750d705f0c132bd8c465b66a540f17, 0x32e8e53429cca856d3dc11adf0582d1d21d42963cbcca85446a2fcae0200102d,
0x92c23ae426a1c8eb59aeb68ff6c21b0f4e8ed722dd4ae766b34881285e85af61, 0x414cf88f01551bb409f217d5c738d5792d23ad82b6286fed4e723669c36a2b09,
0x3aba5151caf6483bd1e7e4c6f0fcdb3048c9b789fd6caa3e280aa48259e5d1b3, 0x8c1e7223bff251d09064ec8047d72cc9e1846359d2de6ee6a85b678d42f30087,
0xfee5608c76afdf1088d0f4176af8df422dabedc7f918ea36ce2af1b2c7b5eba8, 0x3807599134fe58afb11402f99287c14ee380ff42bf9054793f515d368d0b9b5c,
0x809b7f1fe78c1bd45afb88f79bdd89432e6b15b7a45ae61b2b59888cf8cffd, 0xf817e022bf41a8630288c836de52fdc912a340fad92b9f93d91d45a18db5f32f,
0x42e544eb92e667e620a113b4c62a6afca28ff3ab28f53d5281e3ba4b3c63caf4, 0x9ff854e0f91cc671f71f220c17415e7873a50e7b6befc5f1187aec09969c29c8,
0x32dde6ddd352d4a741df784947fc192aad2ba5a00ef0c63d6c61905ef7ed9ef9, 0x41d17bdc342067bce236a4f94d58c1f459ec1b379c98f4b21abb8468031fb871,
0x7aed83b665532ce383996ed2a4700efef0a109f1b940328380a2bd985e0f09a1, 0xf5b8545f9a31ef7c7ddafd0ab1032d8ed88b2f300f3f4a54045d8cde85857d73,
0xe06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725, 0x7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd,
0xeac134ca2046b8f9c8dbd304fad3f3c045ebfdb4ec6ed3cfe09aee43ed2ff3e, 0x49630dbe79359b4245bf103bf2b11799ac19f696b7f21376e17206207d210988,
0xc663c05ba6234e00a346899185b08fa7b24d773a95adc18bdbaa8188da328d6a, 0x3331e98d5f721c38d39afdcf27571317dd8551ea512bf9cc23b0bb6abec9b8c0,
0xd6788590731fea198392119d7adbb41ff5948a7804c85b17476706e4dfbfa4dc, 0x28eaa8c89d5063c4940ef5c6d21c13aa6206f1c4ddc9a07cca7bcd6bbd3b5406,
0xd3fc2682dfb86a459ceb30deea0fe4e977cedf2ee0b25114bc91c8483996de2f, 0xc4f0df99a45f0a18f68b4754d4f781da4e59b498df7abf168c492241d4526f8c,
0x292adc1c33af83790cfaff3394799597a9fb92830bc205dd6dc35a6562143fb0, 0xa072661bcee0b647f3f1968a0cc4ecf6d83e662d735e9d4d8a9db63ce36ad01c,
0xc17a4b43feb2c0237dca1fec9a3fabd19ce678fb985f83e85c6c48d103e697ea, 0x39355c2d55ab5954cae178f719601fae96e1a1b57f9f02ab0ee3b87ddedc6c87,
0x6930fccbd9a040974abf210f12b71d4bc7b1a6205599b01a7275fb40e48ff9b3, 0x7f02ae94b94701eada30fcdb875f6d78090f9b13e4acc51acfddab5f8ee96a4e,
0x8f618b7ca26790b468c9349d7fc11fde9a0edee60f93a31182d2c3023163da1b, 0x78233f25f08beb6eb5fbda74d7ac5a426450c66a3249b6e7c7f3121103bdd76e,
0x4d952a9ca3321e69aeab0e61b2d3ce72ba25f0fcaaded6b084fb09b54d0cec10, 0xb178184a66dd279e4542aec787b5cb4eba4aa2dfc84f54da8ee36b13bbd06932,
0x9798c0f15b7a1e6eb86d5b8dac83f1b8cfb26b92e8bbc5deee8590fe0ec8ae90, 0xba40e2aa75a42ed3dd2ec9494f9c73bee2e4965bd03188e27a9ac2eae52844d3,
0xa43507f9ad5467d3fedc804a59c675b3d6ff1d39fb094a4589ec1e6c30b90e0b, 0x7c8f2dc94c3fd71a142d07ccb40be8c0dc2a203653599b5a3f000b993a1fdc20,
0xfdfa6ee3fb5a2d6747cf1b90b89284757aa692505187dc8105a1978f11d66b7f, 0x4d9cf31e224998db93c0c1c9a3da18c4d846f9dd13d78de9daa8f80678e5178b,
0x72b04ecd4b7bfbbaefe11ca1a749e6711ddb64db7a2b493ab836b58659c0d7ad, 0x6865b3ea0e64a358cedd452d6d934d0196265d681dc6f4fb2efe6ff46723cd97,
0xfd58ce38de229e43addea9a461cf220e69ce2b78411c7d30b80757849265bcf0, 0xffe0a5e53763215bd5382ab9a485e4fb87261bfe28f1cd1df33e7a9ceb996292,
0x213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754, 0x4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2,
0x1c5e548132b49a7f66ae9fed8323480e0d1ab974622e7cf08993895e0ec87fac, 0x4ffcf60f837f468f2bb959fa1d4c2ad3a3deaceb26fe324c555d7b3d5fc2d4ef,
0xb8cef6e1753da0309546e096b953d172ae3fa3ed4c19a93e532d80119e05dccc, 0x302b8a60a6cc9bbf6a4d4a74e4d2bd99df757fc36a6b68133014a0cfcc6d5750,
0x46276d0602c5668ddef6e94210bbc7ce1f901c19fed5c970e20fcba1d4531dbc, 0xe0f7f24d44c75b84a292287570ded99498badfbffe1bc99af8730099686b8e2,
0x3fb33e779b47385e02a0bde2ebb5f49701f7b6b5fdb97b485bdfee1373bb31a, 0xf36ad952548efe281e0c161aabbb572bc65a7c76c47640d4e34cbe697d215c9e,
0x3a571630935c1f02d6fd87442c082060cd5e792a1c6f92bd0c4eed01686df50d, 0x85e13873b599f32f516f3ff2e570a0dde0aaf81ebb781a11d2158b28e859679b,
0x4b177cd109ec3e1161f16f7b4d0f7a36717c36c1855bb7c0a5b515ebdd9a4ab4, 0x3ec966e9a5e2fa65fda8f67293626b486e37e255f1741f558aaddfe4635ab6f7,
0xefea68eca7a6c24f4e65eb211c3191636850e0acdc78d8996114ef13522f001d, 0xaab847869d583c14da150307a3719a17e413959fb3848771c128419f73bc4415,
0x5e87035206a27a06c2a03829b9b9cd75c22a415847a49cf56f46fb29b01c23a4, 0x5b96644efb9c9221e71755d1ae2c6e2da2171d874a4ccfda1217996b10d986f9,
0xcf0bdf47a3f15b245c7136c23a3e38f2661fa8a94df29fbd8b41ef22c291dc6e, 0x38c2e01c6e61f511a4c523b4e57918f6b4fc6cfd2bb5f2a99c73c144db7a8196,
0xe545c301930d680a4472244f60aceb7434a7fee4656c86fb1f3f35d2007b0c66, 0xe06a340e8c62955e7e5c6fda3959bcbf97e5828e1b5a239dd87f57d271f2d470,
0x5e6a863d4f205fcbbd8e12e5a45dc0beb3a03779ba7d92cde2aa2b67f88f7e09, 0xc2571a078a388edfc444a8d1f6940234a68e503723b4cfe3bbd6286748dfca97,
0xb2a442157a54f580a133ee225f01b39882a0f0b069c3c7444a58190b83648bba, 0xfe4f5fc2b69366619e9fbc978fbd7e31c0d855151c9c17bb246fab4a00fb6452,
0x7a1ffea8fe5114b8a6383063b7811c325a40c1942451557679e75e2b304ab91, 0xe10c0421b0fd7c546910437c4344a595287e5dea19009d9d35af463b6797e554,
0x1b908e0f3d4538651ba9701918d97007f70b41fa2c45103fcf6dd22eebab27d0, 0x9b6d625eec466b5e6f357c91817c4b9ab5bbca93587e51b571e8675e40d3d110,
0x4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c, 0x17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6,
0x899017b02696888f268a269f4e385d9c9b11f25a1bef8790e2821e6e7c6e1b4d, 0x43ae2cdab5b334f0bb45798336358bfae4e51bc0f932b212009aebdad814ab2b,
0x2484e3010c9455c75e44d2be9ae24a5233c0717e9aa750cee298464e521b3ff, 0x9619d0a0aa23e30d07ec2b3c2b2d0eebad7006de923ac8bbcc1ae4b90269da7e,
0x67f644f76e905fd4a8f4728e63227f0e2831f5bf91b583a8af2635a17e5f712f, 0xb833d68f66445d04f05adeb7b586cf785e0e1488f7d36198d68acb5e707160e5,
0x16c1c526cfb6ce57ef79b70d672c954e20d6a47030741751f96b79fa804ba7b9, 0xdb157f7c34031439062627459c8a94deec755c01bdc9a9cc475be3a51c5bd741,
0x4e53c8b49901ff800e0aadef4b1f190edcf43c6ccbd90dfe2b26096140692fd1, 0xdd6e3e4f4d41a01e186cd709a7219da1a87a50da57fc9753934930e7328625e0,
0x3973cd753f931af87a89ce774527b6695821b5380ec0825e836487aa36683fa, 0x38cf5a2cc30ca3a3643e12b632b5a26cd77884e18fe981dedf5fb2b77f4a577f,
0x327f876c93652555fa80a054968b4712930dc93012ee6b8dc10263ed3b89a762, 0xb2d404eab3524026b09969255e1997b975535070febd7dfe9c9fd959b9203301,
0xba6a9bba72ecf1511c2c04f4b0205765713c133225043b57180b3999c0bf6f06, 0x13771e38b34a11b032020bf2e558bd8e9e5d14f7ac697aafe32bef70781db551,
0xcf3c5da6b99ac5cc3d5b9286c03016a6c52b9985ec75fa2799f119955637b39, 0x2cfb52fd9f39b64134671adc18024a537acd30523c25c3cd247a3d7a2852a40,
0x35c5bccc27cc4dd2d8aed95064de442f44d514d665ad43b9fd1ef9f071231a43, 0xe3675723b9746ce734e5820b6fa589d4cf7a4cc063cf0ae7db72e451620c8f6,
0xce47d0f5e0d375f3a8212e06de2ce311fcc4f7f3e121bd6148ce357db549827b, 0x15c698fb99630d49d589139fe5b9ad0f29e6592ff05769df43cc9a5fefaed097,
0xfd479c245c5586bca122f12fc588356ac74190980d81cd76bf40bc56fdd40609, 0x3069cfb52694afeff2cad7a43c9841fd9113aed7261ca4739de2f1366a64ca53,
0x931bf8bd4a8e42f34eb0e2207f9543c7f60682ea1698fe13b38fe7157d48be00, 0xf1153bf0489c2083d1b388e61140ebee6a43ee6ab333ddf51586a9131f44f452,
0x6c40002a3accd864bded8eb9af2c7d544f18b6cd53b8e8424db702f52b799a7f, 0x95c2dc1530b635be690b836a0e1ddcbdc07abd4c820483f68b5cc82cd3c81e32,
0xfea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6, 0x6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f,
0xed9441c8304280ff180e03d850e8cd0ebb570ee5de3730488fd97c961f9756e4, 0x3dbe9e9efe8bfa19afa176128b13911e09f23774fe4de98bff0e09f93f3abfae,
0x762e8bc33211fea8226cd97b271899f3f27b64997b004bb25dd81ae9be889756, 0xc02894260af3e97c3c7cc4f14982e3471972db314884fa5e25e259e07ca6b774,
0x29d9698ee67a7c3fc9fed3f624b487515b10bdd84fab4d3015bad033d51cf119, 0x7fd02c517dc82b45277a125404f1c96fb89c940e93a7c2963c88740575056339,
0xdf077d47df6095348e19bdbb2308f4a91e52acfa1014e8ea26f75e970975d2ea, 0xf8617a8800ef7f4424c8425c98a2527c8a1ec5b84fbdd277aa3c2d9e31936f95,
0x38b82a75579ad36b9d47ef64f1a5a85c247f21027e56c6c2875580a5a6714560, 0xf9d8a6976f261ef428bf5634616434597d94f23bef716284ada87334a774299e,
0x9f3e7d758bd3da032e17dea8334b142935db4d6ee54391b45b8491fbbc4c92d7, 0xecd2841ea77d466b58862b21cbab1502452a2303d694e1186cbbbfcfb14906dd,
0x126b57d05013936d6f3fb7bd33580a31fd453e4a86060cff467c44537f422491, 0xc1a7dc13061662c2e3c4a3eba2bf3fb0e148bac30bf39347afa31f199da3ef84,
0xa0cc795d7b5ccf9edc38c3d22ef95281174b0c88c5040ac35ae0d732b2a8c483, 0xabc30122f8b3873ee2374fc97231df786b348f1bdf6936055096745592cc6ba9,
0x1a241179b9e81f5670cfaffac8a0b5bf38a0aefb97ad75760515623a3afaf403, 0x8e1ca0c0a86740c2c4bf27493905b76c2c8177f4178df60d590b6e40e4d79a16,



422  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 27, 2020, 03:29:59 PM
-snip-
1) for each private key there is only 1 point (n private keys, n points, n is the order of the curve)
-snip-

I know that EC collision is not proved as there is no example.
Yes, for each private key there is only 1 point, however not necessary that if we have n private key we will have n different points.

Simple example for the group of 10 elements:
Code:
Key   Point
1       7
2       6
3       5
4       7
5       3
6       2
7       7
8       0
9       9
0       7

You can see that for each key (0..9) there is only one Point, i.e. we do not receive 2 or 3 or more points for each key. We have only one point. However key 1,4,7 and 0 lead to Point 7 (collision). For group of 10 elements it is easy to check.

However how could you be sure that for group with almost 2^256 elements for every private key we have the unique Point?

'Group' has a specific meaning in math, it is not a simple set of elements, moreover a group with a prime number of elements has the property to be cyclic, i. e. you can 'generate' each element using only one element of the group (but not zero) and using the operation of the group: adding it to itself: G, G+G=2*G, G+G+G=3*G, .....  it is like to assign a number, a scalar, a order to each element from the point of view of G.

In the secp256k1 the group is a group of points, a cyclic group, and each private key is the 'position' of each point from the point of view of G (a chosen point). Because it is cyclic, when you perform G, G+G=2*G, G+G+G=3*G, ...., you generate all the elements of the group before to return to G.

Different private keys, different positions, different points, different public keys.

If you apply the Fermat's little theorem in a additive group, a*(n+1) = a, a+a+a+a+a....+a=a  and
 (n+1)*G = G.

 
423  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 27, 2020, 02:50:46 PM
-snip-
There are about 2^256 points, then 2^255 different X-coordinates (k*G and -k*G have the same x-coordinate).
-snip-

Is this proved fact?

I mean why every private key leads to the unique X-coordinate? (except for symmetry point).
In other words, if k and (order-k) leads to x-coordinate Xk, how could we be sure that there are no other key m leads to Xk as well? (m differs from k and (order-k) )

Because it is proved that:

1) for each private key there is only 1 point (n private keys, n points, n is the order of the curve)

2) for each x-coordinate, the y-coordinate must fulfil this relation: y^2 = x^3 + 7 mod p;

each equation of the form y^2 = a mod p  has or 2*** opposite solutions (+y and -y -> k*G / -k*G), or has no solution.

Therefor there can't be 3 different points with the same x-coordinate and with 3 different y-coordinates, because there are no 3 different y solutions for the equation y^2 = a mod p.

We know that there are exactly (n-1)/2 different x-coordinates (and (n-1)/3 different y-coordinates)


***EDIT:

according to the Fermat's "little theorem"

https://brilliant.org/wiki/fermats-little-theorem/

a^p = a,  then a^(p+1) = a^2 mod p   then    a^(p+1)/4 = sqrt(a) mod p

(note: in the secp256k1 p = 3 mod 4 then p+1 = 4 mod 4)

if y = a^(p+1)/4 is the sqrt(a) then  y = -(a^(p+1)/4) is the sqrt(a) too, i.e. to the power of 2 they both produce the same result, a, that in our case is X^3 + 7.
424  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 27, 2020, 12:40:30 PM
Does anybody know how to estimate/calculate the total possible DPs within the range? Moreover, it is also possible that for some DP value there will not be any DPs.

For example, the minimum X-coordinate value I know is for private key 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 and for 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1
Their X-coordinate has 90 leading zeros, so it is DP=90

Probably there are only 2 X-coordinates with 90 leading zeros, and no more.

There are about 2^256 points, then 2^255 different X-coordinates (k*G and -k*G have the same x-coordinate).

Probably there are:

2^255 / 2 X-coordinates with 1 zero leading bit
2^255 / 4 X-coordinates with 2 zeros leading bits
….
2^255 / 2^90 X-coordinates with 90 zeros leading bits



If you sum 2^254 + 2^253 + ….+ 2^165 + …. = 2^254 (1/2 + 1/4 + 1/8 + ...) = 2^254 X-coordinates with at least 1 zero leading bit.

With DP very very large (like DP=250) you can manually determine how many x-coordinates there are (if there are) such that Y^2 = X^3 + 7 mod p

On average 1 number each 2 is a valid X-coordinate (for a estimate).

Here there are 150 X-coordinates with (at least) 40 zeros leading bits:

Format:
X-coordinate   private key
* stays for:  private key * lambda
** stays for:  private key * lambda * lambda
Code:
0000000000e1387e34763704d1b149a7cdc086395346907a49ed7963ae5e4837 3400000000000000000000000000000000000000000000000000000035d80cda *
00000000000782001b949535174e508842e6945495da73f59adb47064176d233 010000000000000000000000000000000000000000000000000000007a44c2f0
000000000078584f51938406db35438ed5c4189f2fd2b1e6ca8a6a2179bbd808 400000000000000000000000000000000000000000000000000000007121b07e **
0000000000eaf2052284bdad2bf8cd17d99b2ffe046244a0044b261f8df674a8 4300000000000000000000000000000000000000000000000000000127924a01 **
0000000000746daafebc7e7d83963f657a9546fff669bbab8ec785946a7059ca 4e0000000000000000000000000000000000000000000000000000039345bfcd **
00000000000e258648b5edddf578a965f74363983fee1fa2fc9af00720c3c79d 2000000000000000000000000000000000000000000000000000000564b8a5ec **
000000000038641aed1bb3ea0b9eba5f75da61de20da2f9b5c2ba9e7f8ce47e5 04000000000000000000000000000000000000000000000000000006c2049732
00000000003161df5d55df74ea73f01281bd8da8926bd9fab14e69c0162f9821 4d000000000000000000000000000000000000000000000000000008bf8f3af4 **
00000000000ba89625cdfc9561b2ba99b8726d904115cbeae6823bde71aa52b0 03000000000000000000000000000000000000000000000000000009339b1d3a
000000000048d030ecd0e435656bb8645cc65914af61b30834b4793062e9c306 07000000000000000000000000000000000000000000000000000009b9cd0716 **
000000000037527338a68f66379f010f6e001ec69175d8dde8606687068b64b6 2e00000000000000000000000000000000000000000000000000000a88164703 **
0000000000114ab80b0e1804be9a7720ebd23000298d45f1e126c4329026b387 3600000000000000000000000000000000000000000000000000000bc53beb3d
0000000000ca3291e849f0b2923ab4217c419a1a665c7aba06a5c422df7387a2 2f00000000000000000000000000000000000000000000000000000d9dafab78
00000000006abf9e3898b80935072e5e54f75d78139698321a079765fbb87077 4400000000000000000000000000000000000000000000000000000f7cc1c6e0 *
000000000082d7e503357813e06a1d496304099dd11156d6059837880a8a3852 400000000000000000000000000000000000000000000000000000112b4092c2 *
0000000000be7f258426d9fa89cbc7c04ffbdef4279bd9b797dc41951cec9ea8 47000000000000000000000000000000000000000000000000000013433071df *
0000000000be1e4abfe878e51be079b3da54f95ef87043ef131a38555d90b288 210000000000000000000000000000000000000000000000000000144097c2c6 **
000000000062eb05bda779f9d06aabd0710c96f9b9835e92af344df20e16b280 4a000000000000000000000000000000000000000000000000000014892c0ecc *
0000000000e14b6206085b683ca9cb4d18ba897fc140b72d5d4a98e85e848393 2e000000000000000000000000000000000000000000000000000012e841e014
000000000099d3ee7e7e15306ec2ed021fee5a4bf7446e3ed801a6b9ad43bc7e 3200000000000000000000000000000000000000000000000000001586220c38
0000000000290459244c0db66eb013fd5ed2fbc4b065e93c4bbe7789431840ef 4900000000000000000000000000000000000000000000000000001795d5ee70 **
00000000009370afb5c0787686cf10b47aa16de5b57bfcee6085c863cbdde7be 0f00000000000000000000000000000000000000000000000000001c4b397168 **
00000000002970866989ac7adc6e39f092b750b157d1fd0ff88b7cab6c15069d 2c00000000000000000000000000000000000000000000000000001aee157f73 **
000000000056a12f7211ec469bda752225200948a9df628ec29fdd71d7b1f255 4e00000000000000000000000000000000000000000000000000001b25cfb7fa
0000000000ffe1af9405c6cb2cd0301d205e438c3acfcb89f6706c0991747dff 4700000000000000000000000000000000000000000000000000001eb6d634ed
00000000005b407be3fd7fce7e511f36b98c0d6c6d2b41e36be06b1fa55b9d18 010000000000000000000000000000000000000000000000000000206053b7e1 **
00000000004d0c8af1e64a02cbe2515dbed58305db33d0fe607ff8d65e59fb4d 2600000000000000000000000000000000000000000000000000002059016305
0000000000d607ab339cd53605e3daed98ab12b56454a9c390be43b776e2bbd8 4700000000000000000000000000000000000000000000000000002192d3ae07 **
0000000000ba690b40254396533f88548f47e370aba84161d0a6acd3ae7d98d5 0f000000000000000000000000000000000000000000000000000022802481ec *
00000000005e014bd8b52e557973bad624de8338f64fdb4966c90c2c6c30f072 4400000000000000000000000000000000000000000000000000002305df5f3b *
00000000006dd652e5f2dbf67105fa9f4848a2802650923b8dd8fec131d2c1e5 2100000000000000000000000000000000000000000000000000002483eca1c2
0000000000eee298ef6f932424a042c527b319df421d913be6e724f6844f791f 08000000000000000000000000000000000000000000000000000023d5710442 *
000000000098db3e2daff3bddb91f1b25fecd1e3c1d7688969435002b8743874 420000000000000000000000000000000000000000000000000000259b17ecd4
000000000038a17c2c2b48aae4c3c42fcbd95c921f266173f092d6238f7467ea 2500000000000000000000000000000000000000000000000000002b10295811
0000000000f78db9d6dac133bf88b3fce552a3a7b5798c83d215035e07e4030e 21000000000000000000000000000000000000000000000000000030f69dc72f **
0000000000483f6501b75d009dbe425aa3851458c9f0c8ea577d4e1132e0f36b 2b00000000000000000000000000000000000000000000000000002da0cd8973 *
0000000000833c64a5fd1427db5b4bce13e3a458a3d292ef8be0ac990a043fb0 29000000000000000000000000000000000000000000000000000031b4ea599b
0000000000bac1d94f9a5e69f561a7d8ac473982853e86d5799347a6b7040eec 3b000000000000000000000000000000000000000000000000000031dc250688 **
0000000000b11f8f7eb05d351666635b17fa37a6374ea9a1d67b9b9f29f47de7 06000000000000000000000000000000000000000000000000000035fb9e34d5
000000000028c1271f0622c76e509a557a22e52984b1dbd43a8ff3b41a6be038 3300000000000000000000000000000000000000000000000000003cb2fd81f6 **
0000000000c3b83a49bff16735966b68db9fb807ee16bc578493e649a71b7ea2 3000000000000000000000000000000000000000000000000000003dda8a0178 *
00000000005aad53d073eb42cd5561c51c25556890430f8211fb5972582cc2af 0f00000000000000000000000000000000000000000000000000003e073c0aa4
0000000000fef7b9f0625f3b0276e7117297014b5a6b6737a6b734c6b32299e8 43000000000000000000000000000000000000000000000000000045b8c64bce
0000000000ba5e3cf798dca0106b04cbff25454bcb17b7ffbad40835ee80416b 3d0000000000000000000000000000000000000000000000000000417926772b **
000000000030a634abf8c070efe2849bf43215a03fda87bc8e599f6a44c041f5 4300000000000000000000000000000000000000000000000000004e6c029d43
00000000004fc29e693ec13174cd39d04df405a9fcca7aa751a3064b16393d9d 2600000000000000000000000000000000000000000000000000004e9e2d59af *
00000000008eeb95a7921daf9a41c44e42c55e5982af59cb144180869aa33907 4e00000000000000000000000000000000000000000000000000004a46aa2b34 *
0000000000e12a2ca86763caacd41da5543495ef3a9881bc181dbd19a1789eb3 0400000000000000000000000000000000000000000000000000004b27f4845d *
000000000034fa8aaff56d58e627686500ce964c65bf2075de1f2e0a16a8d27e 0600000000000000000000000000000000000000000000000000004c6e1a1072 **
0000000000fe2c73cc34c728e4b708ec9285ae522d951e9e37456dde6e2362af 4900000000000000000000000000000000000000000000000000005507b31e91 **
00000000008a87569d8d490adbe8be0374801b08025689a0015a9fa8b00baa55 22000000000000000000000000000000000000000000000000000056cad544ce
0000000000f1915530ace1a1ef5e20e998454d508a7fa76817a09d42180adeb2 0500000000000000000000000000000000000000000000000000004eea8f5b2e **
0000000000d8638ee149f9bb8da1ce3c02c3c8db4ed04e7600bac3685f999f55 3c00000000000000000000000000000000000000000000000000004f22521c79 *
0000000000b5ca55257a99cc520c9035214d0e34fb458f40b86f42462c710625 2c00000000000000000000000000000000000000000000000000004fd2b2ac94 *
00000000001f535fb63eb670c4dc5d0dd40874be572442b7910e6b7ea4a3689b 03000000000000000000000000000000000000000000000000000058393eef1c
0000000000b6d78d481bf5ad67894636c5cad6f33af463b3e9b652101839deaa 2f000000000000000000000000000000000000000000000000000059187ad834 *
00000000005a6d135314ded19d69f458661c81a90e35af1b585b10cf81e7b1bf 0f00000000000000000000000000000000000000000000000000005e4fb22f07
0000000000542367426192dcce71b8a7ac92e477a29e99fc840317a211f79c60 0400000000000000000000000000000000000000000000000000005735a34760 *
00000000000d1c9cc3554547e4542e6d30a8eeaf2dc7e2182deff4a76c3c198b 49000000000000000000000000000000000000000000000000000061206d1637
0000000000691a54d41a653a459b55e0f0737615bfc27590ec33621b0fb1f734 2c0000000000000000000000000000000000000000000000000000581d4e7d1b
0000000000b67570c5e65ae0d835b7bcf50ca47c6a21a8a2a3e50b7e60acf6af 01000000000000000000000000000000000000000000000000000062daabe2b9 *
00000000008f8ef820dc55048ec0715215d80326bd6f1f8d71efcd572ab29a42 2b00000000000000000000000000000000000000000000000000005a7ffa68e5
0000000000411539289a4781aaf72a0456c936f009d1c0ab3d7f5b4317f4764e 2900000000000000000000000000000000000000000000000000005b2a787e2f *
00000000009d7b09b73cd3812d36308f0bf7804b75839c2729258057d0c8b9ec 0b00000000000000000000000000000000000000000000000000005c0a5334f0 **
0000000000aabb9b35a915f6c77bfd5170d985183e278182010a80b5b2683c4e 2300000000000000000000000000000000000000000000000000005f0563a0ed **
0000000000e5e766bec583623deb624ea842dd2a6f60efe181b7af3e5b7dfeb0 440000000000000000000000000000000000000000000000000000697801457e **
0000000000f58fb64342b9533078d1ec060a6a29c5a4cdf22c857a5b02cee950 0300000000000000000000000000000000000000000000000000006b64cb9050
0000000000d25e501ff4f3a4b5c4f0347890ab5fcda1b611c52556e191112030 4300000000000000000000000000000000000000000000000000006b7f6a8329 *
0000000000f875c007ba88691c8477b9dd01314787e35bd92e7a7c5a3442dd5b 2e000000000000000000000000000000000000000000000000000061c490d4cb
000000000038404839b0f3494e427561da52a2e10aec1ac1f541944014cece67 2500000000000000000000000000000000000000000000000000006c6ad7b2c6 **
0000000000c6e3b1cb698550687f04bb2f82b700051a0253e764354d623cd36a 45000000000000000000000000000000000000000000000000000065cd18e99e *
0000000000a1a98496830705c31c82068ffbe91f7a770fda95089aa0cc3f6131 44000000000000000000000000000000000000000000000000000070f6dcf30c **
0000000000731c7a6cd5b6a333fbe3912494a80027ce723786e344e9c2eb6cf3 4f00000000000000000000000000000000000000000000000000006746697a3a **
00000000000253580efde16e545eab16a2d7be688efc24a500b18e2bbce156f2 500000000000000000000000000000000000000000000000000000765c403c76 *
0000000000da58d85ba8a98e602c02123733ce84f561a5d5f8177e2d495179b5 4d00000000000000000000000000000000000000000000000000007803ee1e7d
000000000048385ae72fae801c416042100363d8611c02f84db58a446102c549 2100000000000000000000000000000000000000000000000000007a7fab6f0f **
0000000000c4a454b75451b80fb0daf9efb2f730016a569c0135671c3a8ea662 4400000000000000000000000000000000000000000000000000007c5512329a *
00000000009be1da57e2754f165ae552f7650c289c2e1b10340b88479f5e074d 2b0000000000000000000000000000000000000000000000000000715e7a06c7
000000000029c788db8614f2c9f8c70b8c81d8b53ab875f94fbc858a74e2aff3 4700000000000000000000000000000000000000000000000000007d501ddb96
00000000008076195f44f6b2530a26a812dec1c55aad4ed89d5cad8f4cd66cb5 04000000000000000000000000000000000000000000000000000072b66b2c33 *
00000000002324fbf67e2c9b409555d5f81a1a9cf357ff13d5dc6fb511b7b3c5 2d000000000000000000000000000000000000000000000000000072eed6e554
00000000007a5e928750d176684dcb02202551424bd57d13f3b2a4a4a4956c1d 2100000000000000000000000000000000000000000000000000007f913a342b *
000000000090acd365c1c11dc24bea76fa08e6491b7a55e09f10282d0ada4718 310000000000000000000000000000000000000000000000000000820bc69995 *
000000000031fa63e3a177772f6f76e89df5a56950d06b51299be11e78293762 0d000000000000000000000000000000000000000000000000000081b0853f24 **
00000000002d30483dca9336707222d46108bec30e1554a6637199cdf6b50596 0d0000000000000000000000000000000000000000000000000000830449eaa2 *
00000000007ccea2cf2527c0baf148ce9b60798ed51e048a2475b70b7d714ab5 33000000000000000000000000000000000000000000000000000086ba56b214 *
000000000017d8ca47fdf6d84ffdf1c23cce89cafb23d6147e47e5a696529311 4a000000000000000000000000000000000000000000000000000087a063a3a1
0000000000ddbadde727101e7492adf72efb023ffc994350c713a69802985345 4f00000000000000000000000000000000000000000000000000007c12c9d6b3 **
0000000000e2613d7a3dd37d3ab1a815292bc223be8e687f6d8f01f754893214 2f00000000000000000000000000000000000000000000000000008bf4560dae
00000000005359833eb0fea79476bd0da7780923d73f461f0055fc741056a4b4 0f00000000000000000000000000000000000000000000000000008ec44724c9 **
0000000000d4eba0b7121349d12296f6ddd395b8914e4edb6c1f8b2dda2c0798 4b00000000000000000000000000000000000000000000000000008fa05aa0e7
000000000030b6fc85b2d25ee0be4c846a92b1fa6ff756b08a5e31bcf7f06dec 0e00000000000000000000000000000000000000000000000000008fe8f66ffb
00000000002a2e84da8c225da3a9d2a8a834a2f19c65abb3b9e434de6940e16f 34000000000000000000000000000000000000000000000000000090397cebd5
00000000004c52b3b730eba8a698da108eb4441c4714e8e32a1454e51d8ba993 220000000000000000000000000000000000000000000000000000911b844bf7 **
0000000000e59f8a0a1a4fd30bd6de4e763f91b54068fc82b703750a73a020e8 4400000000000000000000000000000000000000000000000000009235f29813 **
0000000000cf5cc10c465fca5265d33220517fde05263e6bbd552662ee61b63b 43000000000000000000000000000000000000000000000000000093ebe05e84
00000000000207fd60bf7dbca3668484c5d053f44d2c8aadd153083bffdd3f89 33000000000000000000000000000000000000000000000000000094d0503fd8 *
00000000007a985a0552010b70f94f92c277dc829c906ee227140e2adc4fc23d 4700000000000000000000000000000000000000000000000000009642517f25 **
000000000066c692da677bb343380010bcc124979b105c3aefa8d61ae396d7ec 3c000000000000000000000000000000000000000000000000000088f556a035
0000000000e7ac2331180800284e5845ddcf86269ad11703575c040034da66d2 0300000000000000000000000000000000000000000000000000009772222066 **
0000000000112e611dfef0b3337d76c72678d9bdd278746576f433737c1119ed 2000000000000000000000000000000000000000000000000000009a8c9a00d5 **
00000000006c8b085094fb4e24e6de5ec3077645474429b8a86945806172600f 5000000000000000000000000000000000000000000000000000009bd0b9b743
0000000000039135669de01b5b71c7b1b4c95f73bc7cc51e31edee7652684693 2800000000000000000000000000000000000000000000000000008f618b083a *
000000000039408d8b1e157086cb54541e67379245b04b79825ba9ce9d78fc84 0d00000000000000000000000000000000000000000000000000009d0a17aff4 *
00000000006f7c43be15a16cd70799c9b5d8dc65d0ccc1ee4459dcee5af8d306 4d00000000000000000000000000000000000000000000000000009ec63479c0 *
00000000000f6d6e4830d80db23e334ca39d2e04147def72c708357e438888ed 3400000000000000000000000000000000000000000000000000009ed94586d5 *
0000000000c98b36474cb55e62061cfb08bfd4ce3a69b5ca9c7f08588b6f76f6 330000000000000000000000000000000000000000000000000000a3aac478a3 *
0000000000627289388cc776ce9a756172becec7f003d2add6d04349523da871 4a0000000000000000000000000000000000000000000000000000a407ab0e21 *
0000000000adaa5aba99cee89ab3dea36df0ff857569a364606a74e5531c2dde 3b000000000000000000000000000000000000000000000000000096074b6fea
0000000000588f27926ae621e31abf67ab42441a1e700a09cc920fd741ae0f4a 220000000000000000000000000000000000000000000000000000a5f2db612f **
0000000000dc1056e8966e266feee9bd7fa7f12195d6a5827744130caf2be165 4a0000000000000000000000000000000000000000000000000000a6e5e544c6 **
0000000000169624fd93b346d9ac1a8a96153d4e148ad5f9018bcb698ac32cb4 4e000000000000000000000000000000000000000000000000000098d3fe967f **
000000000026579cd3cafe37b1377dbee59285b2d422e0fe6219534f08175318 270000000000000000000000000000000000000000000000000000a971ef2767 *
0000000000bfab61136dd4460e11a1ffa3b17fa9421485dccb6930a433fabdd0 2a00000000000000000000000000000000000000000000000000009b5af6e011
000000000075372605aa10b8771bddd17464539100ba9f47c32bf6ac3099d840 260000000000000000000000000000000000000000000000000000ac14a68606
0000000000ac364c92cbe22a8ff92fc0642e01cc659001194310bfcfc66e38bd 440000000000000000000000000000000000000000000000000000acfdbfd97d
00000000005fae112ce4da7dbfa36aea6324b4d815e077c53c2dfde10d050218 2f0000000000000000000000000000000000000000000000000000ad6b56e5f7 **
00000000008321a1d2320c4ecebd698d2108947a18e730f27834d75d4d019bb9 030000000000000000000000000000000000000000000000000000aef9b3cbf4
0000000000c7e9a68c1311d1f5b1e951da610cdb7f80e8cdf155777e8e9ceacf 0a00000000000000000000000000000000000000000000000000009f05e15040 *
00000000006317687ee6b576aedc218ac50292c45fac9820343d1ae8a1822ffe 0c00000000000000000000000000000000000000000000000000009fb91aaa95 *
0000000000452c2cc77cf66afb4f42740e8f630d0b1e2981e61eb8296a0e7ac8 260000000000000000000000000000000000000000000000000000b073179dfc **
00000000002dd16b14908b8c1ba6da36ecc3b2e9469056cf5ea42b7987e79136 490000000000000000000000000000000000000000000000000000b0c0e4466b
0000000000fa05621b01c9f30bba03606d46baee37dd437ba10fab8bf526bebc 2b0000000000000000000000000000000000000000000000000000a0c7c3b794 *
0000000000223426109e52acaa063c438e5ccce76922c6f4b9352633e1a6bb77 410000000000000000000000000000000000000000000000000000b1dc215d63
000000000021bcb0a92153e443c18afa3fcc73e8c8bf9f26b54f77b24177116f 270000000000000000000000000000000000000000000000000000b348affb47
0000000000337663bacac49e6ed1a431432c4c662b4047eab600a4a4e3332bed 3d0000000000000000000000000000000000000000000000000000a36c50588d *
00000000001b397027145fb70ae3bb9d2849716d050806112f026c30a044278c 3b0000000000000000000000000000000000000000000000000000a5334cdcbf *
0000000000d628316a177fd9a79704dc823548a4fc4e7e84b60a30a9a35c8a4d 020000000000000000000000000000000000000000000000000000b714c45726 **
000000000031f3e0bad056f386d03e5d7886c32a2a47df7e8f3217e9fc83e6f2 4c0000000000000000000000000000000000000000000000000000a878a87de5
000000000098362b7600b230158a1d525dc5a8fee96ccbbf92ba2d074d0db510 390000000000000000000000000000000000000000000000000000a9fe4d0a17 **
0000000000d8ccf602e3af80b9954861c7e45c9c89b499ee4af5bef1be80db64 430000000000000000000000000000000000000000000000000000bb61a856f3
0000000000fee30227eabdcdb52b95c29d5cc65b23fffd0c3c938462211e9fc4 0c0000000000000000000000000000000000000000000000000000aa95799d6d **
00000000005500e528180e0f73791b72902c86f738a94d926b3c1d4141c29df2 2d0000000000000000000000000000000000000000000000000000aaf227f829 *
0000000000c4eb35f18e40c5165a79e774acc7aca1cbee807f8e8261867b4b4c 270000000000000000000000000000000000000000000000000000be0795d1e7 *
000000000056a879256aec5d8d6b93d31c136b087435dc42a3751e6690bfb2fa 010000000000000000000000000000000000000000000000000000bed691b491 *
000000000072f5b4177f22f5e626fd63deeaf017966508e0b636fc7fc41d431e 2b0000000000000000000000000000000000000000000000000000aec4c14f3a
00000000009536e5f4bd9d45e0b3b3a83026926d949306b900611ee66dc31ea9 230000000000000000000000000000000000000000000000000000b083ac428d *
0000000000a94bcd761a48e8680e4813851534ea107c9f98903932f1e42a6c51 4f0000000000000000000000000000000000000000000000000000af22924a9b
00000000001abeda8db6a1dbe86b406e5c8fccada7f8def3ead2e3c94e7cf96c 050000000000000000000000000000000000000000000000000000b011bc6424
0000000000c08c7bc3d0652958b0e3b97f11ffa45c721a0c950d38931df477b9 3b0000000000000000000000000000000000000000000000000000b0e3acd01c *
000000000074d7fb5967621d123ff71a5b4ad68e88c73631d4c2dfa31426a328 4f0000000000000000000000000000000000000000000000000000b5ac2f001f **
00000000006ca7c7b5621997a3b6ce0a3d66fc7628c522568fb6573504a849f9 4f0000000000000000000000000000000000000000000000000000b7045a8bca *
0000000000610b670ee3b913a18601789ce3a57c0426bc2d70c5cac09889ff1f 060000000000000000000000000000000000000000000000000000b7bb58a8cb *
0000000000f8bae0431e5c5b0283b27b1356e2207c9120c1b2bbfaf9dfaf070f 3b0000000000000000000000000000000000000000000000000000b7ff5a755c **
0000000000235e55ec3eefdebcf11a413ef9be888ff1ba88c24e59da6feca9d0 280000000000000000000000000000000000000000000000000000ba37b4884f
00000000009dfca60babadf0feb0947dd82d7f46a7f0509760663e77130282c9 4f0000000000000000000000000000000000000000000000000000ba1c0b4195 *
0000000000b0c422feb134aedf781fa05c5fafa4c2babef090ef6f7a3291d7f6 2d0000000000000000000000000000000000000000000000000000bad45c7245
00000000007c0a55e740d6580d28ab871218bd9c01199cbe837b24fd16e7c3ae 360000000000000000000000000000000000000000000000000000bbce29a52f *
00000000003c9e4171901fca29a31b9d17739b91a062afe56d8ba2e013810a18 3c0000000000000000000000000000000000000000000000000000bfcf2ed927
0000000000aec5c5b398580b24a1b6afd2a10859e1f36cdf2ac6e93343570eef 040000000000000000000000000000000000000000000000000000c0c4b1a54a *

The lowest X-coordinate I have found is:

000000000000aeea7a7a5c04504f6e4e45452940431c9a264011686f3b746f92

and its private key is:

2000000000000000000000000000000000000000000000000000013a80306e86
425  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 24, 2020, 01:45:21 PM
I have currently engaged a total power of 460000Mkeys/s.
#110 I have at the moment [DP Count 2^26.87 / 2^27.55]

The Pollard's kangaroo ECDLP solver needs on average about 2*(2^(109/2)) = 2^55.5 steps to retrieve this private key, with a total power of 460000Mkeys/s =  2^38.8 steps/sec it would take 2^16.7 seconds, about 30 hours.

With the same power, for the key #115 (114 bit) it would take 2^19.2 seconds,  about 170 hours (7 days).
426  Local / Italiano (Italian) / Re: BITCOIN PUMP! on: May 22, 2020, 05:49:14 PM
Anche Bitstamp ha un nodo LN:

https://www.bitstamp.net/lightning-network-node/?utm_source=Twitter&utm_medium=post&utm_campaign=lightningnetwork
427  Bitcoin / Development & Technical Discussion / Re: How does "recid" variable work in libspec256k1 library? on: May 19, 2020, 07:06:14 PM
https://bitcoin.stackexchange.com/questions/38351/ecdsa-v-r-s-what-is-v


Quote
The (r, s) is the normal output of an ECDSA signature, where r is computed as the X coordinate of a point R, modulo the curve order n.

In Bitcoin, for message signatures, we use a trick called public key recovery. The fact is that if you have the full R point (not just its X coordinate) and s, and a message, you can compute for which public key this would be a valid signature. What this allows is to 'verify' a message with an address, without needing to know the full key (we just do public key recovery on the signature, and then hash the recovered key and compare it with the address).

However, this means we need the full R coordinates. There can be up to 4 different points with a given "X coordinate modulo n". (2 because each X coordinate has two possible Y coordinates, and 2 because r+n may still be a valid X coordinate). That number between 0 and 3 we call the recovery id, or recid. Therefore, we return an extra byte, which also functions as a header byte, by using 27+recid (for uncompressed recovered pubkeys) or 31+recid (for compressed recovered pubkeys).

Strictly speaking the recid is not necessary, as we can just cycle through all the possible coordinate pairs and check if any of them match the signature. The recid just speeds up this verification.

@PeterWuille There can be up to 4 different points with a given "X coordinate modulo n". (2 because each X coordinate has two possible Y coordinates, and 2 because r+n may still be a valid X coordinate). I understand the former (2 y values for each x, because of the symmetry)... But how does the latter work? ie r+n may still be a valid X coordinate??

X and Y coordinates are numbers modulo p, the field size, which is around 2^256 - 2^32 for secp256k1. The value r and s in the signature however are modulo n, the group order, which is around 2^256 - 2^128. When R.x is between n and p, r is reduced to R.x-n. Thus, if you have an r value below 2^128-2^32, there may be 2 valid R.x values corresponding to it. – Pieter Wuille

27 = lower X even Y. 28 = lower X odd Y. 29 = higher X even Y. 30 = higher X odd Y. Note that 29 and 30 are exceedingly rarely, and will in practice only ever be seen in specifically generated examples. There are only two possible X values if r is between 1 and (p mod n), which has a chance of about 0.000000000000000000000000000000000000373 % to happen randomly.

428  Bitcoin / Armory / Re: Armory 0.96.5 on: May 17, 2020, 06:21:16 PM
Python isn't exactly a library, though it the interpreter can be loaded as one, but I digress. Yes, it's possible to freeze Armory on linux. But considering the cost to do so, you're better off running an older version (in a VM), or installing py2 on you Ubuntu 20 system.

The installation of python2 is very simple: sudo apt-get install python2, but Pyqt4 is not available as package for 20.04. VM is the last resort.


There will be a release sometimes this summer with a bunch of new stuff and a port to py3/qt5 which will fix a lot of compatibility stuff with modern OS.

Very good news!!
429  Bitcoin / Armory / Re: Armory 0.96.5 on: May 16, 2020, 12:28:08 PM
Ubuntu 20.04 has issues installing.

Missing dependencies python-qt4, python-twisted, python-psutil

Ubuntu 20 got rid of py2 I believe.

Quote
computer science solved this problem 40-50 years ago: the static binary (bitcoin itself is a static binary, all needed libraries by bitcoind/bitcoin-qt are packaged into the executable file)

To be fair, the only stuff Armory doesn't link to statically beside the C lib is Qt.

Is it possible to have a release of Armory (executable file) that works on ubuntu 20.04?

With all needed libraries statically linked?
430  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 11, 2020, 08:13:56 PM
So, the cost for 128 devices will be 128/8 * 620 = 9.9 kUSD per week.. Current prize value of #110 is 1.1x8.8kUSD = 9.7 kUSD, so the prize is more o less the same like the investments need to find it. But there is no 100% guarantee to solve the key, it is only 50%.

To be precise, the current prize is 1.1 BTC + 1.1 BCH + 1.1 BSV = 1.1 * (9300 USD) = 10230 USD


Multiple search is possible but I won't work on it first.
I will work on a distributed client/server version.
The #110 will be likely solved soon.
With the distributed version, I'm almost sure the #115 will also be solved.

In that case it would be a record, 114 bit.

******************************************************************************

I rewrite my idea with more details:

we need 2.sqrt(N) steps to get a collision in a N-space,

we need 2.sqrt(2N) = sqrt(2).2.sqrt(N) steps to get a collision in a 2N-space


if we find a way to generate sqrt(2).2.sqrt(N) points faster than 2.sqrt(N), we get a collision in less time, even if we double our searching space.

If we use the endomorphism, we can double our interval, from

[1,2,3, ..., n-1,n]

to

[1,2,3,....., n-1,n] + [lambda, 2*lambda, 3*lambda, ....., n*lambda]

We have 2 types of jumps (always positive): 16 small steps (in first interval) + 16 big steps (in second interval)


For example:
(1G, 2G, 4G, 8G, 24G, 37G,....., 512G)  + (lambda*18G, lambda*72G, ..., lambda*816G)

+ 1 jump from range1 to range2  or  from range1 to range2:     P -> lambda*P  or lambda*P -> lambda^2*(lambda*P)

You have to know at each step in which interval the kangaroo is.

We set the probability to perform a jump between 2 different ranges = 50%, the other 50% is for normal jumps.


When a kangaroo is in the point P(x,y):

if x-coordinate > 2^255 then:
 change interval
else:
 do a normal jumps (x-coordinate % 16, small or big steps depends on the interval in which P is)


If  x-coordinate > 2^255 then:
 you compute a single multiplication:   beta*x (or beta^2*x, it depends on the interval in which P is)
else:
  you compute the normal jump P+k*G (or P+s*lambda*G, it depends on the interval in which P is)

 (3 multiplications for the inverse + 1M + 1S for the x-coordinate + 1M for the y-coordinate = about 6M + some additions)


You cannot have loops, you have only to avoid 2 consecutive jumps between 2 ranges like: P -> lambda*P -> lambda^2*(lambda*P) = P, in this case you do a normal step P+kG instead of computing lambda*P:

P -> lambda*P -> lambda^2*(lambda*P) = P  instead of doing lambda^2*(lambda*P) you do P+k*G  (this jump depends on the x-coordinate of P; note you don't have to compute lambda^2*(lambda*P), you mantain in the memory the last point P)

if another kangaroo falls in the same (lambda*P) from another point you will have a collision:

Q -> Q + lambda*7*G = lambda*P -> lambda^2*(lambda*P) = P -> lambda*P  instead of doing again lambda*P, you do P+k*G as before


If we look at a couple of consecutive jumps, we will have:

                                            probability
normal jump + normal jump = (1/2)^2
normal jump + lambda jump = (1/2)^2
lambda jump + normal jump =  (1/2)^2
lambda jump + lambda jump= (1/2)^2 but -> loop, it is forbidden
-> it becomes: lambda jump  + lambda jump + normal jump


On average for each 2 points we need to perform (1/2)^2*12M + (1/2)^2*2*7M + (1/2)^2*7M = 8.25M,    4,125 M for each point.


If you double the interval:

[1,2,3,....., n-1,n] + [lambda, 2*lambda, 3*lambda, ....., n*lambda]

then you perform sqrt(2).2.sqrt(N) steps in the same time you are performing now sqrt(2).2.(4,125/6).sqrt(N)= 1.945*sqrt(N)


But

we have a collision not only when 2 kangaroos (a wild and a tame) meet in a single range (first o second); even when they fall in 2 points P and lambda*P (with the same y-coordinate), there is a 75% that they will continue on the same path:
                                
P -> lambda*P -> P    there is a collision (same path)
P -> lambda*P -> lambda*P + lambda*7*G  there is a collision (same path)
P -> P+12*G        and  lambda*P -> P     there is a collision (same path)
P -> P+12*G   and  lambda*P ->   lambda*P + lambda*7*G  there is no collision
 there is no a collision, one kangaroo jumps from P to P+12*G and the other one jumps from  lambda*P to lambda*P + lambda*7*G

In a N-space, we need 2 lists of sqrt(N) points to form sqrt(N)*sqrt(N) = N couples. N couples over N^2 possible couples, on average we should generate N couples to get one with the same elements (a collision)

In our 2N-space we have 2N couples with the same 2 points + 2N couples with 2 related points (P,lambda*P). On average 3/4 of (P,lambda*P) will produce (if xP > 2^255 or if x(lambda*P)>2^255) a collision,
then we have (2N + 3/4*2N) couples of collisions over (2N*2N) possible couple.
The probability to find a collision for each couple is:

   (7/4 * 2N) / (4N^2) = 14/16 * 1/N = 7/8 * 1/N  instead of 1/2N, this means 7/4 bigger.

We need than 8N/7 couples to have a collision, 2 lists of sqrt(8N/7) points -> 2,14.sqrt(N)  'cheap' points ->
2,14.(4,125/6).sqrt(N) = 1,47.sqrt(N) normal points
431  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 10, 2020, 07:17:15 PM
I've got another idea, but it is not (much) faster:

we need 2.sqrt(N) steps to get a collision in a N-space,

we need 2.sqrt(2N) = sqrt(2).2.sqrt(N) steps to get a collision in a 2N-space,

we need 2.sqrt(3N) = sqrt(3).2.sqrt(N) steps to get a collision in a 3N-space.

If we find a way to generate sqrt(3).2.sqrt(N) points faster than 2.sqrt(N), we get a collision in less time, even if we triple our searching space.

If we use the endomorphism, we can triple our interval, from

[1,2,3, ..., n-1,n]

to

[1,2,3,....., n-1,n] + [lambda, 2*lambda, 3*lambda, ....., n*lambda] + [lambda^2, 2*lambda^2, 3*lambda^2, ....., n*lambda^2]

We have 3 types of jumps (always positive): 10 small steps (in first interval) + 10 big steps (in second interval) + 10 bigbig steps (in third interval)

For example:
(1G, 2G, 4G, 8G, 24G, 37G,....., 512G)  + (lambda*18G, lambda*72G, ..., lambda*816G) + (lambda^2*41G, lambda^2*10G, ..., lambda^2*653G)

+ 1 jump from range1 to range2  or  from range1 to range2:     P -> lambda*P


We set the probability to perform a jump between 2 different ranges = 50%, the other 50% is for normal jupms.

For a single step we compute the normal jump +k*G

(3 multiplications for the inverse + 1M + 1S for the x-coordinate + 1M for the y-coordinate = about 6M + some additions)

or a single multiplication:   beta*x

You cannot have loops, you have only avoid 3 consecutive steps like: P -> lambda*P -> lambda*(lambda*P) -> lambda*(lambda^2*P = P), in this case you do a normal step P+kG instead of lambda*P.

If we look at a triple of consecutive jumps, we will have:

                                                                           probability
normal jump + normal jump + normal jump = (1/2)^3
normal jump + normal jump + lambda jump = (1/2)^3 * 3
normal jump + lambda jump + lambda jump =  (1/2)^3 * 3

lambda jump + lambda jump + lambda jump= (1/2)^3 but -> loop, it is forbidden
-> it becomes: lambda jump + lambda jump + lambda jump + normal jump

On average for each 3 points we need to perform (1/2)^3*18M + (1/2)^3*3*13M + (1/2)^3*3*8M + (1/2)^3*8M = 11.125M,    3.71M for each point.

In this way you perform sqrt(3).2.sqrt(N) steps in the same time you are performing now sqrt(3).2.(3,71/6).sqrt(N)= 2.14*sqrt(N)


If you double the interval:

[1,2,3,....., n-1,n] + [lambda, 2*lambda, 3*lambda, ....., n*lambda]

you perform sqrt(2).2.sqrt(N) steps in the same time you are performing now sqrt(2).2.(4,125/6).sqrt(N)= 1.945*sqrt(N)


432  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 10, 2020, 02:30:25 PM
Thanks for the info Wink

I didn't look at all addresses, the #110 is the only one remaining with the pub key exposed ?


#115, #120, #125, #130 ...., #160 are left
433  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 10, 2020, 09:16:46 AM
The current record for a ECDLP solved on a curve over a prime field is 114-bit:

https://ellipticnews.wordpress.com/2018/04/22/114-bit-ecdlp-solved-on-a-curve-with-automorphisms-over-a-prime-field/

Quote
The curve has j-invariant 0, and so has an automorphism group of size 6. Hence, it is possible to perform the Pollard rho algorithm using equivalence classes of size 6.

They used n = 1024 partitions for the random walk, and the “hash function” was chosen to be the least significant log_2(n) bits of the x-coordinate of the current curve point.

The paper writes that “The parallel implementation of the rho method by adopting a client-server model, using 2000 CPU cores took about 6 months”. They seem to have been lucky to get a collision earlier than expected: “the result of the authors attack is little bit better than the average number of rational points where a simple collision attack stops.”



For the secp256k1, the current record is a ECDLP solved in a interval of 104 bit (key #105 of the "puzzle transaction")

https://www.blockchain.com/btc/tx/08389f34c98c606322740c0be6a7125d9860bb8d5cb182c02f98461e5fa6cd15

that key was found on 2019-09-23.


This is the next public key (#110, with a private key in range [ 2^109 , 2^110 - 1], 109 bit) they have been looking for over 7,5 months (about 225 days):
 
0309976ba5570966bf889196b7fdf5a0f9a1e9ab340556ec29f8bb60599616167d

(address: 12JzYkkN76xkwvcPT6AWKZtGX6w2LAgsJg)

The Pollard's kangaroo ECDLP solver needs 2*(2^(109/2)) = 2^55.5 steps to retrieve this private key, a GPU that computes 2^30 steps/sec would take 2^25.5 seconds, about 550 days.



A good article / recap about ECDLP:

https://ellipticnews.wordpress.com/2016/04/07/ecdlp-in-less-than-square-root-time/

434  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: May 09, 2020, 04:21:13 PM
0x64     -     CC C0 83 23 FA CC 7D 51    Cool



It is a joke. It is not the key 64.



Private key : 000000000000000000000000000000000000000000000000ccc08323facc7d51
Public key  : 9b89e4472155b856c6d3f1907df38dc5d1a174eff43f9fddfc0e9d69ee915ca0 35891d2316ac33777ff5e855731c1a759a068c214e5d68e1fa96b8a0f59bbce8


PrKey WIF c.: KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qZ2jmYDi8fbPYBXgRnsX
Address c.  : 3ee41340bd651edeba9f7f24be99607f36e38652
Address c.  : 16jY7qXWg98MChdopNJ6fLgBkA5Mfi8X7T

but this is the address #64: 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN

https://www.blockchain.com/btc/address/16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN
435  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 07, 2020, 06:44:03 PM
For the range [a,b] if we have pre-calculated (b-a)^(1/3) distinguished points, we would need only (b-a)^(1/3) group operations in order to find the collision. But precomputation requires (b-a)^(2/3) group operations (performed once as a preliminary stage).

If you can store (b-a)^2/3 distinguished points,
the best things to do is to generate 1*G, 2*G, 3*G, ...., (b-a)^2/3 * G.
-snip-

That method requires (b-a)^2/3 group operations to find (b-a)^1/3 distinguished points. So, only cube root from the length should be stored, but not square root compared to baby step giant step.

Then it is much better.

With 90-bit space, you need to perform 2^60 operations to get 2^30 DP and then only 2^30 operations to retrieve each key.

But if you need to find only 2^10 private keys, it is faster to run 2^10 times the program -> 2^10*2^46 = 2^56 operations.
436  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 07, 2020, 03:07:49 PM
I committed the mods. Linux user can try them. (Edit: or Windows user who compile,
I updated project files)

./kangaroo -w save.work -wi 10 in.txt (Save work file every 10 sec)
./kangaroo -w save2.work -wi 10 in.txt (Save work file every 10 sec)

Merge 2 files:

Code:
pons@linpons:~/Kangaroo$ ./kangaroo -wm save.work save2.work save3.work
Kangaroo v1.4notready
Loading: save.work
MergeWork: [HashTalbe1 2.3/5.7MB] [00s]
Loading: save2.work
MergeWork: [HashTalbe2 2.3/5.7MB] [00s]
Merging...
Range width: 2^56

SaveWork: save3.work...............done [2.5 MB] [00s] Thu May  7 16:38:03 2020
Dead kangaroo: 0
Total f1+f2: count 2^29.03 [30s]

During the merge the key can also be solved, you can share your work files !

You save the jumps too or only the DP? I mean the array of NB_JUMPS jumps.
437  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 07, 2020, 03:04:08 PM
For the range [a,b] if we have pre-calculated (b-a)^(1/3) distinguished points, we would need only (b-a)^(1/3) group operations in order to find the collision. But precomputation requires (b-a)^(2/3) group operations (performed once as a preliminary stage).

If you can store (b-a)^2/3 distinguished points,
the best things to do is to generate 1*G, 2*G, 3*G, ...., (b-a)^2/3 * G.
In this way you can use the BSGS algorithm, that is faster than kangaroo (less steps - on average 2^(N/2) - and each step is faster because the points are consecutive)

For each public key P, if you try with these (b-a)^1/3 giant steps:

P-1*(b-a)^2/3*G, P-2*(b-a)^2/3*G, P-3*(b-a)^2/3*G, ..., P -(b-a)^1/3*(b-a)^2/3*G =  P - (b-a)*G you will recover for sure the private key (on average in 0.5*(b-a)^(1/3) steps).

You have divided the interval into (b-a)^1/3 sub-intervals each with length = (b-a)^2/3

In case you have to find a key in a 45-bit space, you can shift the interval in [-(b-a)/2, (b-a)/2] and use only half baby steps (1*G, ..., 2^29*G) instead of 2^30 steps. And you need on average 2^14 steps to recover the key. Then in a space of 2^n points you need only 2^((n/3)-1) steps (if you have precomputed 2^((2*n/3)-1) points)

In case you have to find a key in a 90-bit space and you have only 2^29 precomputed points, you need no more than 2^60 giant steps (2^60 sub-intervals to search through) to find a key, on average 2^59 giant steps. Then much better kangaroo.


In any case for large space (like 90 bits), (b-a)^(2/3) means 2^60, too much.

If you want to find many public keys in 69 bits, you need to store 2^46 points, too much.

If you want to find many public keys in 2^45 bits, you need to store 2^30 points, ok, you have enough space to store them.  But finding public keys in 2^23 steps or in 2^15 is similar, it takes less than 1 sec for each key. Unless you need to find millions of public keys, there is no difference.
438  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 07, 2020, 11:52:12 AM
Thanks for the reading Wink

Yes this is a good idea to do symmetry class switch after a certain distance in order to limit cycles but:

- We have only a small jump table size, so the probability of cycle is high and for large range, random walks are long.
  The distance to choose should be as lower as possible in order to not loose the benefit of symmetry (41% max).

- This trick does not prevent at all from cycle of length 2 so we have to keep the lastjump trick also.

The last jump and the symmetry class switch has an impact of ~10% on the perf (global memory access and extra operations)
To implement this, this is a supplementary global memory access, a supplementary branch, and a supplementary local array...

But, however interesting to test Wink

Did you read the article? I can't, did you pay for reading it?
439  Bitcoin / Development & Technical Discussion / Re: Pollard's kangaroo ECDLP solver on: May 06, 2020, 06:59:48 PM
This might be interesting:

https://www.researchgate.net/publication/339319953_Using_Equivalent_Class_to_Solve_Interval_Discrete_Logarithm_Problem

https://link.springer.com/chapter/10.1007%2F978-3-030-41579-2_23

Quote
To accelerate solving IDLP, we first introduce the concept of jumping distance and expanding factor to decide whether to perform the class operation or not. When the value of the expanding factor is greater than a given value, the class operation will be performed, such that each decision on jumps is locally optimal. The improved method takes an average of (1+o(1))√N times of class operation, where N is the size of a given interval.
440  Local / Italiano (Italian) / Re: Hype plus e conio on: May 06, 2020, 05:03:09 PM
Tu mi puoi anche regalare dei soldi...se io non li voglio...non li prendo.....di certo non li dichiaro come regalo o cavolo si debbano dichiarare

Paradossalmente se hai un address pubblico e io ti invio lì del denaro anche contro la tua volontà, ti metto in una condizione difficile (per quanto ci siano cose peggiori nella vita rispetto a ricevere soldi).
Hai voglia poi a dimostrare che tu non li volevi, ecc...., di quella tx è rimasta ormai traccia indelebile, invece del motivo per cui è stata fatta (la contropartita della tx nel mondo fisico) non si sa nulla.


Mi limito però a un ragionamento terra-terra:
SE il possesso della chiave privata è ciò che ti consente di disporre di Btc (e disporne solo tu e con piena titolarità)
ALLORA seguendo lo stesso principio il possesso di quella stessa chiave è ciò che consente a te e solo a te di disporre del BCH collegato

Diciamo che il possesso della chiave ti consente di disporre dei bitcoin annessi all'indirizzo, ma non si può affermare/dimostrare di essere gli unici a poterne disporre: chiunque altro conosca/venga a conoscenza della chiave privata ne può disporre anch'esso.
Se io dicessi che un certo indirizzo lo condivido con la persona x, come si fa a verificare che la mia affermazione sia falsa? E' facile verificarla nel caso sia vera, altrimenti non si può.

I veri proprietari dei btc sono sempre e solo le chiavi private, non le persone che solo incidentalmente le hanno scelte/ne sono venuti a conoscenza e molte volte le dimenticano/perdono pure. E' una prospettiva molto diversa rispetto al conto bancario legato all'identità delle persone, dove le chiavi pubbliche e private vengono utilizzate solo come mezzo di identificazione appunto.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 ... 96 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!