Bitcoin Forum
April 30, 2024, 10:02:25 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 [130] 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 ... 288 »
2581  Bitcoin / Development & Technical Discussion / Re: solo-mining and bitcoin-core 0.9.1 - block blocked ? on: June 18, 2014, 10:10:33 PM
I can't figure out what you are saying is a problem here.
2582  Bitcoin / Development & Technical Discussion / Re: blockchain size Do we really need 20 gbs of data? on: June 18, 2014, 06:04:09 PM
There is nothing "official" about The Bitcoin Foundation.  They are a private club of people who have decided to give themselves a fancy sounding name and release their own reference implementation of the protocol.  Their client is as much a third party client as any other.

I could create my own organization called The Bitcoin Association, and then I could release my own version of the reference implementation.  My wallet would be just as "official" as theirs.
As a point of clarification, the reference client is not the Bitcoin foundation's. It's an independent open source project which existed a long before the foundation.  The foundation currently funds some of the folks with commit access, though not all, and pays for some resources and tools.

Notwithstanding that, everything else you said was also perfectly fine.
2583  Bitcoin / Development & Technical Discussion / Re: Mitigating Miner Penalty for Large Blocks by Reducing Propagation Penalty by 600 on: June 18, 2014, 01:00:21 AM
Forgive me if this has already been discussed, but I believe [humbly] that you are appealing to the Monte Carlo fallacy (i.e. that probabilities are cumulative).

You are correct that a miner could withhold a block solution, but it would be of no advantage. I make this claim based on the assertion that mining is not deterministic, even if a miner set out with a given nonce increment pattern. I'm asserting that mining is only probabilistic, because until a solution is found, there is no guarantee that the solution exists, only a probability of it existing.
I'm not, but I've dealt with (literally) hundreds of people who were, so I can forgive you for assuming. I've found that explaining that mining is "progress free", like throwing dice helps people understand the quickest when they suffer that particular confusion.

For simplicity, Imagine you, and I are mining in perfect competition with equal hashrate, and there is another 20% held by others.

I find a block with a very low value— very likely to win under your scheme.  Instead of announcing it I keep it for myself and I mine the successor.  If you find a block I will release mine immediately and win.

Sometimes I find a second block before anyone else does. Sometimes I'll even find a third.  I can begin announcing my older blocks only when there is a non-trivial risk that the network would over take me with the next block it finds.  In this way, even though I do not have a majority hashpower I can exclude large chunks of other miners blocks from the network by having an information advantage over the chain I'm keeping private.

Mining is progress-free, but the blockchain as a whole is potentially not.  Preferring the first seen block creates a strong incentive to announce as fast as possible and helps the whole system behave in a progress free manner.
2584  Bitcoin / Development & Technical Discussion / Re: Why do morons always try to redeem non-standard TX with no fee? on: June 18, 2014, 12:44:22 AM
Your message might get more attention if it had a modicum of civility.
2585  Bitcoin / Development & Technical Discussion / Re: Pool Double-Spend Solution on: June 17, 2014, 03:47:10 PM
If you folks like this idea, can we get it pushed through to a core dev.
I believe there is nothing to implement in bitcoin core here.

It's already possible to query a local node for such status— e.g. the gettxout rpc exists right alongside getblocktemplate.

But, it's likely meaningless to do so— blocks cannot contain double spends relative to their _own_ chain, so including one would be more or less harmless to the network (it would just result in the miner producing an invalid block the network ignores). Rather the case that you need to worry about is when the block and the local node are on separate forks, in that case some different spends between them are expected and— importantly— can be triggered at any time by people relaying different data to different parts of the network.  Inconsistency does not show misbehavior and, in fact, cannot be avoided otherwise— eliminating inconsistency is why we have mining.

The better thing to do is to simply have a local node provide the chain and transactions while the pool provides only the coinbase. This is pretty much facilitated with GBT already at a protocol level, then the pool centralizes the miners payments but not the state of the network rendering it harmless to anyone except the miners (the pool could still rob the miners blind, as they currently can).

But, not surprisingly none of the miner software implements this and none of the pools care to do so... P2Pool already accomplishes this PLUS preventing the miners from being robbed by pool operators. Those who care are already using P2Pool and everyone else is happy with what they have already.
2586  Bitcoin / Development & Technical Discussion / Re: Mitigating Miner Penalty for Large Blocks by Reducing Propagation Penalty by 600 on: June 17, 2014, 06:29:29 AM
Is it possible to mitigate this effects by establishing the rule that, when the block chain forks and there are 2 blocks at the same block height, miners always choose the block with the lowest hash (both blocks would obviously have hash below the target).
This is an oft repeated suggestion going back to at least 2011.  It opens a trivial attack where when you do get a very low hash you refrain from announcing it, comfortable in the fact that you're guaranteed to win a race should one arise. In doing so, your competition is all wasting their time mining along a path that is likely to lose. The effect is stronger the larger you are, creating an increase in expectation for larger miners that doesn't otherwise exist.



