Bitcoin Forum
May 21, 2024, 02:24:18 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 [2]
21  Bitcoin / Development & Technical Discussion / Re: What if somebody makes an ASIC to crack SHA-256 hashes with Brute force? on: February 19, 2015, 01:46:15 PM
Maybe I was not clear enough.

By "cracking hashes" or "destroying Bitcoin from the inside" I mean... guessing all or as many as possible Bitcoin private keys out there. (And therefore unlocking all addresses out there, including, for example, hacking into Satoshi addresses)

I don't understand exactly how mining works but I assume it generates something different than private keys?

You cannot use a miner to crack Private Keys, because to crack private keys you have to have an input string that changes over iterations, but mining ASICs are not designed in this way... right?

So based on this, my question is, what if someone designs an ASIC specifically to crack Bitcoin Private Keys? Is this even possible?

We have a new trend rising, of quantum computing, if someone is able to combine quantum computing in an ASIC way, this may generate much much more than 1 TH/s... like 1 Million TH/s or even more.

But if you are telling that people can use miners to crack Bitcoin Private Keys, then my question is different: How long until everything falls apart?

If this were possible somebody would have already done it and Bitcoin would be dead. So you probably want to know why it's not possible. And by not possible I mean extremely extremely unlikely.

Mining (sha256 hash operation) has nothing to do with private/public keys calculations (an ECDSA operation). So 1THs miners cannot try 1 trillion private keys each second. But even if they could it would take him literally from the beginning of time until now (since the Big Bang) to crack one single Bitcoin address.

http://bitcoin.stackexchange.com/questions/2847/how-long-would-it-take-a-large-computer-to-crack-a-private-key

So even if you had a million of these machine (that by the way do not exist yet) it would still take you a dozen or so million years.

Ah... so miners cannot use their miners for private key generation. That gives us more time Smiley

Great, but let us consider this:

Lets say someone makes a device able to generate 1 TH/s of Bitcoin Private keys, is this possible with current technology?

How much different are ECDSA operations from the Mining operations in terms of CPU power?

assuming that this is currently possible, it leverages the basic Private Key generation by TRILLIONS, then to crack all Bitcoin Private Keys in 1 second (Yes in one second) it would just required 4 evolution at the same rate of 1 Trillion times.

Lets assume, currently there is the possibility to generate 1 Private Key TeraHashes per second (ECDSA operations)

This is an evolution of 1 Trillion times since Bitcoin is out there.

If we follow the same rate of evolution:

2009 to 2015... Hash Generation evolution / Second: +1 Trillion Times (1000000000000)
2015 to 2021... Hash Generation evolution / Second: +1 Trillion Times (1000000000000 x 1000000000000)
2021 to 2027... Hash Generation evolution / Second: +1 Trillion Times (1000000000000 x 1000000000000 x 1000000000000)
2027 to 2033... Hash Generation evolution / Second: +1 Trillion Times (1000000000000 x 1000000000000 x 1000000000000 x 1000000000000)

According to this thread here, there are 2^160 possible addresses:

https://bitcointalk.org/index.php?topic=24268.0

