Bitcoin Forum
May 09, 2016, 01:04:11 AM *
News: New! Latest stable version of Bitcoin Core: 0.12.1 [Torrent]
 
  Home Help Search Donate Login Register  
  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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ... 114 »
901  Bitcoin / Development & Technical Discussion / Re: Pulling patches for version 0.6 on: December 27, 2011, 10:32:03 PM
Quote from: ThiagoCMC
There are rumors that the Bitcoin network will split in two, one side, people using 0.5.1, 0.4.0.... On the other side, people using 0.6.0...
I've been working hard to make sure there will be no blockchain split, and I've convinced myself I've thought through all the "old/new client sending transactions to an old/new miner" cases.

The only case where an old miner could be split off the network is if they are mining non-standard transactions (which means they've modified their mining code) and do not upgrade. If you are in that situation, then you should either stop adding transactions containing OP_NOP1 into your miner's memory pool or upgrade to interpret OP_NOP1 as OP_EVAL.

But I've said it before and I'll say it again:  don't trust me. I make mistakes. Two serious bugs in my OP_EVAL/multisignature code have been found (and fixed) in the last week.  Version 0.6 will have at least a month of release candidate testing.

I still firmly believe the benefits of the new 0.6 features far outweigh the risks.  Please help minimize the risks; review code if you can, run release candidate on the testnet and try to break them, read the BIPS and try to think of ways bad people might use them to do bad things. Review the contingency plans and think about how they could be improved or if you could help when (when, not if) vulnerabilities are found.

902  Bitcoin / Development & Technical Discussion / IMPORTANT: if you are running latest git HEAD... on: December 25, 2011, 04:04:16 PM
makomk reported a remote vulnerability that I pulled into the master bitcoin/bitcoin tree on December 20. If you are running git-HEAD code on the production network you should pull the latest code to get the bug fixed.

This affects only anybody who has pulled and compiled their own bitcoind/bitcoin-qt from the source tree in the last 5 days.

Gory details:

I made a mistake.  I refactored the ConnectInputs() function into two pieces (FetchInputs() and ConnectInputs()), and should have duplicated a check in ConnectInputs for an out-of-range previous-transaction-output in the FetchInputs() method.  The result was a new method I wrote to help prevent a possible OP_EVAL-related denial-of-service attack (AreInputsStandard()) could crash with an out-of-bounds memory access if given an invalid transaction.

The bug-fix puts a check in FetchInputs and an assertion in AreInputsStandard. This does not affect the back-ported "mining only" code I wrote that some miners and pools have started using.

The good news is this was found and reported before binaries with the vulnerability were released; the bad news is this was not found before the code was pulled and could have made it into the next release if makomk had not been testing some unrelated code.

Before releasing 0.6, I would like to have an "intelligent, bitcoin-specific fuzzing tool" that automatically finds this type of bug that we can run before every release. If anybody already has one, please speak up!
903  Bitcoin / Development & Technical Discussion / Re: The way how to double protection bitcoin network against 51% attack on: December 24, 2011, 04:56:06 PM
The most important metric would be when the block was received.  If I receive a block that tries to replace a block 6 or 10 or 100 blocks ago on the chain I already know about, and I have no reason to believe I've been segregated from the network at large, I'm not going to vouch for it.

Yes.

The times the blocks are announced also matters; if my node suddenly sees a longer 10-block chain it has never seen before, then either it is a 51% attack or the network was split and just came back together.

If the network was split 10 blocks ago then I should see that those 10 blocks took twice as long to create as expected.

Rating blocks is a neat idea; I can think of several potential criteria, there are probably more we could come up with:

  • Did I first see the block announcement long after the block's timestamp?
  • Does it look like it is part of a network split?  (two chains that are both producing blocks more slowly than usual)
  • Are they part of a sub-chain with a 'normal' distribution of blocks from the well-known mining pools? (an attacker's chain won't have blocks from ANY of the mining pools)
  • Does it contain any double-spends that conflict with alternate chains I know about?
  • Do the transactions in it look 'normal'?  (reasonable number of transactions, reasonable amounts)

Somebody should simulate some 51% attacks and network splits and try out various detection algorithms.

And maybe see if it would be practical to have a checkpoint lock-in rule of something like "auto-checkpoint any AAA-rated block once it is 4-deep in the best chain". I don't think that should be built-in to bitcoind, but a little side program that monitored the block chain and the pools and told bitcoind to add a checkpoint once an hour or so would be pretty spiffy...

904  Bitcoin / Development & Technical Discussion / Re: The way how to double protection bitcoin network against 51% attack on: December 24, 2011, 03:16:56 AM
I was working on user-defined checkpoints today-- command-line/bitcoin.conf (and maybe a RPC call) that just says "Add this block hash at this height as a checkpoint."

You and your 10 trusted friends could then run a little program that coordinated automatic lock-ins whenever you like...
905  Bitcoin / Development & Technical Discussion / getblock / getblockhash RPC commands on: December 24, 2011, 03:09:31 AM
https://github.com/bitcoin/bitcoin/pull/727 :

This is designed to work nicely with 'gettransaction' and new 'blockhash' information returned in listtransactions; it is modified from the 'getblock' that was in my monitorreceived patch.

getblockhash <index>
Returns hash of block in best-block-chain at <index>.

e.g. getblockhash 0 returns 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
(genesis block hash)

getblock <hash>
Returns details of a block with given block-hash.

e.g. ./bitcoind getblock $(./bitcoind getblockhash 0) returns the genesis block:

Code:
{
  "hash" : "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
  "blockcount" : 0,
  "version" : 1,
  "merkleroot" : "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
  "time" : 1231006505,
  "nonce" : 2083236893,
  "difficulty" : 1.00000000,
  "tx" : [
    "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
  ],
  "hashnext" : "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048"
}
906  Bitcoin / Development & Technical Discussion / Re: Pulling patches for version 0.6 on: December 24, 2011, 03:07:52 AM
Is that gavinandresen/bitcoin-git or bitcoin/bitcoin? If I also pull the anon-ish 'coin control' is that likely to interfere with 0.6 testing? How and where would you prefer test feedback?

bitcoin/bitcoin is the 0.6 tree

I haven't done a code review of the anon-ish coin control, so I don't know if it will mess up 0.6 testing; it might interfere with the multisignature transaction changes.

The github issues tracker is the best to report any bugs you find, for general "it sucks" or "I love it" or "can you make this new RPC command to this" the best place is either IRC chat or right here.
907  Alternate cryptocurrencies / Altcoin Discussion / Innovation in the alt chains on: December 23, 2011, 03:16:44 PM
So...

I've been mostly quiet about the alternative block chains, but I have to say I'm a little disappointed.

I had hoped that they would be full of interesting experiments with different transaction types or smart contracts or different fee-setting algorithms or maybe some innovative scheme for instant transactions.

Instead, it seems like you've been too busy dealing with low hashrates and transaction-spam attacks, and have been spending all of your time re-inventing a lot of infrastructure (exchanges and block explorers and mining pool software and etc.).

I'm curious to hear what other people think:  will altchain innovation pick up in 2012?  Am I irrationally biased and just not seeing the awesome power of (insert-your-favorite-altchain-feature-here)?

I think there's an interesting dynamic, where the larger and more popular an altchain gets, the harder it is to do things like schedule a block-chain splitting-change (because you have to get all your exchanges and mining pools and etc. to upgrade). I wonder if that means the experimentation will only happen with brand-new blockchains, and if a blockchain will only really take off it the inventor manages to "get it 99% right" the very first time...
908  Alternate cryptocurrencies / Altcoin Discussion / Re: [ANNOUNCE] Ixcoin 0.3.24.3 - merged mining, timetravel fix (compulsory upgrade) on: December 23, 2011, 03:04:46 PM
Is it wise to download any of the binaries around here, unless you audit all the code yourself before compiling it you should not be running any of it with that concern...

Run them inside a virtual machine that you don't use anything else for and you're almost certainly safe.
909  Bitcoin / Pools / Re: Mining pool support for multisignature transactions on: December 23, 2011, 03:54:06 AM
OP_EVAL, and OP_EVAL-bitcoin-address support were pulled into the master git branch two days ago; the plan is still to evaluate miner support on January 15, and if a majority of miners are supporting it (looks like that won't be a problem), to roll out version 0.6 with the low-level support fully enabled.

And Luke-Jr is correct: sending coins into an OP_EVAL transaction is perfectly safe, but until February 1 it will be unsafe to spend them.
910  Bitcoin / Development & Technical Discussion / Re: Pulling patches for version 0.6 on: December 22, 2011, 01:40:34 PM
BIP 11/12/13 support is Core functionality only for 0.6-- the network needs to support the new transaction types BEFORE users start using them.

911  Bitcoin / Development & Technical Discussion / Re: Use the CLI w/ encryption? Protect your passphrase with bash's HISTIGNORE on: December 21, 2011, 09:08:17 PM
Having an asker interface in bitcoind would obviously be nice...
Use:
 contrib/wallettools/walletunlock.py
and
 contrib/wallettools/walletchangepass.py

912  Bitcoin / Development & Technical Discussion / Re: couple questions about hashing - need help on: December 21, 2011, 08:26:47 PM
The coinbase must be between 2 and 100 bytes long and must be valid when deserialized as a "CScript", but may contain arbitrary data.

Block 158479 looks like it is doing merged mining.
The '07456c6967697573' at the start is the string 'Eligius'.
The stuff in the middle looks like hashes for other block chains.
And the '074f505f4556414c' at the endis is the string 'OP_EVAL'.
913  Bitcoin / Legal / Re: The TD F 90-22.1 Form for Bitcoin on: December 21, 2011, 07:10:33 PM
No, I bet nobody knows if or how TD F 90-22.1 applies to Bitcoin.

I am not a lawyer, but I bet the IRS would say that you should report any funds greater than $10,000 held by non-US bitcoin exchanges or wallet services.

I don't know what the IRS would say about Bitcoins held on a server that you control but that happens to be located outside the US, or if it would matter if they were also held on your computer or printed out and stored in a safe deposit box somewhere in Kentucky.
914  Bitcoin / Development & Technical Discussion / Pulling patches for version 0.6 on: December 21, 2011, 03:58:14 PM
Reposting from email to bitcoin-development mailing list:

I've been busy pulling patches into git HEAD for a Bitcoin version 0.6, with the goal of having a Release Candidate 1 out in a couple of weeks.

So if you've done all your Christmas shopping and have time to help test, code review, etc. now would be the time.

Major changes pulled so far:

Implement BIP 11/12/13:
  "Standard" multisignature transactions
  "Standard" OP_EVAL transactions
  OP_EVAL bitcoin addresses
Implement BIP 14 (separate protocol from client version)
Private key import/export (RPC commands, not GUI)
New DNS seeds
915  Bitcoin / Development & Technical Discussion / Re: My suggestions on how to make a decent client on: December 21, 2011, 03:52:40 PM
The problem is, the bitcoin client SUCKS. It sucked 6 months ago, it sucks even more today with version 5 (congratulations, you managed to make it suckier... the impossible made possible)

If I thought that downloading and installing software onto your computer is the way to go then I'd be helping make it better.

I don't. I think 90-something-percent of future Bitcoin users will be using it on an iPad or mobile phone or on their computer in a web browser.

I'm sorry you think 0.5 is worse than 0.4, but you're in the (vocal) minority. Nobody stepped up to support the 0.4 wxWidgets-based GUI, and we've got several people working on the 0.5 Qt-based GUI, so I'm confident switching was the right decision.
916  Other / Politics & Society / Re: Seriously, though, how would a libertarian society address global warming? on: December 21, 2011, 01:31:44 AM
You know what? Screw global warming for now. How would a libertarian society handle the current level of water poisoning? Fish are dying out, more and more beaches fill with algae, rivers are full of waste (from detergents to artificial manure) etc. None of these things visibly influence businesses that make the mess. How free should this market stay?

The standard answer is if the river is owned, then the owner(s) of the river will have the right incentives to keep it unpolluted.  See, for example: http://www.cato.org/pubs/journal/cj1n2-6.html

If you care about clean rivers, then buy them (or donate money to an organization that buys them; the Nature Conservancy is one of my favorite charities).

It is the Chinese government's river, not the free market's, why are they tolerating all the pollution?

Global Warming and air pollution is a stickier problem because nobody owns the climate or the air we breathe, and nobody CAN own them. Personally, I think we do actually need good government for some things, which is why I describe myself as "mostly libertarian".

And if I were King, I think I'd implement the Cato Institute's suggestion and give all of our National Parks and public wilderness to private environmental organizations to take care of (or sell, if they decided they could put the money to better use for something else).
917  Bitcoin / Development & Technical Discussion / Re: Is a more efficient coin possible (Ben Laurie)? on: December 21, 2011, 01:02:29 AM
My reaction to Ben Laurie's papers:

Incentives matter.


Yes, it is true that we cannot be absolutely, positively safe against a 51% attack unless we are absolutely certain 50% or more of the world's entire computing resources are dedicated to Bitcoin mining.

So what?

The natural incentive for somebody with lots of hashing power is to profit by playing by the rules, NOT to cheat.

And if you assume that your attacker is Rich and Powerful but Economically Irrational, then any alternative system that you propose will almost certainly be at least as vulnerable as Bitcoin. Create a system that requires 500 semi-trusted "mintettes" that all agree on a transaction log and then imagine 251 Special Agents infiltrating and corrupting the organizations that run those mintettes.

Increase the number to 40,000 mintettes to make it harder... and you've just re-invented Bitcoin.
918  Bitcoin / Development & Technical Discussion / Re: Pywallet: manage your wallets/addresses/keys/tx's on: December 21, 2011, 12:38:40 AM
RE: documentation about key encryption:

See the comment at the top of crypter.h:

Code:
Private key encryption is done based on a CMasterKey,                                                                                                   
which holds a salt and random encryption key.                                                                                                           
                                                                                                                                                       
CMasterKeys are encrypted using AES-256-CBC using a key                                                                                                 
derived using derivation method nDerivationMethod                                                                                                       
(0 == EVP_sha512()) and derivation iterations nDeriveIterations.                                                                                       
vchOtherDerivationParameters is provided for alternative algorithms                                                                                     
which may require more parameters (such as scrypt).                                                                                                     
                                                                                                                                                       
Wallet Private Keys are then encrypted using AES-256-CBC                                                                                               
with the double-sha256 of the public key as the IV, and the                                                                                             
master key's key as the encryption key (see keystore.[ch]).                                                                                             

The way I think of it:  Take the passphrase and salt and SHA512-hash them nDerivationIterations times.  That gets you an encryption key and initialization vector.

Use those to AES-256-decrypt the encrypted_key master key.

Now you can AES-256-decrypt the private keys, using the master key as the key and the (double-sha256-hash) PUBLIC part of the keypair as the initialization vector.

The "SHA-512-hash them a bunch of times" is actually done by the OpenSSL EVP_BytesToKey routine-- documentation for that is here: http://www.openssl.org/docs/crypto/EVP_BytesToKey.html


919  Bitcoin / Bitcoin Discussion / Re: Bitcoin-Qt, bitcoind version 0.5.1 released on: December 18, 2011, 06:18:31 PM
i hadn't backed up my wallet for a while and just noticed that there is now a wallet.dat and a wallet.dat.rewrite in my Bitcoin folder.  which is the real private key wallet that needs to be backed up?

wallet.dat

wallet.dat.rewrite SHOULD be automatically removed as part of the upgrade-to-0.5 process; I don't know why it isn't in some cases-- and, frankly, I would much rather spend time getting really, truly secure wallet solutions working.

RE: bitcoin version 0.4 starting up on your machine:

You should run the old bitcoin, un-check the "start on windows system startup", then exit.
Then remove it using the Add/Remove Programs control panel doo-hickey (did that move again in Vista?).  You should see both "bitcoin" (the old 0.4) and "bitcoin-qt" (the new 0.5).

... all of which is, I know, annoying and painful.  Again, frankly, I'm more interested in spending time on the very-highest-priority issues rather than making every beta release upgrade completely smooth in all cases.
920  Bitcoin / Development & Technical Discussion / Re: Who's in charge of the ui/qt? on: December 16, 2011, 07:22:56 PM
https://github.com/laanwj
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ... 114 »
Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!