2587  Bitcoin / Bitcoin Technical Support / Re: Change addresses: What was the motive of Satoshi? on: June 14, 2014, 05:52:50 PM
We know that "change" in real life are useful because you give ten dollars and you get back change. However in Bitcoin you can send a precise amount of coins, so change is not really "necessary" - not even as an option. It's not needed and adds bloat out of nowhere.
Sorry, you misunderstand Bitcoin horribly— you're in good company: The blockexplorers present a cooked view of the system to make things simpler, but promote this sort of misunderstanding as an unfortunate side effect.

In Bitcoin you cannot send a precise amount. You must send an amount which is a sum of some subset of the amounts you've previously received. A good mental model is to imagine that when someone pays you they give you a metal coin with a certain weight (value) with a public key of yours written on it.  You know which payment was being made by virtue of which public key received the funds.  When you later want to spend the coin you visit a forge (the network) and ask it to melt down one or more coins that you have and make one or more new coins of equal or lesser weight with whatever public keys you want to be paid paid inscribed on them and you present signatures to show you were authorized to spend the coin(s).

The Bitcoin blockchain has no "balances" and instead tracks atomic "coins" (transaction outputs). When your wallet authors a transaction it picks one or more of the payments you've previously received to spend completely. Often the amount is more than the amount you are spending (obviously it cannot be less), and so you need to take change as part of the transaction.

The coin tracking design is important because it prevents replay and also allows clear deterministic behavior in the event of reorganization. The lack of any persistent accounts is also beneficial for privacy.
2588  Bitcoin / Pools / Re: [6600Th] Eligius: 0% Fee BTC, 105% PPS NMC, No registration, CPPSRB (New Thread) on: June 13, 2014, 10:31:41 PM
Actions speak LOUDER then WORDS and Whiz's actions speak for them self! TRUST EARNED THROUGH Years OF HARD WORK that nobody asked for? It was FREELY GIVING!!That's something you can't put a price on and be taught and bought with because it comes from THE HEART! DOING as you SAY without blinking a EYE!Or having to Think about it !! Just like your actions speak for you? Maybe you should of followed that advise of yours before you stuck your foot in your mouth with veiled threats Cheesy But fortunately it's way to late for that now rofl Your master is going to be asking for that money back now he paid you to broker this scam for him I bet! You blew it:o
That's Exactly what you ARe  aren't you a PR! The TRUTH gets revealed!!They Should of hired a Pr for the Pr  ;)A volunteer Roll Eyes Don't you mean cough cough SOCK PUPPET!!! I can smell that BULLSHIT thousands of miles away like everybody else with half a brain........... Now WE KNoW and have the Answer of WHY CHINA BANS BITCOIN EVERY OTHER DAY? Because of dingle berries like you...................
Eligius is also not proposting to keep any of that funds for the pools— but do instead return it to the miners who actually earned it, everyone that was mining during the time when the attacker was withholding blocks and were underpaid on account of the attacker being overpaid.

There is a lot of risk of theft by pool operators, but this isn't the form you should expect it to take.
2589  Bitcoin / Development & Technical Discussion / Re: A Non-Outsourceable Puzzle to Prevent Hosted Mining on: June 13, 2014, 09:00:14 PM
Update: my advisors at University of Maryland and I have recently written a research paper about an improved version of this basic scheme, including a proof-of-concept implementation. The paper is currently undergoing peer review, but we will announce a preprint of the paper in the next week.
Just in time to redo it using libsnark: https://github.com/scipr-lab/libsnark  Smiley
2590  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [BCN] Bytecoin (CPU-mining, true anonymity) on: June 13, 2014, 05:18:33 PM
I can claim BCN is  legit
1) its been around for 2 years (since 2012)
The claim that it has been around for two years isn't credible from what I've seen— not even remotely so.
2591  Bitcoin / Development & Technical Discussion / Re: "Easy way" to extract the UXTO from Bitcoin Core? on: June 13, 2014, 08:46:41 AM
Makes sense.  I agree wiki is probably the wrong place.  Maybe expanding the inline documentation in the source code.  I don't really think this kind of code is useful to most applications but there is a lot of interesting stats which can be pulled from the UXTO.  Distribution of output age, distribution of outputs by script type, distribution of output values.  One could build the UXTO from the raw blocks but since the chainstate has that data (albeit in an somewhat opaque format) it seems a smarter place to pull that out.
FWIW, the gettxoutsetinfo rpc iterates over the utxo set, in the past when I've wanted this data I've just added some instrumentation in that function to dump it out. Even if you're not very experienced with C++ it shouldn't be to hard to emulate the rest of the code and print it out... this might be easier (and also more reliable across versions) than trying to read the data.
2592  Bitcoin / Pools / Re: [6600Th] Eligius: 0% Fee BTC, 105% PPS NMC, No registration, CPPSRB (New Thread) on: June 13, 2014, 04:25:52 AM
Can eligius code something that says to the effect "if you are over x% of the pool, we withhold all payments until you've found a block"?
Not really useful, since you could always split yourself up to a bunch of small accounts... and even if you weren't attacking you'd prudently do this to avoid any delays, even if they were small. Smiley  ... if you thought your odds of getting a block soon were good why would you be on the pool in the first place? Smiley
2593  Bitcoin / Development & Technical Discussion / Re: Bit-thereum on: June 13, 2014, 12:26:05 AM
OT has been talking about interesting things in connection with Bitcoin since at least mid 2011 (my personal recollection) but in all this time has still not, as far as I know, produced even the simplest tool to do anything useful with it and Bitcoin.

