Pages:
Author

Topic: Collection of 18.509 found and used Brainwallets - page 3. (Read 31129 times)

copper member
Activity: 1652
Merit: 1901
Amazon Prime Member #7
I'm pretty sure people still use them. Even better if they use something they use much heavier encryption (such as WarpWallet).
The idea of simply remembering your money is appealing to me (but I don't dare risk it for a large amount).
What I don't understand is why don't they use the hash function millions of times to make their brain wallet even more secure?
I'm pretty sure some people do that. And I'm pretty sure some others are searching for it too.

But isn't that what WarpWallet was created for? 524,288 times scrypt, followed by 65,536 times pbkdf2. A simple manual "brute-force" tells me that "satoshi" was used to deposit 0.0003 BTC in 2015. It wasn't moved out instantly (only after 7 blocks).
<>

The scope of realistic brain wallets is very small when compared to all potential private keys. Requiring an adversary to do a million times more work might sound like a lot, but compared to all potential private keys, it really is not.
If you're the only one who uses 1,276,816 rounds of hashing, the number of potential wallets that can be found is limited to only your wallets, versus many different wallets that all use only one round.
How is someone supposed to remember the exact number of hashing rounds? I think in both the WarpWallet and your proposed ~1.2 million rounds of hashing implementations, you will need to either document the rounds of hashing,  or rely on a third party to help calculate the private key, and I don't think this meets the definition of a brain wallet.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I'm pretty sure people still use them. Even better if they use something they use much heavier encryption (such as WarpWallet).
The idea of simply remembering your money is appealing to me (but I don't dare risk it for a large amount).
What I don't understand is why don't they use the hash function millions of times to make their brain wallet even more secure?
I'm pretty sure some people do that. And I'm pretty sure some others are searching for it too.

But isn't that what WarpWallet was created for? 524,288 times scrypt, followed by 65,536 times pbkdf2. A simple manual "brute-force" tells me that "satoshi" was used to deposit 0.0003 BTC in 2015. It wasn't moved out instantly (only after 7 blocks).
If you use a decent password, and your email as salt, it's much more secure than regular brainwallets. My own (very inaccurate) estimate: a million times more secure because of the heavy encryption, and another factor one million because of the email address that makes it impossible to brute-force everyone's wallet at once.

Honestly speaking, I have asked Loyce to prepare list of tx ids and launched search on that. The result is surprising! (I mean it is surprising how many wallets were using that method). Each of that values generates address which was used in the past.
The first one I checked lost 7.72 BTC in 2014 (back then valued at almost $3k).

The scope of realistic brain wallets is very small when compared to all potential private keys. Requiring an adversary to do a million times more work might sound like a lot, but compared to all potential private keys, it really is not.
If you're the only one who uses 1,276,816 rounds of hashing, the number of potential wallets that can be found is limited to only your wallets, versus many different wallets that all use only one round.
legendary
Activity: 3472
Merit: 10611
It's outdated currently that we have standards such as BIP39, but it might wasn't a bad idea to create a secure brainwallet if the other choice was to keep a wallet.dat secure.
These two are not comparable though and BIP39 wasn't a replacement. That's because the brainwallet is a "human memorizable string" while BIP39 is a "human readable string", or in other words you are not supposed to memorize your mnemonic but you are supposed to memorize your brainwallet.
legendary
Activity: 1876
Merit: 1058
Vave.com - Crypto Casino
Hi,

As been discussed many times before using a Brainwallet is a bad idea. I ran some test myself and found 18.509 BTC-addresses based on a brainwallet which also has been used in the blockchain before.

I tried to compare my results with the results of other researchers but could not find any lists online at all. I found some examples but not a comprehensive list. So I published my own results over here: https://eli5.eu/brainwallet

Please note: all published addresses have a balance of 0 so this is not a list for robbers Smiley. There are also a lot of extra datasets I haven't used this far so I expect the numbers to go up once I use them as well (I'm in the middle of perfecting my own tooling and blockchain parser so this will take some more time first).

I love to get some feedback and if you have results to share which I missed in this round I'm more than happy to hear from you and include them.

TA

ahahaha wow so whats the public address ?
copper member
Activity: 1652
Merit: 1901
Amazon Prime Member #7
Dont do this. Hashing a pass phrase will not result in additional entropy. If an adversary were to know that you hashed a brain wallet pass phrase, they could do the same to brain wallet candidate pass phrases they believe you are likely to use.
It does the same harm it does for an attacker to know that my password is 18 characters long. It lowers my security, but it's infeasible to break it if chosen properly. Same happens with more hashes; if an adversary knew that I'm hashing a million times, he'd need a million times his computational power to do the same work.
The scope of realistic brain wallets is very small when compared to all potential private keys. Requiring an adversary to do a million times more work might sound like a lot, but compared to all potential private keys, it really is not.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Dont do this. Hashing a pass phrase will not result in additional entropy. If an adversary were to know that you hashed a brain wallet pass phrase, they could do the same to brain wallet candidate pass phrases they believe you are likely to use.
It does the same harm it does for an attacker to know that my password is 18 characters long. It lowers my security, but it's infeasible to break it if chosen properly. Same happens with more hashes; if an adversary knew that I'm hashing a million times, he'd need a million times his computational power to do the same work.
copper member
Activity: 1652
Merit: 1901
Amazon Prime Member #7
I'm pretty sure people still use them. Even better if they use something they use much heavier encryption (such as WarpWallet).
The idea of simply remembering your money is appealing to me (but I don't dare risk it for a large amount).
What I don't understand is why don't they use the hash function millions of times to make their brain wallet even more secure? We all know that just hashing a subjectively difficult passphrase isn't as much secure as it is to generate an entropy randomly. There wouldn't be such thread if brain wallet users hashed more than once, because, apparently, some passphrases aren't as strong as they thought.
Dont do this. Hashing a pass phrase will not result in additional entropy. If an adversary were to know that you hashed a brain wallet pass phrase, they could do the same to brain wallet candidate pass phrases they believe you are likely to use.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
It has to do with the time consumption.
Sure, you don't want to wait for 10-15 minutes? Wait a few seconds to do a few thousands hashes. You can't seriously trade security for a few seconds.

And considering that brainwallets that I've seen are browser based they are even more limited to the amount of computing power they can use so the process could be even slower than it could be.
Browser-based wallets are generally 🚩🚩🚩

Some tried to replace SHA256 with stronger algorithms such as scrypt but such projects don't gain any popularity since the idea of brainwallet itself is flawed.
It's outdated currently that we have standards such as BIP39, but it might wasn't a bad idea to create a secure brainwallet if the other choice was to keep a wallet.dat secure.

We may imagine that you want to launch hash function 20220807 times - and even if you forget that number but you remember period of time when the wallet was created, there is still way to restore it.
If you remember the passphrase, there's no problem. Just hash the hash, until you find the proper hash.
hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
Seriously, how stupid is someone to use SHA256("")

More likely to be a programming error. I recall suggesting a few years ago in this thread that something like (pseudoish code) assert(key != 0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855) would have avoided this particular issue.

Maybe a few of them might have been some programming errors, but I doubt that for the majority of funding transactions for this private key. Many are probing or dusting, but why should there be such a lot of wacky programming?
About the half of the total transactions are funding, the other half is stealing the coins as of now, today. Ridiculous game...

Public addressNumber of Tx Private key type
1HZwkjkeaoZfTSaJxDw6aKkxp45agDiEzN
717
copper member
Activity: 76
Merit: 11
~ as "All of the information required to reconstruct the private key is published on the blockchain". But it was not as easy ;-)

Maybe also valid for Satoshi's mined blocks?

~
We can visualize with the blockchain data, how satoshi Mine his coins:

legendary
Activity: 952
Merit: 1385
What I don't understand is why don't they use the hash function millions of times to make their brain wallet even more secure? We all know that just hashing a subjectively difficult passphrase isn't as much secure as it is to generate an entropy randomly. There wouldn't be such thread if brain wallet users hashed more than once, because, apparently, some passphrases aren't as strong as they thought.

Because it is not kind of "standard". If at this moment you have an idea to create a new wallet using a given phrase, you have software to do it quickly. I am not aware of any program which would accept other parameters, like number of iterations.
We may imagine that you want to launch hash function 20220807 times - and even if you forget that number but you remember period of time when the wallet was created, there is still way to restore it.

Seriously, how stupid is someone to use SHA256("") or SHA256 of any publicly available data, block hashes included, as private key and believe this is in any way "smart"?

Honestly speaking, I have asked Loyce to prepare list of tx ids and launched search on that. The result is surprising! (I mean it is surprising how many wallets were using that method). Each of that values generates address which was used in the past.
Code:
305ba804e692949587a24ea94a48e1d800732589e9203a8bfc271b9bc0c50f7a
4c63c5d9d30db0fd211ebaebeb6d7bcc335c5a0244a7c59fc9df7801b4433509
62373043bc609add196b91426a54bf99bb96f306e7853b41845e0943902206fc
3119bc423c50b6da00047e76f4860a9eb7d9aabc0d5e06256cd0347825e0cb18
fa09f349487b69294f6b9a0f3f953d07ae99b0ececae7cca617f6aa46e505613
983a65341472c787f3a125f9d1f58ddbe06533f9042c3938095e8ea093d15ffa
4330d40c8fc1185cd614c7f7e8bccbe3fd1a1542ac076da7d03a6a0cfc14fcb5
2b5bc89856010733006aad8747f4954af26c3b2d2427c4ce526e5ef435fba1d0
a62a09ba9cae34859ff31efd15427633f1b1ee043dbf2dbd03cc73f94320e611
2ecd32b4a7eb2bee20c071ab6c7578c5e821f722595037ac1a60ee5caff60d9e
882fd03f3af3df994ede0131eb818fd57e91cf01b12b1c0fcfac7271067550fe
72def37c867d4841066f8f0e4fe63986d8b2e6c6b3ed2dd187dbb434c919def9
7cbdf77eb3f12a784c90a7783f0b3f84e3e828d66dd06d92594a05052b63e6ab
099057f824134129de11dfef261371d0108d1283f5b0d561097c95c0221ba0ec
0f46e1323cf1c32d29ae3d292fd8e1ab4e21a53e621cf95245337bdd0a52bae5
4196d328b10bad238f9a25246aaaa4e6c306ae7f31ab0e508502f39dc8b2d001
30b02b8f71d3ee0bfa26ea7283458758a0fff362135f1be5f22c9f32d0767b59
0d064df9159fc070de9b4f56f8670ebcd788ba56d8da06b3f0bf0204ec07411a
f1a0a7ccefc9e267f7bcedf884e489cd6a63ed0424c59cfcef189f40720a2edd
d89d3edf5ca1fc1af2c2cb21765dfec6ee842b33ee803db6c792fa8cdf830fad
b818a01dda4dfa70ef60670ab9f68a919856e45eeb2cf087a63c9a5d32067c75
bab55a1138e548e9dd6a8a01fcd3815a490c6fa582e446f59cfd32e82330bed9
9f2e7d7d6c1e7c7e574bcc6e0aa9ad7892a70b4bb03a05776e7f11b04d5ff343
6469ae78933e4da4f7700f93a2b414cfdc71cfcbc379964eb83adb2f570a94a2
7823ea0c60a4e5da7996b425527da9ced7ee6478b9b677fe3b004cfc21eacb66
59a37302f7012c2504b633e39cd5d286bd2f5c35327364cf4e95eb5f37657961
15d47c31f45ceac4ace19eed79a5d12566381161517a234c0967107ed0a8fa41
3f18e8e85fde3ec91a28b30ef17cbb713833447b24cc952828e0aa3501465b8e
00f8cd36954bcf69b5a6771c2b4ac15f1081c93feb676e78d628c5ee10d86dd5
ddae4ebc790a08cc63dcca4cb2c4e73674968c3f8a14df8d9a9966e88aff757f
e7409a15445142ade0076388519aefdb7a47faf6be104fabf8f8d22707f28564
54baa588f27d87629331eaa3c20f7aa6dfeadf80ce448287e51c89b887beb08a
2067a48eef1668c2c0228afdf621a93ebd034010b1f2663e4815b2b38388c5f0
14b203d048823bf68d9bcf8db47c6cd08daf2f9e032bd6a8c8b7f43c160d1309
bb9cd9d5d0e98014d83fc1f66398149602912a31fec45df5ebfe863e05ffa354
02a625e3e97dde0908db07685f2e1731696dc041fe354db9d32d04bc30e06b2f
54a89c0b2496e12f3c2d89ee131860b4ca3a1585e08b157e91e1f0b76a6a561d
154ef68fbe8809071b6a9dcb3122a303a29d5c9fcd9b3b9e3cfcfe6c77dad065
842abafc65a857bb07322bc28c5e1f2dba5f26b516ebd335520571fc538a1c49
ae685b8a27cf92ab55bac2b92fa89a0daa72a13c8e98bcdbfd38eef02f80b78b
f6de9b3dac2ab3daf7e9b33501e2913c29f21b73e75ffcd069ca88d3db2fb361
af838994c95310a566e9f521ac6259d59b1d54fe460e5ff4ca4498fa1011131f
1367606da02c03de512fce626c2aec8195b8df26e50ac8327f458f116856ba6f
6cb722477452bd3b7e1fbdfaf7187bfb94276ee510f351f8fcfc1a37fddd770e
af58611dc4d71864da71c624f7cbf0aaa44b6923cd4a9a1611d725075477ba43
5bc0e29ac470ad305ba2685ec0c54d60dc6451b23d041c6d6cb2d8302aa79403
6db86ee51fb0b6fbd08c91bc49d71b114fb8ac53be029bcaf6561211dfa14bee
29d2200f20c54ffedbe035ab6bec64cf78051656b4d846a966647b0a6060e9c6
0ee8ce8769beabc9d96bf0785f6b3af4048f160a3fa32b571a6070bac7baaa7f
8abfdb0478f112f9d5ea21783f4ebcfbfccb5921554f3ea396aee04a17b7e3ba
72eef7b462ca3da832f82c9f573e4e14b5f348570cda73d346f8c701901a54b9
341146b95b75e1e113af666322b484f57ae2524cf74202a7cd6e04c77c27f6d7
6c951c460a4cfe5483863adacafad59e5de7e55876a21857733ca94049d7d10c
0c9961c84791dcfd1b99605f2de80d5893809a57daf2f97e5a20769ddbfa8b03
409f40e6972e2234f05365bd6c8dbbabdd6c31e639164f57ab13b722a03d0de7
d080d433eff0a6b9b0ea46b601479c845161296490cd201a625133f4b4fbe30a
3b9869e91d108a5d1b00796a3322ca05eb1fc85f0c6b0a62ec1d3768668f3057
40ef87da22bb5d75979c47afa5e1d81adaf63cbd0f9295720e35b412fe96155e
09ad1efa724471cd4cc19d3ab609477c9e66e489dabb5bbf07c6f7397ab99c25
c4abe25b029293ff9738e7a12f9b45863fcdab1ff0603dc923bbba397bf24e56
2f4d0e362895fb5c6bb3e9164e92f15fe8c65b5a9238ded20c6f826191e7d094
6e73d6a15fa21e298bbd46a7188d37ab20b8ef2dbebc7afadb9a48684ed36c20
d2fe0faa63f9394b5bbb9019cd64df071085710750c08e6e16806925fd202afe
961c297fa5e11ee671da53efc53b650aa6bd1804dcc3cbb18510c6245038b03d
8f439723d8c49be86cf7f3044536ce41c07367cd0a246e4a4909978daa074a82
527d59f0100c78832b0d42a32ee863f0e7e72c9d2eeeca09293f0bb19282591c
7fdce3d4c949374b3288061159a1b15ae30379e5f97d5fc4d9e67fb462edcae5
79c36f6248c09c795d6ed5c79d55c556fa9a198fef470ef92a132c5c1def60a4
97d4924e06704d4a96d2776e43bb8c8c489d8e17db2236db2c1cf4209b62a254
dfef2e0e5822b161597a2403dc97f749244ac73515cb4524c553debfff9e162a
3c72816104dcd242474d20444455299b8027c490f72e5e3098cd5231e1376854
6c0b2d9cc290f722c1c4378ab075fc7f7a7b911df0bd78c247bca493534f1889
0a85fd7a6486bfef24413ac82445dee24a7e2cc3bb5085988f125d079c3da01d
bfb0cca224467480f64a12fb12c282eded4bd21ffb623214c256f81599486e03
1ad76949f2d7f351fae05c6941fcc7072f4c46a3a9558c40edd8809d04955cde
c32bd956c8d1dd48ed5eeb1541724790996ce67090f44a58a365bce4fcb25ce7
b18f92605fe1de73b3710d9e546d6588bde3606f1f9f9b6e7b818cbedaa52974
bded176176b775344aa8a1586e12044831d5376c3587c8d4b3ec531d84d34d88
6d020a049e623eb33a965f5826b14b6dcbb6d6f0038ee7e6725c434ed461a318
48bed89bc989927e1d61d0f3817d3a33072b2f6524820925661d60d448bc9eef
a7f4def1c7ff07d17b5dd58fc92f18ee2dbee6dc7654fd30a8653bd9d848f0a0
e3c32c4322ce2bcef5c9f9b6ec952bdf39417b10d26783c41cb5c3800829e167
e354f50debc1875c8d91cfe18b29f339b95e48585e9a9574704a8c0e98e9a31b
d9bec1f15abcc3bf7e650ccecf7d9c4d4d626d75f1e37e32010d828186f0cc58
f9e3cb3620a282ae799e24014204decccdc68a3aa437d7483fb9493bb7cecd11
d8915be09d47ab13b6ddb51675df4c41bbef9a71cfacc102005245d32db31ab2
c75178fe56938310a09541354ec4e4206b8c82d6bb021e9283053aee22d579f1
78d8e5605763f7972ad7543fe0a9dbc0f5358530c5b7e372362fa791a9d71021
2689f871e649ff598196192acd0f0278a4fb687a44186402db3602d18c1064a7
36f9448ddb2d7e5566ded020b3a5db143447218ef4fb262b7aefd311d7d00a08
f26be4514268363e9ee4fbdb47403ea9f4e1bb48369fa38f2e4f9c48912a93fb
0de586d0c74780605c36c0f51dcd850d1772f41a92c549e3aa36f9e78e905284
080cfc2f2af45393383fefa52a71a221398b1436a6eb634af16a6bc132d4bd5b
f2499fa015e9ab1cfdb11c613b66d9be72901ab8d105864b8ab228f4083f964b
5fa7bd35d3568bec4fe069f285c8122193ecb54096db8e691de97fffbd3ead05
84067f4cf110288b4c773a01f43514fea90e25482589df1c90549b66af872472
4371ac84df7063f7e82980318a7322c32a8be2fc69704f8948bb4fe805d478b1
da5fc56dfd1c80dc3d495f30490f2c677b5401ece7fcc61591f71dba3306e988
79e0cbe60504c42151ccefbac0034d60814b3c68c0ff6d6afefcf016a2cac108
c891a7cac93d0898dd640bb7dc8874b69ef28c2dc0ec37291eb3ec5c18d4831f
13847834e3295bb1edcfc6453e81a6c351de860cafff04114b5a4e205ba58bb9
e14038d130cbcf48db7f431031b4e18e4b003d196dd249c61adaa08e03360d1d
66f55b0ff8332a6ef017b1486371a397ae03e73ded935fe1ce4e5423e50825f3
b082e3529b700824e075d0d51aecaa2138fa05d10003d7b617e1d1d36d0fe31a
fbd72501c8faabc92f74e709266255d78c4c91aa3ef38c621acf3ef9c62936f7
06d79cd52fdb691a54fa96e23215fa13e61f5883828ca469b749b2e3b3fa27d5
b3c651dc5c91337d3b5471571d8470cd4c314da4a972f4a9288fa1f0c6348cb3
5ac42d247222ba86956d42dd253c4d8d22c1c22937a412fb21a129f14cb99921
7db2046d3dc779a630f5704a82f4375af77281f07046760afdda93c8e697de72
9360d830d54ffb7a3ac9eb1123a31ca53538c1c2f109cb366bd78c236ccf737b
83848a69eae624492bf1a4c8fa60a3169e65cb606e5db65b0a61177afbbd60d9
ee2d41cec1138c87fba9f13eb02afbd2c5f5e31279ad1b7ad31857350db136b0
ea70e1021581ad52fc7b28278b3dd046875e03d5c46b290acfc514bd0252298a
53d348ca871dc1205e778f4d8e66cfdadbd105782dba6688e9a0b4bdee4763e4
a9a90162c463954667f60abc94eb20c76e2bf8ddd085e2d10395e375383f533b
7bef9c4b04556c91a5dee0620d6e975d5707f02f0ad73d1c2b18d270eab7e779
3cb959eea969289fa67d3d71aba6acc765cb8fb1bc3bf95355451abb8c02859b
24b0c46484a28736a7250b7d8a1449bf1e578df7a963948a42f7eeede4c66b11
92dacddaa8097cd2401394a4ad1e032b112ebd5d9f8801b2ea102920214c91ce
e87638b9682d71f8331898734064ed13e2754ad53d9046af8548421178f6717b
64bb0b8eee86acb34b57fbc43a0c65cc1b13383940e7c50c6f74665d39f78fb4
b498e102569546ab2eaaacc7576ffa6526f74c72ba680d778a3068773343daff
a71628c9cc10200c9566ffcfbe48965cd21a192ae908a1f251dde3c94ba9e2df
39b4b52a4a8078b5bd20f8afc9f3eee55e285442a882b702931f4edde38e5b47
72977f5d634ec231dd6285e0c0eeb1053496164ff5d1088c8db2a1370d6b647d
93725430dcb60157a0cfd9984e92bb52359bf40506f9a61f1bf1fc990fb325ae
939e54315a013d24d6b0f54b56e87b23f89a7e19103cbbfcf4c78423d31d3f70
c451c6d3f16ba7f232511c855856f80adfc83ac53890a03f0d50f4f426e6e33b
2b0c03c8a399975a07c78a6959b12cd8bab62a478bc1f912db34bfcabb35fcfb
864a102aeedf53dd9b2baab4eeb898c5083fde6141113e0606b664c41fe15e1f
1e08b2704f291d11d628f51505f5884800655658452f093c4bce4186a2441c6a
c688254b98eb5f736097df4f156237b3d48d21d651d227b1a0adc32c543e93f4
de053a67b29319a4e8988c9b666ed9f43cac43fd62c56c844615a4bbbf417b54
85fd8d91629bb18b27441038f3dde60a3a8aca35adeb11b39fa4f7202298f22b
7b41a279684efaa27afe90cd1abe1b29d79684c235e77138cb6439cdc4689725
cb06d7b0d36eff3f5c9b7baf8392c3ad39a2be882cbf688bed055c62f27052cd
bdd35ef9a81822df969fbfe6a0bbc7a0d0635a7a082a8105a001a20a8f557ae5
3fdcacdf51a2f08339d2660a004d06b3bb7f16564d4b9329b8d94c2f3a56dff6
d49d01f0f06a4d33fac8c0a34a507d876d62ac98b60ba836df063b2811a4af64
46b90fcc9b0d8d3e99bb77a1cacd65ac927bcf012dde69b8cee438875741b632
540792da9cfcd43dd4ed831f0af021329db3a8ca28d93d65444c6f98ceec287a
a45febacfe256008d9d3d993869166e5438e3036164cfc7e3ac2e494fa5f27be
3a7ffab4f7548f89a383724c1d344eb68d9aa6d2b51ba840c0a78c20849c115d
f4a0bee94e611229b9d258d77c7066b3f9ea325dd4125fcac6022caa37c61f4b
1cf23909cca7b223cde4627d1d95f392b7ac0e6daf4c41dbd1f38910875f88ae
e0fa1c4ad3af4af45a12ac8ea3850ae414d44685b445efa3d14c36110688be08
1495105d6a80057d5952bf824cf45bf6a5b6b0685d08585d105b5df01ba421a8
7c5e9f900cd2ef6af8b5a2e973e3d019157b99e96a6faa5ea58dd0c4cb4f01cd
14901163fbbd5b4663d8d303fae86e920c0d46b318534a344df12a47ab6bf51c
c8109cfc1c4610554b877c0c8cc9e72d8539a3c92fea2e4b660d8b83bdbf97e9
f5e1c106d1252a1f23d87c87a7ecd4c04be4204e4a7eb9812e9f182e9853ceb3
410f532b707e3e0709345bf77ec11797924c6b9cca80f2c5d03c8fe231098613
089bb8fb9f12cb9969272c1698c8005ebd08a978d0c27b7c29e83d5e6184ec4a
1d613bce91a4087d78d671442710367350d24e01949d880a81c4a97edfa92a99
416df2f768c9a9f5bfcb0a481a069a4b531d7facc2abab390521a591fce03c71
81be0417ab688cdc89adf70d626e98790bf61916a8648f15ad8d641d8e786db4
175589c1683688a692a964885eacfb03eabfa7d0706ca9997ae43a29e5f72ea1
c23b05c7c1b1ec8d0764f458dcead560cc95d8b349d8a81138964e2abbcaa879
3c10d93b58bc8b717f9855ac233ee1769713a6821967295903eec2f9e94eb154
c314d7c79165de87411761a66181b337d4871ff1581b55a13461ec69e70bfa21
3c2629215af4e369e66273621b863af3b475ecc437cdcc52513689bc728424f3
a55d27a2bf320b7a9d8869eee09afcf173ff550257b83eb19e6eb435bd83ebd7
cce0bb89ce4d8707bcbb0dccafb60417e01d794e0c92d3619309fb9a7c8e9601
ffe8225e824c6921049085ea50fc2cabacc508aafe996542561cf2a3dd458e37
7493245ec313ca18d7ca85d3cdb7c60afb0d66c3ecab18d01d9b837cc3951b09
a4b90c9e1fb90a73852d65b317aede1b2b8a11e16cfebb30380f27198b96d1a5
fa70267e7df9afa4119abd32a79e0f0ddb03a257229aa17a5f2cc27b6b0e57a9
1f13943fba6a68dff004495feb6b1b389962c83adbfcafd3c80d44a8cef0c6c1
cd12d78004cb941659a1c7b2f10cdde746a754de8f02fe49a9ddcecffd51252e
993803ab04765677115011943ec35997846aab147e5ef18c227ad6c5e98f124a
f321d3427ecddce14dd3167895b3ba9ccebb90978f20919ee518ee8a91de0255
11a1f5c1484cab33ed3beb5e86fca251f7fd94c9715857b660a2b47c35492dbe
778fa98adb08eb7c785e83c02160df897a624edfd9984e82eda09e3253e638ed
b60fe032ad6543d858007f32a0ac022fead12391ae9e7022a144e67651f75cd7
889b68c8ea65fbe5f1cd6c790a7282492f2963cb8a6025d726fc9b7edc1aa98a
b8e1542e1a73fb0c587e8fa249ca3f444e88757855368fe9099cd5f44a89e662
4dad77630dc307f9158c74d250f2df579d0d98c136c5cf07b56b6353f5f71d4d
c63194382398876de2e3c993c99b16d6b9d539c6dcb5ad817dff0a5bf80478a2
b5d8d11b7d8bd19ecccf2cd5012d2d56dd1adc0111a6752d1d1669fcd9fe6fef
1524170d75d95ac77a05a847a67a264b8ab0c13d3ac7fe92b72831c201cc3764
9d19abce0558d99b5f76c605c86a5d0d05b645ad533eb95a5f0c7fdd6257b166
f926f8045cabe4ec8f7d4c501299a12c1e70eaead4fc8da10138d966f00ba885
6c5c8f543b7c306547550876a39cf720383405ba49d04b9fec78dfe58528d489
4e8a21554dd9c561252cfce7365c38ed0a99f435abe52a78f93cb0b920c95d5a
067481bbff0492b02ff025405aad744318a2b1eaeeac5a8387bff3d5591fc958
aa12955bc31d3ca9a35060104cfa905088ebfa08e1bccfdfa2789f22cf0b3569
7e1f1728c5f9c0fe19428f07922fd914b5d717502c702b748ed80f59e0ba1537
d96ff0175bd81a56cdd0314afe5fdc347c3913faf82252b11dd43535485021bb
8f716720ef9caf72149e262748e543df1fc2996cb5ae95d6cec2678dd06601ce
d950a5680508203fbb8a8f3fd31d3ca86429a931a4c65430862221ea13cdf959
533da7e41bd99550f63f152ef1e613f1a78e3bed12788664d536c6ec42b5e0aa
2cf35ac96bb23982d8ccd084a8ee029dbb268cdafad42d8da3c3d8cfe61924de
d6083933b9b5719a03522b372361e1228b365fe12abcee7fe383b4f481dedb18
ecaa3cb0bea1fcfcfe2e0aab715068987ab9f911fe68c250a81c89845841f0a2
9f370991169c0bc6ab2bf7d4e7acecea6f21bbbce47bb0a6759e5fb00956dfae
794628944c0d887c40bb399c4c5843235843e5e0e6cc0d9625b599516c7fb7db
331449e74c5e18879ca4fd0e09397ec1f351c3a3231265b9c6c65ed22fda58a7
d5f2a3b15df54eb6759a61add5f98588548e52332b9576dc15f15649d4785848
ccfc4cdfdaa25f9e5565f239ed0b16054f1db47c05ad62aa859c06632bfa2841
a0b3f66a172de753bc0c50243f1e9379e75bbc697756312e64a262a719a0dc12
d5afa16ec85de3ea0d0d443c15f8f9a473a2f3c1e7d97e31c9de49ee26b46f1e
5ce23e94594b8358cc81dcd3ddfa42806ea285c11c6c1ee6468e291af199481e
a0a5595a51b99c087e57a9af34aea3df9975b20e3f3ca214338642b018adfc66
2dd3787610d40ef3c18fbe5472ac12bc60f28a7fbb67d488538573b12d536e8b
ad87e5a5b3c44d829f99eb8250ba3d7df296a8f252aa92c670f1b55e4c95851c
f1e1bd2df35ad65862908a77b6be130084ef584ccaef8248edc0230c37195d12
1e3eb73258c1342715e1f54a6715bc81808f081a85cf9167013828e6c269f2c3
56bab805b358c0a6803509b48d35d565344f09b6001f5d923ea0c0f38353f9a6
29fde3de7973ffdd6e13578da0e7056f5e36c07b0c83d7e350e56927639a4454
7c1a381b46af4abe71170523c74387c433a82c46401d66bf855ab96611998862
6f80a01c348b19255e5a1f2403aca5034d167d7daba7563fc30b7941465d3ea9
a35374953cd98bb905640ec11d905f954e74333fdf28f516835b2382bd0b74d4
f37eb3f37c03761494b43c4704c9feb28dd19770ae8ef5b0eb5cbe6462bda62b
73bbce40d06171a4f7c2540f904c19d55ea888f86781e8e19b958e583bc64aa8
890061d496e45f2ca2f740f67cc2dcb5aa3395336be2425147ed27d464d2f3f7
53d348ca871dc1205e778f4d8e66cfdadbd105782dba6688e9a0b4bdee4763e4
ba6db07f5c7db82438e7a2afb5bbb52b08b1b4771a8e602b650fa7e7f7ce5b75
6726ed70fed76560026ebed8a93550496817379eee894c870be016b22f709846
a0ca1f7fa9fee26261bd13d726bca6260639a8f9717a697ffe8c0905f873841c
5461b24e5869dfa3a8c0f886e57be5b6471158615551e785d3e68a3c7fe193d1
2380b0d9088acdb5b0820620eba208e4bc6dea8897269baedb755ae437a81edf
f92101ceaceca3cb1f25030c72e3442cb9d9dda6fbe943d95d98ce213aadfb6d
9daa9e205fbe1059cc0c3f19fc334113e7102c6b76dc80c6ef2874f607b7dde1
5604967767c82a70d262d96575747fcb337fda1abaa26e8b27d3ef98cef8355b
c25b763f656235540a7121d8fcb57a63e600d635c6772fd554f1837ab873e522
7790533ea7b9af05128306c4b422cbbdc01382dacdc8d1b82eee025b29b3936d
4b74a861f5fa13fe806582b4bab4a19c96e58e0f0b4bd7e6755a18372bcb65d9
580021fd8718c614104dc092f44ac20350b0fc83a0144f1a3a1cef03894451e6
eab6c3a9a3d333fc310902cc71b34ba3437bbaad0e978b19542c8a4e9f4cde72
0de0a7ebf50fcf6c4b82bc7c6c7f6c20034b5d3fe782b81de3d7e896eb9ab6be
6ebd4c027dcc11132b02df9011be80947ca913f0462c4fbe0e78a7d92b1185a5
0da5741c5126f9df3eb47ac151666c603878491a01917c6e997e6e48a9147f4f
627c859b5af6d537930fd16148eb0597542bea543f65fc2b0e5f188b5a458529
c1177cd0fb7fdf70863faf7a839d4a25d4d292eb70fb3fbe155cf50f61b2941a
9f33109fed31478a5832a240fd19b1657cb5c2218b766f0c316958b0aa367a2f
1721de3fe9a6541355d787d3201c1808133cab712d09d486f02a5559ad0ea53d
d4f5c88aafc6dde3603baf2d90b5d9ae107f7d85c6badc9d989e195409435510
b47b991186ee6666d7a47005f949b5c2b183757fad52c7256ef4b6b15eb6cfa2
4f258b03ba2741fe8410819ae5658be896570327ab357a3e4159ac8db03c4ddf
7764e4c8dfa72e26fd6d4f02a41f2621aa6eef234a55c52a1db9285052cd3f36
591a7d20969f081cc3ce052c0264a71ec657c8fc9db1b35bf6648a156a9aa651
b669e07c7bd22e571f9abc1d110ec9e133db14e65c618a4476d5f6453c96ff46
3765519f3bf5d212e279536c9f042971fe2c012f78720a4e115d69f438e92ebf
5c6e5907d508eec7c9d0ea3f42669bd0b12811672d020711765fc3d60b39483c
d5ebc563f657b729df2aaa85c73ce8dd2678696722a01435e5e269b92c1fddc5
9d5bf2f9466bcd8b5fbe20f14083066c260a932fc01ebd8c7286db4268a9ca1c
77a0b2b0becd26c5a7f0c0c8e7afdb98cd48a5b9ef990816861e9fed060a1f45
e08c6a611538bb926c919b70a9a9ec64259a59632b492ca9de35d87cecd617fc
a6afafdc3369382d0239457a7eca353d509a5b12280467a4893ac804a7d26e10
278462b5a4a2f9a9d672f903e37b53b4654148c56ef76ae1107618c8ffdc31f7
7eae4af7f8316b663bc7d46491d055a32ce2a74bd30495df200474ff542c7b78
ce6faa407798d091eaf0b88175fe47395a8b15c918ef24a7dc940e2de29c33ad
94a000efc8133b2efa5d2366ca39844b3275b80560f2871ef0ee7198be6590b0
47819c48208e7314358f0a3ac48915d40be4e5255eefdbe6ff83ec3a62452cd3
b3df557c8453058252defc9710ed3409be6f058f5b6266964e304985b11bd975
ed6aa53cf73e7131badf8d0d2afb3d77f638cfc1fef4900207d1c589a89e75ea
27f1d66f8a1ee5280f4e92508dcb647e954d53004905d08a75574daee4988360
3ec2fcfff2c1ae95ec6fd092b205076e38da8ff37a5c335a235e058b34489fde
84b2bd2b6c7d59e459ee1eb49cfc8443f70142f6335b48b88574a3bf018a6263
565f5db1fa49c9b610e62e3076da1c599036c3cd015a46b757314dd510f499f3
a184cec893f8d2628194ef3c51a6037dae98031ba24f6fdafe7437f5a11be73d
8296f44ffc8f567b75a50e545c691287fbaa5cbc038079fdfea327981f3c669a
17daa50766e6c78885da33671385e9150fd91399955b57907fbdca3c41268aae
f5d8c8686424921ecae57b691ea11d38c8f0bc6fae4b670dd61f63ffb4a999b4
0a24ab7f300fa8d99ba389d52e228cf6556a9d27257efc4a81e8ee87b0247cd8
8c0182209d882ea3906289406e3ab3e25838120b82dda91b314d7abf5cd2939f
e9f17bb0b9c3f00de3cc32b22ced3d291aadb523ef89dc6c3cca9787310e6018
b38af404bc6f7c6a144bd3221d396b40cd01e81ebc8b0f3feb03f70f9b1e6ff3
4ce204a89f19570a9ff48b5399ecafe5fee94688650dd642aa9c09f132041bff
3aa00ec7efd27489e104d7d36dcb33cb55df2fb4a69f5736202e66d9f5c30f3c
3723825814b18804bce74619f2a4d0e8baf62370a40ff434a4babeb979ef092f
ff82a7105d9b292dabd82d524ca655e40e1b7e12a8efa04334499d5402de3901
8136a1e328a7fb95d790463b1f76632ef20e0984006d141d50742db1523cade3
36d9bfb943eb7c380f08e1ace2945a947bc0f020087fb75dbb3eb79933936d32
0ae8f6a3c78170af32976c1fedaa4a71e2b2a6607beaca60a2c5f2edc0330cf8
c7280d391460598dcfaa25a636739af4610fc93e1b8bb6661510889f9f86bc9f
d982982a36dc51d1345168047874405685ac15e82bc19d605af6cfc73ca0a359
6a662d67f4e19656c1d1ae51a63cc472191c22ed3551fc5438b148d95b691bcf
5a9553883d576cff433406cc9a949fa6fa7565f3cb60956d511711ff829b5b7f
e12e52ebeb8c0f0edc1ee4340b0f9d7a1bdcccd8a5cf9d38e4a5daea173e40a7
623e067f349d6d8de3b322fff2e96ffcfc4649f29278f6bf1dde1ec286fc9502
e31132d0fccfbe9667551d1dca4c4969c1b53c460fd1c26e4311bd1ab8367b05
07e613d68dfe479ecb362a2baa313ab79a8e2796ea6ba16ff41c47af33b84cb7
4465cd3efa5684665c72cee11bb734afa1dfca8531b459802ab952dbc3a5b4c6
13b1c2ccad8e209cdb46ff2787819fbb9e9c5554b931ef49f0a12eeb960fe937
38ee0ba81290236441e54a5cdd0071a684a4a63180aaee63619ebc883ba2547e
9c33048aa3bdbb4cdfbc045e42c9cf02c632687f105df5c03543dbd91aea6c1f
6466e536271398cde0baef87998dd5fd14118242310b99f2971da7fb236c3267
27c0e69e629658c264da83391b5ab2ccee10ecd357d4da2b4b0e52cd9d7faa9f
8b905d5986ce45a268a4b0b0255601821424b8313ccf399f67a32aca1b3456c0
60ccb6bb561d93e142b4d68d2afc1d0519e3f8450e38f0d137fbf66c871602b1
4f4f218f6636f2dc65607a485fadeb5e53b8d42f81ac989f5b7e230c3b4e87c3
f843926f2adeff2032e4bb4d8fa7a38ff86d76947de2a1a2e37313f8221aecf8
f0211d32c841abf05167f202c3d6c2314a44d575fb758e903463128917c1ebe1
bb4ff4269f6563b7f45eac4775845a91f6c04049f4a11570954efd7624b145ac
00c69656fed25c4c2dd1d9093c164d3ede9d5c341c756bd08b3d24338186178a
7b8dbad6649c4c7f5104218e59fcc3913f11065c1198033f44cd1787bd77e8fe
53b6f100899f5ba32861f86395a326223de33879a5545717f3863e4164b80fb4
23b8bcbf74eec492080ce6961007520caa2df23061441647f4053c533a58f833
e860979a03e85d285360d0b5fa2d085e945ffc7146a48c0a82eb5ed627878a75
827bfa078a353d1097cbd1b5672c2d2ee21326b932939541d42bdf43d33cb65a
cefed99cbb7b857fa9fa7353291449b912c90619139e737db338d71c72866b74
a4e6cb6e23d6dabbeb96777d05500033a98040e2b080a0d96ba3f58d9d7ea9a3
0aad1b00a5227d9b03d33329a5a11af75c75c878a064c69b276063cbea677514
d4461bb2bc7b436a21cec9040beeb64981d5abe5f6a79fc11a0f367f58c8d546
b21eecb69eb61bd371f4e6816869f427fb1f3a9beaea5305f5d284a5d2ac02b4
530ccd7b3b485a6441beedbc663ae6b5cc7f6f3ebb2d3f5d7a1f5d1a7ad78e38
9c24e363722356ed5de895dbcb8ab77cef68fd70fbb708612dfe83def9c48233
69ff7fa5b8a541952c772b98027a703fd4031e1c9c02ae7ef0f7d452905fc642
ae92e6f6735b158706cf1cb306cd35b90539557444af7f1eb393b3269fba1714
cb01a74e23e701744c0df6b83ba30c6cf818cb0b7cdbaaf7c050ebc130902976
4b3a6306c6173baef5a2b89dbc946a4fdacd4fd6b0f6a2326b69ee78d09c829d
2b6e320e1944c9af7d7fff60c9128db4a4dd594737d0550cfc0cfd91156f2d01
60d731bb731cdaf286a7ea8fe0c8e5f50bbdc4d9db7fd5c4061430fc6e292298
d39e1ad139e9c165ed53d5537876b9e5c8f6c470ca78db27c45dde3fe2ec2112
679ec912359feba3c7072295d84e26464a54d70b2b82cdc67a82381cd860ff0b
4e3e23965cea8085b28b39e2c896c60d8b8b58d46a6ade43647fee1d2908b2f3
a1923ed584a7bf961375f454c626c7134e24965fbe7ae8e77c350ca67d1ae321
8b1a9f74ed2cae27638deb7ceaae634bfb8e776b015ec54e7033608edaba37db
80430b64202051d0fd09bad73bcc14acb9bddf7bf065254940ab7ec51a4bff8c
80702600ca372c0af610b65708d152883d4fc3b153b3d5aabf32b641b0aa7cef
ebb4635ae9ae7a3c6574126cc0ecf619fbdb0e3b1436694d788bbcc56472cca5
ef08a74b03dca1d3fa1b327ca5cbcc05f5bbdf947a6ab3c787ab332f4d7d84a5
eba1859b09c2d461f7b79df6cfb97c915328d182ecec901b45b1ff793f970198
cbb042eda7050326455dda506133680d5ecdcd81ca26d56b2cd9ea359146ed6e
30db9aa99ad68f4d75f2575865bc20407f73457609d9bf77e1cf9032e0936b7d
551a6ca27feab07d53bba655094291891ec3310f40cd455157ae14633be8b0f5
9997064773767eb1f231693a01329c082e4a2fbbbbe07b35134337dad90e0d76
fbbf3897c6679c021d898eef1a0e32b048a8b8635388268e614cb673fe1be234
c6a1fc06bb1588f2748a0197431ab7ca4e00e06c5a477a8cc3ac2f7b1d832a9f
39841f10b64b2117af6f2c501f30724ea7962ecd1cdf7c4109310a3ae4bdf9ab
2e17040f459cd0088ce8681b54fba52647b78d09e585565d65f6ab7777e72b1d
9338ceef7ee3656d8dbaea3b56240bb51020d01b1b1ec2e1f907cf71717c1ae4
16ffc21d24db9c88a87edec39bcee63e610d99c81c9696c7d989ce1abe927d47
bc13f7dfeb8a4c26a649b313f6b9e603e0328440613f69cdb2926632c5c2db12
40f087dd977495465c75f433772d4f7d07084d3933c4a444198403935f40ceea
554828fffc5a1c93710b91243a221845fce8f1b87122ac952550d6158b019090
a5b59579bd854f5f04681f507f562df8c40ccd3ed64ab3dc39f036c202f0a5d1
f9fe7236491dfd794e2953a08ffb2536beb4159cef48a34847b8185ee8db2ab8
246759b27732c7b4ea56b1e315087bceec9837d09661ba967221ef4ed8c70609
e5f7303ed1e6c24e3dba39592e0cf7b79407f9bfeb7de2cfb9add2ee29ca66e7
e2223d5be4f1bc5e9708eea506989957eb2a1509a382b2c8cd96c339d1dd100e
60c1f1a3160042152114e2bba45600a5045711c3a8a458016248acec59653471
d7df631a86f5d0080a81166b4c8e0e6988ceb123e807cc68ab815789a1197cee
b863cd00ba119c8eb8bfd86cb2c86128f942a9588a25684105d842e97cab54a3
f2215af0c8885ec788a4ca9ca9293ebbb41f3139d9847756fb66292c35afd87b
810477a2082e6062816d1f0a7305bb6c5fe419c340363699ca915fbd9dce23ae
8f2c93e9e30320153cfa47a94998f88d91e425d1336d05a8debe6a84c8f2c79a
23f97b243c12a3bef7001e36cd63e9b41cbd536c3f45264c93e5d1177a396a2f
783dee744ae85750068b55e1c12505f23361901866b0cbc9ea12ba68f38c253d
c193edeeb4e7fb5c3e01c3aebd2ec5ac13f349a5a78ca4112ab6a4cbf8e35404
2671b142f60e1dac579c9186cd1253698a854ed26d30d6696137694099f61e69
32f123e08f6ec788caa7ff19d122f449a0f5d9dc9263ab23c57141901f923288
444caa37b4c6db313d3515f714cd9841d866ffc5b845b2a2a596824cb893765d
961bb76313cfc53905d3bf9297bc1d61beed386f9e5dfb521ff1b825abd5a24c
68c76a1f4a2f48267542bf680903738188cbccb1a9cb49eb6c59bc0b569ecc4b
26e5bc89af547e29b147d31eabe0b6f9ba6571543301989c6c98abef69fd0cde
0ce6747062e06a8dcb21ad4ffbf7b80473f1b3b078e4897f5d69438c89b2aa6f
5473d313b9e5c139292203f3401dfac659e485245463389a64fcb7bbb60b92f0
2bedfd92a6136566bb858b2f0d223744a41a987c468356d069acc86f45bf68ac
a20e2703763a7efaf871b180af7e805990301307e8c2f250279ba782030264e8
16fe19c281523e2126d1f03c47ae95e769b7b2c395513beb5263637236b529ec
1db71941526a216209d1861fff6e82c9d5afc101b19d375248fe2c194e5a5421
3ee198fa17dd846d603e8af406c4b9363ddfd498011863fcec6299c9f91063da
bc0a282b61f079448035d6db6f8ff14cbb27794dc82617d03e6377145fdb9a6f
a48f9e9728b88b612c8fab8c790869c1ee8240c3cf4f9c099e979bb8575ce652
ad6043001ba9b2b3935cea77a1362907966a73ad2d8f0a4b4deedb29cbd4d84b
1966418f69f22c467fa1d698464baf96ec0298efa739743c5b060b93fcb0dbfa
463a51f6789517093a76d7eb08837502682798b00079d78722da62ad09e5acef
8d678f9dc967ec84913e4e0b8779dc404ad19309e09fc57df0aa37f3f63ec239
216fb568589629b115b0ed8fc41fdf3219d9ab804c6ce5e53fbc581a88427c3f
3695b8595fba49a64553809aadd00c2898eb454cf1655b0a940dd1584c443ecb
3a2dc5080830820f1e3ace98fa050eb6a19b209ddb799c4412a176588687783d
63e59d33220e0583576136de2dca308eb40c8443ee8a79713d6aeb929d481caa
8791e67141383854e27fa42bf42f42a26613f79a2397ba767d1ae9763e13d0bb
790e0d0e41dd15ebf666cfba72a892e30df332f8d68cd7abd562b8de129d329c
5b95a50b3c922298af9b4721ea475d07a10a69fe9b1279d9bdd4613f5aac2a45
c3c36f7f0bb89b97ae3b2df74153d09d8a4e82943308be947708f51d2ee3b56e
44afaa2b348594ad3486b74c4ff9236048db92c2911b5c4468fe99bdbfad212d
cc2c156442a979bcbc3eb9aa7db65a0c03ed65d10cd25b3108a006e4d778631f
39174c53daddb6e25b12210907656978430dbec58df84aef844b5e08e99339c2
315aafdff343cd5afe62096285197c413646e119f253f2cf87ad46866754e1bc
23433f041b55f15efea0bf2398a196cecee15af4bb2ff3c3587ca779e1a53391
1d68892f88afdaccfeb1109dabef8ab0f14146adaac06980fabd79b0dff99290
c70adf71eb16b52302de5c128c4ddfbc2e747ad8003123c42c6b0b1181a5eb8e
014fd2b123dd9c2a44eb28f329b95b06450ff00b840dbbef62bea69cea470102
00db894135643a78329b040712b3c54b759513b06cb00fa700c34c4afe8508b8
4acf3e4cd9e30735ddf7553e0d8b14e01bfefae6cc1bf0630c570d719ac38311
9399db17384092592431f2fe850d9e3baa3372dcbfb2c00dd4180900db2eaab4
897bb25a4d664992db60e5b17ac1f28f57f69c0c1d7225672c3bb8e28aa1ec4e
32d77a483c0e1a9db6299f3fad29f0cf358080385c57ac99721d678f1c2c7477
585a904f2da26e613a78e54317e94cda383c70fd73ed9cca8825084842998841
c50ec867359c4133c76e0e788636f36abbcd77ea9e64699e9f3e704b6120de4c
91e491caf0a3ddee36fbff1e4a99e854636f4faf178ae93e4e3f06de00a001e7
c7e5923fe07123b2a6a65e63de9f40ed5ae5bd5b2c3af06b5cd8d27a0ab78812
f9153776b8b8bde9fb16fc838464329d1b6b98f94d9481c3c01ff1b41ba66854
ed7e81d58f20c24e196886b5c37af8dff23d477548e53de63fb1eeb3996db53e
1ad7ffa59a6261c8b9b47f34a47766adeafef3cd72471da894304fa56ebb132f
e617da41cfa5547bcf7b5deb39ba985879ee33e6fce3914634477761ec40305f
70093065130ae0ca376982651919215f112ed6abaa66eb1a084c8ab183ddad61
f28c849bb477a7c47ec4f5bec9a6e72bc17a17439190707e6c5afbe539e71743
a2cd59624ff2f12cb434b2807b492e50299ac181da4358d25bb93aa747fdf676
df890b4c812b1542c81b91bea028aa4dc74fd1536591306bffd0742746176f00
e52e0c04e99645db14a476b639cca4099186bc379e2f2b94e386f5527875f8a3
3f4962cd5e2270ed1867999ff40bd0fe9539cd90380d395ed1b74510733b4a2f
b196d2e8bfe263e11f86981cdaaf0f053910cc275e5b0bac91134b959a92cb8b
a9aa4950906ec94c0278c7383f5de1ffab9bdbbc08fba4330ba5f26ebccdf785
7bdfdc10f37326264bdde13d38d850296f20fb9949e0574ff5e1028a8580f794
c17d16db53fdfc9b96d4e840f8543c6f9cbc1aaffad5e781f8c7aa474534fa11
f87b08218888f97388218d3e2489962403f7eece98dd8b4733671edeb9ad1a7c
0591550390996d992eecb96a5935a2f9b588e1c9984b74047b6a94a4b1940034
c40fd94f63f7139ffbeef9f2ecc92e9e902fab67ac7cb386fd84d65ead5c65ec
8e66d94ca595392f58fecad2652ce3615217d252f2bb681a67cb5c81b02e142d
ce55c63fc8659ab1fa24666b4291ac09ba5771f90a952063a061cf2d671fda98
208ad045a169d4a6d49fc2e31abd455e18611321d2fa1c8a5b0a8b9420add066
f3119d387c61c6eac021e5b28614b47ae27bb15f6ae2af1499127225602d1df7
f20d6657a733f160adaad298d79f887d6cb64be1114104f1441442d9f216bda5
49f0c3bfc89ba0cecd25e5db1a8645906717f2e2de2b76e0b437ca5b1bbf84e0
16cfdfffd18287652fc5e207b98024645bc05c87f02bcd8cbacfef98b7d00e19
2c2c7db13913420f51579acbb4eabff5f7487e4a2d10b2f004f718530fb90f00
3170f59bf2c4bf106712df7f11f7aedae8bd835b21b950be269bb3dd7141a71d
7f3af92c4d68d43530a2459f6db43fcb5873d9b53bbb27f79c9783cce5e27957
85035189f50b184e56d15ae1059af2d62b4a555a58dc5ded5a43b9c6668ff185
216aaff29e97f97e0be2bedf68dfebc39854531d9d8fa59d5ba2de36a17bdfad
e98e2a7c524ecf1dafc4e3eef9923233cb0b87d7c7b09dbfb598e564d2174014
fa107a3f9eb74b7c096ed1b67049171e17a1236fee62639941bbcdfb590f7ea9
498482fa9815bfc30830dcde2eaa3380eb31ca8c07a21d3e79db7d0d18b3cf07
52404b9c5d7fc487ed3f0e49d2c37d06e06b9cfeb10f9660d4b8099e5c1a9cac
f1599a1ced833d95a54aa38a1a64113d5f0a4db3cb613ef761180cab57155699
5391977978bb9c5fee3934bed2e8c891d7c732ad7d70dc2e0c922b6c0f62344a
dd8148a28955a7753548e34b0e729c56ea96d73592aafaf4e46a61307c36a6b9

It was my try to solve Lauda Memorial Puzzle, as "All of the information required to reconstruct the private key is published on the blockchain". But it was not as easy ;-)