So if we divide 2^160 with 1000000000000^4 we get about 1 second... (if I'm not messing up the calculations somehow Cheesy)

So, you see my concern? and this is to generate all possible private keys in 1 SECOND.

Maybe I should ask like this: with current available technology (Considering ASICs and Current Quantum Computing), whats the max Bitcoin Private keys mankind is able to generate per second with ONE central unit of processing?

If we know this number, we may know exactly how much time we have left.
22  Bitcoin / Development & Technical Discussion / Re: What if somebody makes an ASIC to crack SHA-256 hashes with Brute force? on: February 19, 2015, 01:11:13 PM
Maybe I was not clear enough.

..., then my question is different: How long until everything falls apart?

Since you are new here, maybe you haven't seen this:

[img]

Cheesy nice pic.

However, I'm not influenced by soft sentences and big pictures, I need to have solid proofs to feel safe.

A normal CPU out there, running at 10% its max speed is able to generate between 1 to 10 Hashes per second. (at least it was so with some tests I made some time ago, but it can take a bit more with some performance enhancements)

If you consider an available miner on the market, they are already able to generate 1 TeraHashes PER Second, that already counting with all calculations and everything.

Basically multiplies a basic computer power by TRILLIONS of times and all of this in just 6 years.

So I think its time for us (bitcoiners) to start worrying about the security of our addresses.

Thats why I'm asking these questions, can the TH/s capabilities used by ASIC miners be used to generate Bitcoin private Keys?

If yes, we may be running out of time and Bitcoin developers will probably have to update the Bitcoin hashing very soon and this would probably be bad news for the market.

If no, we may have a bit more time, but with quantum computing on the rise we may have to think about this in few years.

Just consider that Satoshi lost his private keys and has no access to this addresses and someone is able to crack his addresses, Bitcoin will die the next day.

I hope he still has access to his addresses and is alive when the Bitcoin developers have to update the Bitcoin hashing.... so he can still transfer his bitcoins to a new generation address.
23  Bitcoin / Development & Technical Discussion / Re: What if somebody makes an ASIC to crack SHA-256 hashes with Brute force? on: February 19, 2015, 12:14:59 PM
Maybe I was not clear enough.

By "cracking hashes" or "destroying Bitcoin from the inside" I mean... guessing all or as many as possible Bitcoin private keys out there. (And therefore unlocking all addresses out there, including, for example, hacking into Satoshi addresses)

I don't understand exactly how mining works but I assume it generates something different than private keys?

You cannot use a miner to crack Private Keys, because to crack private keys you have to have an input string that changes over iterations, but mining ASICs are not designed in this way... right?

So based on this, my question is, what if someone designs an ASIC specifically to crack Bitcoin Private Keys? Is this even possible?

We have a new trend rising, of quantum computing, if someone is able to combine quantum computing in an ASIC way, this may generate much much more than 1 TH/s... like 1 Million TH/s or even more.

But if you are telling that people can use miners to crack Bitcoin Private Keys, then my question is different: How long until everything falls apart?
24  Bitcoin / Development & Technical Discussion / What if somebody makes an ASIC to crack SHA-256 hashes with Brute force? on: February 19, 2015, 09:34:10 AM
Maybe its a noob question, but I woke up this morning wondering: what if somebody makes an ASIC to instead of mining, destroy Bitcoin from the inside...?

There are ASICs out there with capabilities of TH/s, if someone applies this to hash cracking, it becomes a bit dangerous, no?

That would be 1000000000000 hash cracking attempts per second.

Your thoughts?
25  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 11:03:14 PM
But can you guys just confirm if what I said in the other post is correct?
Quote
so like this I will be able to fetch all Bitcoin used addresses EVER on the mainnet, right?
Is this assumption correct?

If you create a well written process to get all blocks, and process all transactions from all blocks, you should be able to fetch all output scripts ever used on the mainnet.  Note that most of the output scripts will be addresses, but many won't be.  It will be up to you to decide how you want to handle output scripts that do not represent bitcoin addresses.

Ok then all is clear for now, I will put some code to check the length of the string or something.

Thanks to all
26  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 07:23:55 PM
Listen to Danny he knows his stuff.  I would also add and this is a little cliche but to avoid wasting a lot of time you really need to understand how bitcoin works.  So try to find and read any articles that talk about Bitcoin under the hood as well as the developer resources on the bitcoin homepage.

A couple hints:
1) The blockchain doesn't record balances.
2) The blockchain doesn't record addresses only inputs and outputs.
3) Inputs always reference a previously unspent output.
4) Outputs are not addresses they are scripts.  The most common script is Pay2PubkeyHash but it isn't the only type of script.
5) Transactions "spend" discrete outputs not a specific value.
6) Outputs are either spent or unspent.  Unspent outputs can be "spent" in a new transaction.

If you don't have a good understanding of how Bitcoin actually works then you will probably end up just running around in circles. 

