581
|
Bitcoin / Bitcoin Discussion / Re: Is genjix's work being removed?
|
on: July 14, 2012, 12:14:48 AM
|
that's an interesting perspective. was it your view all along that the 'mainline' client was actually just a proof-of-concept, and that the client side of things would eventually be taken over by third parties?
Sure-- I've always liked the BitTorrent/W3C model because it is less centralized (lots of different implementations of the protocol, as opposed to a project like Perl, where essentially everybody runs the same code). I consider Satoshi's code the "reference" client, though, not "proof-of-concept", since there is no formal specification. (I've written a formal specification, and I think having a working reference implementation is better than An Officially Blessed Pile of Paper).
|
|
|
583
|
Bitcoin / Development & Technical Discussion / Re: Trustless, instant, off-the-chain Bitcoin payments
|
on: July 13, 2012, 08:21:17 PM
|
I believe developers underestimate how transaction replacement feature is important, e.g. utilizing this proposal a business dealing with customers bitcoins wouldn't be required to hold private keys with a substantial balance and the Bitcoinica hacks (I stumbled on typing the word "hack" in plural) wouldn't have such devastating results.
Relevant recent IRC discussion: http://bitcoinstats.com/irc/bitcoin-dev/logs/2012/07/11/6#l3981048Bottom line: I think transaction replacement is important, but if we just enable it as-is then I think we open up the entire network to an easy DoS attack. And I think the incentives for miners aren't right. I think the rule for what version of a transaction will be included in blocks has to be something like "the one that pays miners most OR the one that pays miners first (if there are several with the same fee)." So I think a scheme where transaction fees are increased, or lock times are decreased, with every transaction replacement is the right way to go.
|
|
|
584
|
Bitcoin / Bitcoin Discussion / Re: Is genjix's work being removed?
|
on: July 13, 2012, 07:59:03 PM
|
wow that forum sure looks like a bureaucratic hell.
Mmm. That's why if I were King I'd fast forward to a couple years from now when there were several mature bitcoin clients and bitcoin.org would not list any directly at all (see w3c.org for an example, you won't find a "Download a Web Browser Now!" link). But I'm not King and unlike the Web there aren't a bunch of mature, well-funded bitcoin clients to choose from yet.
|
|
|
586
|
Bitcoin / Development & Technical Discussion / Re: Show Message/Counter when address pool since last backup has been depleted.
|
on: July 13, 2012, 12:54:41 AM
|
RE: 101 or 103 unused keys in the keypool: That's normal. Here's the sequence of events that causes it: + You do something that requests a new key from the keypool. Several things do that (including the 'getinfo' RPC call -- it requests a key from the keypool so it can report the keypoololdest time). + The keypool automatically adds new keys so there are always at least 100 (by default) + The something you did returns the key back to the keypool, so now there are 100+1 I tend to have 104 keys in my keypools, because I do a lot of 4-core CPU mining on testnet-in-a-box setups, and the 4 miner threads each grab a keypool key that is released when bitcoind quits. RE: better backup: good idea. However, the keypool might not survive for much longer; they're likely to be replaced by Hierarchical Deterministic Wallets (see https://en.bitcoin.it/wiki/BIP_0032 ).
|
|
|
587
|
Bitcoin / Development & Technical Discussion / Re: Using multisig (testnet)
|
on: July 12, 2012, 12:23:58 PM
|
Am I right in expecting that the address should have 0.002 coins in it?
Yes. Where can I find more information about how to spend these coins and when/how they will be spendable; or if I am wrong about this, an explanation to fill in my knowledge gap?
As Pieter said, they don't count towards your wallet balance because you don't have ALL of the private keys in your wallet. It is not clear which wallet those 1-of-2 coins belong to, since neither has exclusive control over them. So the code is conservative and doesn't add them to your balance unless you have ALL of the private keys. Is there an estimate for when multisig will be usable? Is it already usable? If it's already usable, can someone point me to the info I require to be able to use it?
The 0.7 release will have a set of RPC calls to create and sign transactions that spend from multisig inputs: see https://gist.github.com/2839617
|
|
|
590
|
Bitcoin / Development & Technical Discussion / Re: [Bug?] 2-of-3 multisig address behaves as 3-of-3
|
on: July 08, 2012, 03:01:11 AM
|
Pieter is exactly right. The current code is extremely conservative with multisig addresses, only counting them as yours if the wallet contains all the private keys.
Loosening that to considering them yours if you have enough keys to spend might happen, although I am worried that might cause vulnerabilities for applications that make the implicit assumption that if they have the key necessary to spend that means nobody else can possibly spend those coins after 6 confirmations. If it is a 1of2 multisig that wouldn't be true.
|
|
|
591
|
Bitcoin / Development & Technical Discussion / Re: Simplify Bitcoin
|
on: July 04, 2012, 02:00:39 AM
|
So how would you fix the scalability issues of BTC?
I think Bitcoin is already perfectly capable of scaling up. Here's one half-baked idea for how to do it: http://gavintech.blogspot.com/2012/07/off-chain-transactions.html (pasted below to save you a click):
The problem: is there a safe and secure way to make Bitcoin transactions without relying on the block-chain but, instead, relying on some semi-trusted third-party? If there is, then Bitcoin is more easily scalable; most transactions could happen off the block chain, with in-the-block-chain transactions happening every once in a while to "settle up" off-chain transactions. So here is the half-baked idea: Use multisignature transactions to split the ownership of some bitcoin value between a customer (lets call her Alice) and a transaction service (lets call it "Joe's UltraTransactions" -- Ultra for short). Alice deposits 100 bitcoins into her Ultra wallet, and what actually happens behind the scenes is Alice's software generates a new keypair, gets a public key from Ultra, and coins are sent into a 2-of-2 transaction. Alice withdrawing the bitcoins (getting them out of the UltraTransaction system) is the boring case-- she'd generate a transaction, sign her half, then ask Ultra to sign the other half (and there would be some sort of authentication check-- maybe Ultra sends Alice an SMS to approve the withdrawal). Now Alice wants to pay Bob 10BTC, who also happens to be an UltraTransaction customer. This is where things could get interesting. Instead of generating a block-chain transaction, Alice could just give Bob her private key. Both Alice and Bob would sign a message with the private key saying "Alice is sending 10 bitcoins to Bob; she's given him the private key that she generated." Bob would send the message to Ultra, which would send Alice an SMS to make sure she approves, and then any withdrawal involving those 10 bitcoins associated with that private key would require Bob's authorization instead of Alice's. Alice would still know the private key, but won't be able to spend what is now Bob's money (Ultra would only let her send/withdraw 90 of the 100 bitcoin tied up with that private key). Ultra is only semi-trusted; it never has the private key, so can't spend the coins without either Alice or Bob's aproval. Joe can't decide to run off with everybody's coins when the Ultra wallet is worth a few million dollars. Alice and Bob do have to trust that Ultra keeps track of who owns what accurately, and that Ultra will be around to sign it's half of the transaction when they want to withdraw some coin. And Bob has to trust that Alice did generate the private key, didn't share it with Ultra, and isn't actually Joe trying to trick him. That's quite a lot of trust required, but the ability to instantly transfer value between Ultra customers with zero Bitcoin-block-chain transaction fees might outweigh the risks. And there are probably variations on this idea that would minimize trust in Ultra (maybe there's a semi-trusted service that Ultra pays to keep offline, "use-only-if-we-go-out-of-business" backups of their private keys). And it scales beautifully; one UltraTransaction server cluster could easily handle hundreds or thousands of transactions per second, and you could imagine companies popping up all over the world, handling most transactions outside the blockchain.
|
|
|
593
|
Bitcoin / Mining speculation / Will ASIC mining destroy Bitcoin?
|
on: June 28, 2012, 06:37:32 PM
|
Several people have asked me privately via email what I think of Butterfly Labs and ASIC mining in general, so:
What do I think of ASICs hitting the "mining scene" ?
meh.
It shows that Bitcoin is considered stable enough for a company to invest a LOT of money on design and production on it, which is very good. ASICs were bound to happen if Bitcoin survived long enough.
The long-term outlook for mining is "mining will happen with very specialized hardware, in places where either electricity is free or generating lots of heat is a benefit and not a cost" (and probably both; I still think Iceland will be a big mining hot-spot eventually).
I'm not worried about Butterfly Labs deciding to take over the blockchain with their superior hashpower. They'd be idiots to do something like try to mount a 51% attack-- they don't want to kill Bitcoin, they want it to get more successful so they sell more hardware.
And if they are successful they will very quickly have competitors.
Full disclosure: I spent some of my bitcoins to pre-order their USB coffee-warmer doo-hickey. It gets cold here in the winter.
|
|
|
596
|
Bitcoin / Development & Technical Discussion / Re: 0.7 gettransaction/getblock RPC calls
|
on: June 26, 2012, 10:15:09 PM
|
I mostly work in C#, but I'm sure its true for other languages too, creating a data structure that you can deserialize an array of different types into, and easily work with is...painful.
Excellent point. I use python, which just works with different types in arrays, and C++/json_spirit, which also just works, but I can that other languages would be painful. I'll go through the raw transactions API and will replace any "Array of different types" with "Array of Objects".
|
|
|
598
|
Bitcoin / Development & Technical Discussion / Re: 0.7 gettransaction/getblock RPC calls
|
on: June 26, 2012, 01:40:10 AM
|
More discussions in IRC today prompted further tweaks to this API:
"get any transaction, even transactions that aren't in your wallet" functionality will be moved from gettransaction to a new 'getrawtransaction' API call, for two reasons: 1. It doesn't 'feel' right to mix the high-level info with the nitty-gritty low-level detail. 2. We think there's a potential for security vulnerabilities if there are existing services that assume that 'gettransaction txid' returns an error for any transaction not in the wallet (as it does in all previous releases).
So the new plan is to put the new functionality in a new RPC call:
getrawtransaction <txid> [verbose=0] : If verbose=0, returns a JSON string that is the hex-encoded, serialized transaction. That is the "machine readable, as concise as possible" use case. If verbose=1, returns a JSON object with all the nitty-gritty details, to cover all the other use cases.
Also, Jeff already has a pull request for JSON-2.0 "batch" functionality, so if you need information about all transactions in a block or all of a transaction's parent transactions you can get it with one RPC round-trip.
|
|
|
599
|
Alternate cryptocurrencies / Altcoin Discussion / Re: Nurturing AlternaCoins
|
on: June 26, 2012, 01:22:36 AM
|
Rereading my original post, I should make clear: the people I really have issues with are the people who think it is more fun to try to destroy something than to help build it. My comment about "I wish people would find more constructive things to do with their time" was not meant to be aimed not at AlternaCoin creators.
I agree that there are some benefits to the alternate chains existing; I just wonder if the costs of all the duplicate infrastructure (exchanges and pools and faucets and...) is worth the benefits.
RE: privately disclosing exploits to AlternaCoin developers: well, to be frank, I have no idea if most AlternaCoin developers can be trusted with sensitive exploit information or even who is currently supporting which chain. The danger would be somebody emailing me claiming to be the lead developer for FooCoin, I tell them about the vulnerability, and then they turn out to NOT be the lead FooCoin developer but an attacker. Or I tell FooCoin about the vulnerability and they decide to use it to launch an attack on their arch-enemy, BarCoin.
It is all drama and heartburn that I'd really rather not have (again, costs and benefits....)
|
|
|
600
|
Bitcoin / Bitcoin Discussion / Re: Bitcoin-Qt / bitcoind version 0.6.3 released
|
on: June 26, 2012, 12:46:10 AM
|
dumb question, but i when it comes to verfying the sig, i only know how to place the sig file wiht the same name as the .zip on with .asc into the same directory and right click to validate. What is this sha256 sum thing? And is that somehow generated off of Gavin's key? What does it verify and how to i run the check?
OS X Snow Leopard with GPG Tools.
1. Make sure the SHA256SUMS.asc file hasn't been modified: $ gpg --verify SHA256SUMS.asc gpg: Signature made Mon Jun 25 10:57:21 2012 EDT using RSA key ID 1FC730C1 gpg: Good signature from "Gavin Andresen (CODE SIGNING KEY) <gavinandresen@gmail.com>"
2. See what file you SHOULD have downloaded: $ grep macosx.dmg SHA256SUMS.asc 3de1490d1390e5a085b4bc2217430b3caadd203780a7bfe8751e8d1930f087cc bitcoin-0.6.3-macosx.dmg
3. Make sure the file you downloaded is exactly the same: $ shasum -a 256 bitcoin-0.6.3-macosx.dmg 3de1490d1390e5a085b4bc2217430b3caadd203780a7bfe8751e8d1930f087cc bitcoin-0.6.3-macosx.dmg
|
|
|
|