legendary
Activity: 3472
Merit: 10611
What I don't understand is why don't they use the hash function millions of times to make their brain wallet even more secure?
It has to do with the time consumption. When the user enters a password they want to get their address as soon as possible, if you increase the number of hashes it would consume more time hence ruins user experience. And considering that brainwallets that I've seen are browser based they are even more limited to the amount of computing power they can use so the process could be even slower than it could be.

Besides, brainwallets aren't serious projects and weren't designed for security at first. Some tried to replace SHA256 with stronger algorithms such as scrypt but such projects don't gain any popularity since the idea of brainwallet itself is flawed.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
I'm pretty sure people still use them. Even better if they use something they use much heavier encryption (such as WarpWallet).
The idea of simply remembering your money is appealing to me (but I don't dare risk it for a large amount).
What I don't understand is why don't they use the hash function millions of times to make their brain wallet even more secure? We all know that just hashing a subjectively difficult passphrase isn't as much secure as it is to generate an entropy randomly. There wouldn't be such thread if brain wallet users hashed more than once, because, apparently, some passphrases aren't as strong as they thought.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I came across my simple mini key generator tonight, and I'm having another play with it.

The naive version uses random() and outputs about 8000 valid keys per second on a single core of an i7-3960X.
I did that for a while a couple of years back (with a python generator), trying to create vanity addresses with mini private key, but I had to search through large output files and the output was far too slow to find anything meaningful.

One thing is sure in my opinion - brain wallets belongs to past.
I'm pretty sure people still use them. Even better if they use something they use much heavier encryption (such as WarpWallet).
The idea of simply remembering your money is appealing to me (but I don't dare risk it for a large amount).
legendary
Activity: 2268
Merit: 1092
Seriously, how stupid is someone to use SHA256("")

More likely to be a programming error. I recall suggesting a few years ago in this thread that something like (pseudoish code) assert(key != 0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855) would have avoided this particular issue.
hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
So true. It's rare to see such large amounts get likely lost to those "snatchers". On 2022-07-27 some (not so smart) entity sent 0.9BTC to the "empty string" brainwallet in block 746835 (tx 37e166a1e52e96bcfe535738082e328ef8db56aafd6945d9cad6f2afdb34b4a4) which was very likely claimed by some of those bots who constantly monitor mempool transactions for such brainwallet transactions.

Seriously, how stupid is someone to use SHA256("") or SHA256 of any publicly available data, block hashes included, as private key and believe this is in any way "smart"?
copper member
Activity: 1652
Merit: 1901
Amazon Prime Member #7
The fact that the private key is derived using SHA-256 does not make it a brain wallet. A HD wallet seed comes from the SHA-512 hash of the BIP-39 seed phrase. Does that make an HD wallet a brain wallet? A brain wallet is derived from something that can be memorized. That is why it is called a "brain" wallet. The mini-key is a random sequence and is not intended to be memorized so it is not basically a SHA-256 brain wallet.

What about "my private key is generated from 111th block's hash in bitcoin blockchain"? You do not remember exact value which is used to produce private key, but you remember the way how to find it - exactly like "my phrase is second verse of song X".
One thing is sure in my opinion - brain wallets belongs to past.
Using a private key that is derived from in a similar manner is very risky, and is very likely to result in tears. There are many people who are monitoring a large scope of potential addresses for transactions being sent to them, and some of these people look to bitcoin-related forums to increase the scope of these addresses. You can call it a brain wallet if you want, but my advice is to not do it.
legendary
Activity: 952
Merit: 1385
The fact that the private key is derived using SHA-256 does not make it a brain wallet. A HD wallet seed comes from the SHA-512 hash of the BIP-39 seed phrase. Does that make an HD wallet a brain wallet? A brain wallet is derived from something that can be memorized. That is why it is called a "brain" wallet. The mini-key is a random sequence and is not intended to be memorized so it is not basically a SHA-256 brain wallet.

What about "my private key is generated from 111th block's hash in bitcoin blockchain"? You do not remember exact value which is used to produce private key, but you remember the way how to find it - exactly like "my phrase is second verse of song X".
One thing is sure in my opinion - brain wallets belongs to past.
copper member
Activity: 1652
Merit: 1901
Amazon Prime Member #7
I thought the mini private key format, used for Casascius physical bitcoins should rate a mention here, because it's basically a SHA256 brainwallet... but with a randomly generated passphrase.

https://en.bitcoin.it/wiki/Mini_private_key_format

Given that the random passphrase length is 22 characters (early version) or 30 characters, the chances of brute forcing it are still virtually nil, but technically, it is less secure than a standard key, in particular because 99%+ of the tries can be discarded after the first SHA256 hash.

I came across my simple mini key generator tonight, and I'm having another play with it.

The naive version uses random() and outputs about 8000 valid keys per second on a single core of an i7-3960X.

I updated it to use the xoshiro256** PRNG, and the speed increases to around 13000 valid keys per second.

Because the generation process requires that the first byte of the candidate hash be '00', on average only 1/256 candidates will be valid, so it's really testing about 3.3 million keys per second.

It's still a massive search space (58^30?), even for a SHA256 brainwallet, and prematurely discarding 255 out of 256 candidates does not reduce the search space... it just makes searching faster. Plus, how many Casascius coins were ever created, and how many would still be funded? So this is really just a curiosity.

The reason why brain wallets are insecure is that they are typically generated in ways that are not truly random. Generating a brain wallet using a random function will not have this problem.

For example, if a brain wallet is a phrase that is found in literature, there are a very limited number of phrases in literature, and the number of candidate brain wallets are many orders of magnitude less than the number of potential private keys.
legendary
Activity: 4466
Merit: 3391
I thought the mini private key format, used for Casascius physical bitcoins should rate a mention here, because it's basically a SHA256 brainwallet... but with a randomly generated passphrase.
...
...
The private key is simply the SHA256 hash of the string, like a brainwallet.

The fact that the private key is derived using SHA-256 does not make it a brain wallet. A HD wallet seed comes from the SHA-512 hash of the BIP-39 seed phrase. Does that make an HD wallet a brain wallet? A brain wallet is derived from something that can be memorized. That is why it is called a "brain" wallet. The mini-key is a random sequence and is not intended to be memorized so it is not basically a SHA-256 brain wallet.

Because the generation process requires that the first byte of the candidate hash be '00', on average only 1/256 candidates will be valid, so it's really testing about 3.3 million keys per second.

Another minor correction: The hash of the string concatenated with a '?' must have a first byte of 0, and not the hash of the string itself. It does reduce the number of keys that must be checked as you noted, but the derived private key itself does not always begin with a 0-byte.
Pages:
Jump to:
© 2020, Bitcointalksearch.org