The historical blockchain builds the UTXO set.  To build the UTXO you start from block 1 (the output in the genesis block is unspenable) and for each block you add to the UTXO all the new txn outputs and you remove from the UTXO all those outputs referenced in txn inputs.  When you get to the current block you will have the current UTXO.  Note this process assumes the blockchain is already validated which is a safe assumption if you are pulling blocks from bitcoind.

The UTXO set has all the information you need.  When someone say address x has a balance of 1.234 BTC what they really mean is that the UTXO contains one or more unspent outputs which have a combined value of 1.234 BTC.





Yes I listen to Danny, his advices were very helpful... you guys really know about this stuff.

But can you guys just confirm if what I said in the other post is correct?

Quote

All I need now is to set a Bitcoin server and send the commands via http and I will be able to start doing tons of queries.

I didn't test yet the Balance calculations, but for now I will just fetch all addresses that are in the "addresses" part [in the getrawtransaction or decoderawtransaction json responses],
like this I'm able to fetch all addresses that were ever in the blockchain, which means that they either have BTCs or had BTCs in the past,

so like this I will be able to fetch all Bitcoin used addresses EVER on the mainnet, right?

Is this assumption correct?
27  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 07:12:48 PM
- snip -

Nothing in concrete yet, but my main objective is to prove how secure a Bitcoin Address is and eventually to lunch a website with lots of statistics about Bitcoin addresses like how many are there, which balances they have from top to down, etc...

For now I'm just playing around and if I get all what I'm thinking right, then I will think about the website.
28  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 05:50:23 PM
- porn -

Sounds cool, I will have a look at it later. Thanks


Ok, checked this, looks like it works Smiley

@DannyHamilton I checked point 6 from nuno12345, it also works if we set the second parameter as 1, it spits out directly the json code.

Great, I think this is the best way to do what I want for now.

All I need now is to set a Bitcoin server and send the commands via http and I will be able to start doing tons of queries.

I didn't test yet the Balance calculations, but for now I will just fetch all addresses that are in the "addresses" part, like this I'm able to fetch all addresses that were ever in the blockchain, which means that they either have BTCs or had BTCs in the past, so like this I will be able to fetch all Bitcoin used addresses EVER on the mainnet, right?

I will start coding it soon... wondering how the speed of all of this will be.

Thanks guys
29  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 03:23:53 PM
- porn -

Sounds cool, I will have a look at it later. Thanks
30  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 02:26:39 PM
First approach.
1-Setup a blockchain explorer like abe.
2-Search trough the sql to get all available addresses, if needed convert the hash160 to address, add them to sql.
3-Run a query to delete duplicates.
4-Query every address using abe's api addressbalance.
5-If balance > desired_amount drop the address from the new sql table.
6-Done.

Note: This may take some time, better to add a sleep there so it wont crash abe.

Second approach.
1-Setup bitcoind.
2-Set txindex=1 and rescan the blockchain.
3-Get latest block with getblockcount.
4-Use getblockhash block_number to get it's hash.
5-Use getblock hash to get that block transactions.
6-Parse every transaction with getrawtransaction hash 1 (1 for verbose).
7-Get the vout address of each transaction and add to sql.
8-Run a query to delete duplicates.
9-Use blockchain.info api to get each address balance.
10-If balance > desired_amount drop the address from the new sql table.
11-Done.

Note: This WILL take some time, better add a sleep there and go to sleep for like 1 week.

Hope this helps Smiley

You almost made me cum with your second option, that would be perfect, I would just set up a Bitcoin server with JSON-RPC... but when I got to point 9 I lost my fire Cheesy

"9-Use blockchain.info api to get each address balance."

That would require millions of requests to the blockchain.info API... they have daily limits and stuff.

Thanks for the suggestions, I will investigate option 1.

Btw isn't there a way to calculate the Balance somehow with your second option? (without doing blockchain.info API requests)
31  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 02:20:34 PM
I didn't read it yet, but I think that you should start with the (free) book Blockchain Programming in C#
I guess that you'll be able (after some steps) to reach your goal.

https://bitcointalk.org/index.php?topic=926087.0