I wish them the best of luck, but to the extent that the promotion without delivery is distracting people from actually creating stuff that people can use it's not a good thing.
2594  Bitcoin / Development & Technical Discussion / Re: "Easy way" to extract the UXTO from Bitcoin Core? on: June 13, 2014, 12:23:44 AM
That would actually be something worth documenting.
Preferably on the wiki.
This is really a deep software internal and may change from version to version. You really should not be writing external software that does anything with it— and if you do, well— you get to keep the pieces. It's documented in the source (serialize.h) I'd worry that putting it on the wiki would make it sound like there was some commitment at all to preserve it.
2595  Bitcoin / Development & Technical Discussion / Re: "Easy way" to extract the UXTO from Bitcoin Core? on: June 11, 2014, 12:37:58 AM
Using this I have been able to locate some tx and decode some portions of the vouts.  The height and value are still a mystery though due to this "compact format".  Any ideas?
0x86af3b = 120,891
0x8bb85e = 203,998
0x86ef97d579 = 234,925,952
0x8358 = 60,000,000,000

Oh come on, just follow the calls.. Smiley not so hard to find the ctxoutcompressor and the call to decompress amount:

Code:
// Amount compression:
// * If the amount is 0, output 0
// * first, divide the amount (in base units) by the largest power of 10 possible; call the exponent e (e is max 9)
// * if e<9, the last digit of the resulting number cannot be 0; store it as d, and drop it (divide by 10)
//   * call the result n
//   * output 1 + 10*(9*n + d - 1) + e
// * if e==9, we only know the resulting number is not zero, so output 1 + 10*(n - 1) + 9
// (this is decodable, as d is in [1-9] and e is in [0-9])

uint64_t CTxOutCompressor::CompressAmount(uint64_t n)
{
    if (n == 0)
        return 0;
    int e = 0;
    while (((n % 10) == 0) && e < 9) {
        n /= 10;
        e++;
    }
    if (e < 9) {
        int d = (n % 10);
        assert(d >= 1 && d <= 9);
        n /= 10;
        return 1 + (n*9 + d - 1)*10 + e;
    } else {
        return 1 + (n - 1)*10 + 9;
    }
}

uint64_t CTxOutCompressor::DecompressAmount(uint64_t x)
{
    // x = 0  OR  x = 1+10*(9*n + d - 1) + e  OR  x = 1+10*(n - 1) + 9
    if (x == 0)
        return 0;
    x--;
    // x = 10*(9*n + d - 1) + e
    int e = x % 10;
    x /= 10;
    uint64_t n = 0;
    if (e < 9) {
        // x = 9*n + d - 1
        int d = (x % 9) + 1;
        x /= 9;
        // x = n
        n = x*10 + d;
    } else {
        n = x+1;
    }
    while (e) {
        n *= 10;
        e--;
    }
    return n;
}

Because there are millions of txouts the format works fairly hard to save every byte (the leveldb compression does nothing useful for txouts at all).
2596  Bitcoin / Development & Technical Discussion / Re: Bit-thereum on: June 10, 2014, 08:12:52 PM
I think the IBM cards are basically dead, at this point. TC is now all about Intel TXT (sort of crappy) or SGX (not here yet but seems to have a much better design).
Nope, still sold and supported— and there was a new version (third generation) released last year. (I also have a second generation card to screw around with…)
2597  Bitcoin / Development & Technical Discussion / Re: Would preventing pooled mining help or hurt Bitcoin? on: June 10, 2014, 03:54:04 AM
It would be very easy to design a PoW which requires knowledge of the private key.  Bitcoin will never be forked to support this but a simple solution would be to require the block to be digitally signed by the private key which corresponds to the PubKey designated in the coinbase (reward) tx.  A block which is not signed, improperly signed, or signed w/ a different key is invalid.  