What a nice book to read at night, thanks
32  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 01:31:25 PM
btw, just for info if somebody is also looking for this kind of info, I found this post here where all address until 3rd January 2014 are available:

https://bitcointalk.org/index.php?topic=267618.msg4289057#msg4289057

Some other useful instructions are also included in that thread.

Any ideas on how the find the actual list?

The list changes continuously, so as soon as you started running any such query, it would already be incorrect.

It can help to limit your query to transactions that are included in the blockchain.  At least then the list will only change an average of every 10 minutes.

That being said, the blockchain does not store balances.  It ONLY stores transactions.  Every transaction since the beginning of Bitcoin.  To get the specific information you are looking for, you can try looking for tools that will provide you the current UTXO set (unspent transaction output set). Such a tool would start at the beginning of the blockchain and read through every transaction, removing outputs from the tool's list as they are spent and adding outputs as they are created.  When it gets to the end of the blockchain, you should have a complete list of all UTXO.  Keep in mind that bitcoins aren't always sent to addresses, so some of the outputs in the UTXO won't be to addresses.  You might be better off looking for a list of unique output scripts in the set of all UTXO.

Here's someone that wrote there own UTXO parser.  Perhaps if you look around you can find a similar free open source tool that you can use:

In validating a UTXO parser I started looking at various outputs which are . . .
- snip -

Yes, I know that the list changes all the time, but an up to date list is enough to have a actual estimation.

I'm investigating some parsers, but I'm sure to do all of this its not just clicking the Build button, there will be issues on the way to troubleshoot and so on.

I will do that later, but for now I would just need an actual list. That would make my day Smiley

33  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 12:15:34 PM
btw, just for info if somebody is also looking for this kind of info, I found this post here where all address until 3rd January 2014 are available:

https://bitcointalk.org/index.php?topic=267618.msg4289057#msg4289057

Some other useful instructions are also included in that thread.

Any ideas on how the find the actual list?
34  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 12:09:16 PM
If searching and coding didn't get you there, your searching and coding skills need some improvement  Grin

Look here for some existing discussion on a very similar requirement:
https://bitcointalk.org/index.php?topic=762445.0
(found it using G with the search phrase "bitcoin find all addresses with positive balance", it isn't really that hard...)

Onkel Paul

Yea, I stumbled upon it before, but problem is that I'm a C# guy, every time I need to compile other programming languages its always an odyssey...

And I'm not even a Linux user.. so I think I will have to start getting into Linux.

Also, when you have to build 50 libraries, plus troubleshoot 200 more compilation errors, its always a pain in the ass to have the motivation to go through it all.

But come on guys, Bitcoin is already 6 years old and to get this basic info is so complex?

There are lots of lazy people out there... Wink

Making this kind of info accessible is part of the maturity of Bitcoin, if nothing like this is available yet, I will take care of building a website where this info will be accessible to everybody out there.
35  Bitcoin / Development & Technical Discussion / Re: Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 11:50:10 AM
The system itself doesn't have balances in any direct way, so thats one reason it's not as simple as you might guess.

What precisely are you trying to accomplish?

"What precisely are you trying to accomplish?"

I work for the NSA and I need to be able to get this list ASAP, we are trying to crack Bitcoin.

Just kidding Cheesy I just got into Bitcoin technically recently and I'm trying to figure out how everything works...

Basically what I'm searching for is for a way to query the blockchain locally.

But I find it very difficult to find a way, I use the blockchain.info API, but when you want to make millions of requests the API is obsolete since there are requests limits and obviously its slow.

I would like to do complex queries, but if I am just able to get all the current addresses with a balance > 0 I will be happy enough.

Maybe this info is available somewhere?

Any ideas?

36  Bitcoin / Development & Technical Discussion / Get all Bitcoin Addresses with balance >= 0.00000001 on: February 18, 2015, 11:13:05 AM
Hi everyone,

How can I get a list of all Bitcoin addresses with the current balance >= 0.00000001?

I already searched for many ways, including coding, but I get nowhere.

Any ideas?

Thanks
Pages: « 1 [2]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!