It is probably not a good idea though.   Some of the largest operators use no pools (look at the unknown portion of the network) and they would be unaffected.  Another negative is that it would eliminate p2pool and direct payout pool structures (eligus) which are preferable.  It would also prevent using multisig to enable more secure mining pools.  If anything it would be a barrier to entry for smaller players and further drive mining toward large hosted systems.
What you described there doesn't prevent pooling, since the block could just be submitted to the pool, who could sign it.  Though a non-randomized signature could be used by using its value in the target check.

It wouldn't even necessarily need to be incompatible with multisig, since it could just support an arbitrary script.... but yea, incompatibility with pooling is worse than the alternatives you'd get instead it seems.

2598  Bitcoin / Development & Technical Discussion / Re: Bit-thereum on: June 09, 2014, 11:13:20 PM
This subject has been a frequent one in #bitcoin-wizards.

The point I like to make is that anything you can do with script or a sufficiently enhanced script you can do with N of M oracles plus additional things (E.g. things which need secrecy or trusted I/O).   So putting something in the consensus network is merely a security improvement.   It would seem reasonable to me to expect any grand application that wants a significant script change to _first_ be implemented as N of M oracles to hammer out the use case before making the consensus system changes.

One thing I've had in mind would be to use such a system to stage any new Script2.0 for bitcoin— e.g. the oracles can just run the proposed new script directly.

There are some enhancements we could make in the Bitcoin system to facilitate oracles— for example, our multisignature system has good loose coupling, but it scales poorly: the signatures are linear in N+M. A threshold signature would be constant size— making things like 16 of 30 oracles completely practical. Though the ECDSA threshold cryptography proposed might be adequate, though it requires more communications rounds between the signers.

I have a science project grade implementation of an oracle system that I've been slowly toying with.  In mine I use the Moxie virtual machine plus some special handling for fast crypto functions, I used moxie because it's GCC targetable and an implementation of the VM is just a 1kloc switch statement— easy to audit.  My design works by the user having one or more scripts (binary inputs for the VM), which they commit to in a hash-tree. The root of the hash-tree is the ID of the script-set.   When you ask the oracle to run a script, you give it the script, it's index, and the tree fragments connecting it to the root— and also a cycle count limit which determines how much you have to pay.  Outside of the secure execution environment the oracle computes HMAC(root_hash, oracle_secret_key)  and makes the resulting value available to the script, along with the time, and other inputs provided by the user.  The script is free to then do things like generate and return a pubkey, or sign messages.  The use of the tree means that you don't have to waste the oracle's bandwidth with contingency code you never run (or lose privacy about those branches).

I didn't allow any script directed I/O in my design at all, instead, I planned on having IO done as a pre-processing stage and provided as inputs to the scripts— they're pure functions.  Turns out it's a lot easier to handle the VM security when it does no IO, it's also easier to handle resource usage when the script won't be blocking to wait on the network.

Part of my concern with resource control and IO complexity is that ultimately I'd like to have this virtual machine running inside an IBM cryptocard, with remote attestation... not just to protect the users from a cheating operator, but to protect the operator from being threatened by users that might want to try to coerce them.

I imagined the way payment would work is that you could purchase (with bitcoin) chaum tokens from the oracles for units of compute... then supply them with your scripts when you want to run them.  The oracle could maintain a work queue, constantly working on the script with the best tokens per max_cycle remaining... if you're unhappy with how long your script is taking to make it to the head of the line, you could add more tokens to it after the fact.  Though I don't know how valuable this would be to implement out of the gate— being taxed for resource would be a huge success. Smiley

There are some extra neat things you can do along these lines— Oracles are already more private than using the consensus network (absent rocket science like script-in-ZK), but you can do even better:  For a script arbitrating a transaction has a binary winner and loser where the winner takes all, you can make the script release private keys instead of signing.  By summing a public key from the oracle prior to the contract and summing the private keys after you can cryptographically blind the oracle so that it doesn't know which transaction it was deciding the fate for...

2599  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: June 09, 2014, 08:11:12 PM
Yeah it would make life much more easier. How hard is to implement that ?
I did not saw any devs commenting on this thread in a long time.
I have a hack of an implementation for cpu only— I don't have any gpus anymore, so doing more than that wasn't interesting to me. https://people.xiph.org/~greg/compressed.keys.patch
2600  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: June 09, 2014, 07:58:50 PM
Still no compressed keys?  I'm kinda surprised considering how much faster it makes the searching.
Pages: « 1 ... 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 [130] 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 ... 288 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!