Bitcoin Forum
May 26, 2024, 08:17:02 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  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 »
441  Alternate cryptocurrencies / Altcoin Discussion / Re: How to profitably create Bitcoin forks without causing economic chaos on: August 04, 2011, 02:35:55 PM
I'm sorry, I didn't mean to say peg!  I only meant that the central bank would guarantee the one-to-one exchange rate...
442  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 04, 2011, 02:06:51 PM
I don't know what goes on behind the scenes with the developers, but I'm wondering if that the lack of resources to develop this stuff might be because they're simply not being properly asked for.  There's a lot of people investing in Bitcoin who would probably be willing to help secure their investment by contributing to a kind of technical development fund if a coherent, big-picture proposal were put together by the reputable developers of the various relevant projects.

Gavin will soon be starting work on Bitcoin full time, but I think most of his effort will be going on stability, scalability, code maintenance and other such things. I'll get around to working on contracts stuff eventually I hope, but the work needed for mobile (in person) payments is taking priority.

It's certainly true that the project could use better organization and more of an authoritative voice. First step would be an improved website with a "project ideas" type section.
Have there been any talks of setting up some kind of 501(c) to fundraise and employ full-time developers?
443  Bitcoin / Bitcoin Discussion / Re: What is the Best Safest Easiest Most Trustworthy Web-based Wallet for Non-Techie on: August 04, 2011, 01:53:50 PM
FFS...  Here we go again.

Until Webcoin (part of bitcoinjs) is ready, please don't recommend these things again, Bruce.  And if Webcoin's requirement that you safely store one single, printable key that you rarely ever use is too much to ask of some people, then maybe Bitcoin is not for them...

Always store large amounts offline, and only access them from sparkly clean computers.  Want to use a bank to store these large amounts?  Get a safe deposit box.

Maybe we should all face the fact that Bitcoin can be used securely or conveniently, but currently not both.  I'd even argue neither, since local key management has a long way to go yet with the main client.  It'll get there, but the "safety" you get by handing over your keys to "trusted members of the community" is clearly an illusion.

Until recently I would have thought I'm just overly paranoid and would've kept my mouth shut...
444  Alternate cryptocurrencies / Altcoin Discussion / Re: How to profitably create Bitcoin forks without causing economic chaos on: August 04, 2011, 12:52:42 PM
It would then trade bitcoins one-to-one for forkcoins, maintaining a peg.  

LOL. let me know when I can exchange my forkcoins for BTC :-)
I'm pretty sure this proposal is valuable, as it removes the rivalry and barriers to entry due to network effects in the crypto-currency market.  And it incentivises people to discover and implement significant protocol improvements.  Well, for the ones that expand at the same rate, anyway.

Are you really so convinced that Bitcoin is the paragon of crypto-currency?
445  Alternate cryptocurrencies / Altcoin Discussion / How to profitably create Bitcoin forks without causing economic chaos on: August 04, 2011, 11:43:20 AM
Whole thread is tl;dr = increase confidence that cryptocurrencies in general are a safe store of value that you don't have to babysit by rolling out your new ones, and protocol-breaking updated ones with a peg to BTC, as this strengthens the common currency unit, and solves your initial distribution and valuation problems quickly, and in an economically non-disruptive way.  Do it profitably and in a low-trust way via the "distributed central bank" described here, or come up with a way that the peg can be maintained in a truly trust-free way.


Say a group of people want to create a Bitcoin fork that they think will rival Bitcoin.  This rivalry would normally force people to choose which currency to hold on to, and would create winners and losers.  In order to avoid such a disruption, they could start a whole new blockchain, use Mike Hearn's merged mining, and create a temporary central bank that starts out with the initial distribution of forkcoins, equal to the current supply of bitcoins.

It would then trade bitcoins one-to-one for forkcoins, maintaining a peg.  It can do its trades in a trust-free way via this: https://bitcointalk.org/index.php?topic=22581.msg286054#msg286054, and it could use CHECKMULTISIG to spread the trust in it over many people, in multiple jurisdictions.  Of course it would want to dissolve eventually, so it might state in the beginning that it will begin gradually lowering its bitcoin/forkcoin exchange rate to zero after a given time.  Afterward, it would fulfil a promise to destroy any bitcoins and forkcoins remaining in its possession, so as not to cause any market distortions by releasing them into the market.  Notice that the total bitcoin + forkcoin circulated money supply still grows at the rate that bitcoins alone would have, absent Forkcoin.  They have a symbiotic, rather than rivalrous relationship.

They could even make a business model out of this by charging a fee for issuing or redeeming.

This method could also be used for necessary or experimental protocol updates that break backward compatibility.
446  Bitcoin / Development & Technical Discussion / Re: Instant TX for established business relationships (need replacements/nLockTime) on: August 04, 2011, 09:52:46 AM
"This tx is spendable with a signature from party B, plus a value Y.  If Y hashes K times to X_10000, then the output is K * something to output B, and rest to output A".

You can't have for loops in script, so hashing 10000 times would require that you have 10000 opcodes.

There is a limit on the number of opcodes per script, so it wouldn't be extendable.
Couldn't you just add 10000 more words to the scripting language: OP_SHA256X1, OP_SHA256X2, ... , OP_SHA256X10000?

There is a more important issue than no loops, namely that output value can't be set by scripts.
What problems are introduced by allowing this?  Is it that it would make it too easy to DoS the network?  Could a special exception be made for scripts of this type, since hashing 10000 times is only as difficult as checking a single ECDSA sig?

To get an idea of how powerful this is, with this kind of scheme you could include a payment on every packet going over the internet, or all kinds of extreme micro-payments.
Holy shit.  If this is doable then it'd be insane not to do it, and somebody else surely will.

Tying direct economic incentives into packet routing would be revolutionary for the Internet.  Extreme micro-payments would provide the incentives necessary for wireless mesh networks to form spontaneously, as well as geographically close distributed storage (using this https://bitcointalk.org/index.php?topic=22581.msg304888#msg304888).  They'd incentivise participation in Bittorrent and Tor.  Easily Bitcoin's "killer app" if it's possible.
447  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 04, 2011, 02:48:53 AM
We only need need to eliminate the uncertainty of of the product/service bargained for. Then there is no need for trust at all.
Exactly.  That's the idea behind the smart contracts that would be in heavy use in all of these proposals.

Quote
I'm thinking of a fractional reserve insurance association. Because bitcoin is so certain you only need to insure the risk of loss/damage of the non-bitcoin half of the bargain.
This is surely very useful, too.
448  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 04, 2011, 02:39:30 AM
Many of the centralization and trust issues in the Bitcoin economy have technical solutions, but unfortunately the required skill and time to implement them is scarce. Collecting proposals on a forum thread won't change that - what's needed is people to step up and implement them.
I don't know what goes on behind the scenes with the developers, but I'm wondering if that the lack of resources to develop this stuff might be because they're simply not being properly asked for.  There's a lot of people investing in Bitcoin who would probably be willing to help secure their investment by contributing to a kind of technical development fund if a coherent, big-picture proposal were put together by the reputable developers of the various relevant projects.
449  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 01:39:16 PM
One more:

Auctions without trusted auctioneers

Here's a paper http://eprint.iacr.org/2008/068 describing a recent real-world implementation of a blind double auction using multi-party computation.  What's so cool about it is it keeps bids and asks secret - even from the auctioneers - so that privacy is ensured, and conflicts of interest are avoided.
450  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 01:37:34 PM
Issuance of USDcoin/EURcoin etc is one way to reduce needed trust in exchanges, but they still need to back those coins and interface with the banking system. It's possible to decentralize exchanges further using ideas from Ripple.
Of course, and considering how much of a pain in the ass getting money into bitcoin via the banking system has proved to be, perhaps it would be easier for people to just build up a trust/credit network from scratch and bypass the banking system.

Quote
I think the focus on Open Transactions is misguided. FellowTravellers passion is admirable but as far as I know everyone who has looked at OT walked away overwhelmed by its complexity and generality. Simpler, more specific systems are likely the way to go.
That's a shame.  If it's scaring away most potential developers, then I guess that's not very good.  I do like his vision of a federation of untrusted transaction servers exploiting jurisdictional arbitrage all over the world Smiley

Quote
Many of the centralization and trust issues in the Bitcoin economy have technical solutions, but unfortunately the required skill and time to implement them is scarce. Collecting proposals on a forum thread won't change that
I'm just hoping that the more people know about these technical solutions, the more demand there will be for existing/future service providers to implement them.  Considering how they are repeatedly getting burned, I don't really think many people get how this economy should/could look.  So organizing this on the wiki sounds like a plan.
451  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 08:03:58 AM
All the tools exist such that we don't need to place very much trust in service providers, and I'd like to see this old model finally abandoned.  If the only complication to the user experience is that they have to safely store a rarely used, never updated private key, then I think that's something most people can easily adapt to.  Notice that this is the exact same UX as Firefox sync, so it's not exactly unprecedented in mainstream use.

agreed, but the ability to store ones wallet in the cloud is essential for mass adoption.  The faster someone figures out how to do this properly with immediate confirmation, the faster you will be able to use BTC retail.
I think the important part is having your wallet automatically synced between your multiple "activated" devices, something which the above ideas solve.  I don't think lack of access from public terminals is going to be such a big deal, especially with the rising ubiquity of smart phones.  I'm hoping at least that those for which it is a problem will be exceptions to the rule.

The immediate confirmation problem is already solved using bitcoin-backed digital cash issued on Open-Transactions servers.  But bitcoin transactions via the blockchain are likely already fast enough for retail (i.e. they propagate across the network in seconds, and you probably don't need any confirmations when transacting face-to-face).  This is the sentiment of the bit-pay guys, anyway.
452  Bitcoin / Bitcoin Discussion / Re: Blind Bitcoin Transfers on: August 03, 2011, 07:44:36 AM
I agree this is really dumb from a liability perspective and you are asking for trouble IMO.  If you are at The Institute and don't want to spend money on a lawyer, I would strongly suggest you consider talking to Ron Rivest.  He is not a lawyer, but I think he will be able to give you very very helpful advice.  First he is very familiar with anonymous e-cash, as he's studied and published on it.  He's also started two crypto-based micropayment companies (peppercoin and another) so he is likely quite familiar with the relevant laws.  Third, and most importantly, he has first-hand experience in dealing with situations where ugrads get themselves into a world of shit (see charliecard incident).

Now, to be a huge asshole and maybe motivate you more, I'll say frankly I'm not impressed with this.  I bet I could take a uniform random ugrad in CSAIL, hand them a basic description of blind sigs, and they would produce what you did.  Here is what would impress me: do this without any liability by not requiring trust even for you to not run with the money (i.e., let people do this entirely p2p without trusting anyone).  Seriously, think about it before you read the next paragraph, and if you realize how to do it great.  If not I probably wouldn't either when I was a ugrad, so here's how to do it.  Unlike blind sigs, even with this description there is quite alot of work to go from idea to reality.

---

What you are basically providing is a protocol where N people can submit bitcoins to an address under your control, and then you will spend them back to N different addresses without knowing the mapping.  First observe people don't need you at all for this, because bitcoin supports multi-in, multi-out TX.  So N people can do this without you.

Attempt 1:  N people who want to mix coins get together and build a TX.  We get together in a circle and, starting from a blank piece of paper, pass it around the circle, each step adding our input and our output to a random location.  After it has been passed around once, it gets passed around again.  This time, assuming my input and output is still there, I sign the tx and pass it on.  If everyone signs it, it is broadcast and we're done.

Problem: This is entirely secure from outsiders, but leaks information to other participants.  E.g. if you are first in the circle and I'm second, I know your input/output mapping.  Similarly if you're last and I'm second-to-last.

Corrrect solution:  Realize what you have is basically a protocol for N+1 participants, where one is a trusted third party to do the input/output mapping.  There exists a generic transformation, called Secure Multi-party Computation that takes such a protocol and eliminates the trusted particpant to yield a cryptographically sound protocol performable by the N parties.  More precisely, for any function f, N people can compute f(x1,...,xN) without revealing their xi.  At the end each party only learns about others' input by what is revealed from f() itself.

So here the setting is xi = (input_i, output_i, secretkey_i, random_i) where input/output are desired addresses, secretkey is the ECDSA key for the input, and random_i is enough random bits to specify a random permutation perm_i on [N].  The output is the following TX, signed by all parties.  Let perm = perm1 o perm2 o perm3 o ... o permN.  Note that if even a single person chooses his permutation at random, then perm is a uniformly random permutation.

inputs: input1, input2, .. inputN.
outputs: output_perm(1), ..., output_perm(N)

Note at the end, all I learn is the inputs, outputs, and that in the overall perm my input was matched to my output.  In particular, the input:output mapping is a random permutation conditioned on knowing the value at one point.

Now that would impress me, and many others too.  In particular existing MPC protocols are likely not practical.  You will likely need to do some work studying the work on 2PC that has been done since the 80s to make it practical.  AFAIK not much has been done since the original defn in [Yao 82] to make general MPC practical.

It's also possible that there's a way to make the paper-passing protocol secure with many more rounds that involve adding garbage addresses and removing other peoples, only to have them add a new one back later.  It seems tricky to get privacy and get something like this to eventually converge, but I can't rule it out entirely so wouldn't dismiss it yet.
Since MPC relies on at least one server being honest anyway, could this proposal be simplified by having each participant send their bitcoins to a pool controlled by unanimous consent of the mix operators, prior to the computation?  They could use the keys they sent with to sign the pieces of (output_i, random_i) sent to each of the servers to prove they are valid.  They could receive a locked transaction signed by all the servers which will return their coins in the event that unanimous consent is not reached by the servers to distribute the coins.  Thus, the only way for participants to lose their coins is for all of the mix operators to collude.

Also because we're relying on at least one server being honest, do we really need a random_i from each of the mix participants?  Could we get away with just having one from each of the servers?

I have no idea how the MPC is done from here, though.  But here's an interesting paper http://eprint.iacr.org/2008/068 describing a recent successful implementation of MPC with three servers and over 1000 participants in an real world auction.

I question if this kind of machinery is necessary for a mix, though.  Couldn't the same result be achieved by the mix operators doing the above pooling, and selecting a server to issue untraceable, unlinkable digital cash in exchange for the bitcoins?  The participants could then break their digital cash up into standardized sizes that maximize the size of the anonymity set, and then redeem the pieces to separate bitcoin addresses.  Of course the server would have to run as a Tor hidden service in order to obfuscate participants' IP addresses.
453  Bitcoin / Bitcoin Discussion / Re: So since no Bitcoin service can be trusted anymore ... on: August 03, 2011, 05:22:35 AM
I don't see why much trust is even necessary for the Bitcoin economy to function properly.  I just posted why in newbie jail: https://bitcointalk.org/index.php?topic=33892.0
454  Bitcoin / Bitcoin Discussion / Re: The mybitcoin.com taught us a lesson on: August 03, 2011, 03:34:19 AM
I posted some lessons here: https://bitcointalk.org/index.php?topic=33892.0

Basically, I think the major infrastructure of the Bitcoin economy should be to designed such that people give service providers keys to their bitcoins only when they really have to, and when they do, they should use Bitcoin scripts to distribute control of them over several reputable service providers which would all have to collude in order to steal or lose them.  I also think the user experience in this model needs to be no more difficult than using Firefox sync - i.e. securely storing a single rarely used, never updated private key.
455  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 03:14:52 AM
All the tools exist such that we don't need to place very much trust in service providers, and I'd like to see this old model finally abandoned.  If the only complication to the user experience is that they have to safely store a rarely used, never updated private key, then I think that's something most people can easily adapt to.  Notice that this is the exact same UX as Firefox sync, so it's not exactly unprecedented in mainstream use.
456  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 03:14:22 AM
Very low trust bitcoin mixes

A group of mix operators can get together, announce that they're running a mixing pool that closes at some future block.  They would select an untraceable, unlinkable digital cash server, operating as a Tor hidden service, that would create a single bitcoin address that pool participants would send their bitcoins to in a cryptographic exchange for an equivalent amount of digital cash.  The participants would do this via bitcoin transaction scripts that also ensure that

1) future transactions from the address require unanimous consent from the mix operators (using CHECKMULTISIG)
2) if unanimous consent to distribute them is not reached within some timeframe, then the coins are automatically returned (using nLockTime)

Upon recipt of the digital cash, the participants break it up into pieces of desired standardized sizes, which are necessary to maintain a large enough anonymity set.  Once the pool closes they request redemption of these pieces to newly created individual bitcoin addresses.  If after all the redemption requests come in there are enough bitcoins in the address to satisfy them all, then the digital cash server has clearly not cheated by overissuing, and the mix operators can safely release the bitcoins.  If not, then they are all either returned immediately to their original owners if the mix operators are still present and cooperating, or they can be claimed by the participants after the specified timeframe via the previously alluded to transaction script.

Notice that the participants are only at risk of losing their coins if not one mix operator is honest.  Their anonymity is as good as what Tor can provide them when communicating with the hidden digital cash server, as well as the size of the anonymity sets in the relevant standardized bitcoin quantities.

Of course fees would be charged in order to make this economical for all participants. The blockchain fee per participant scales proportionally to the number of pool operators, while the costs incurred by the mix operators and the digital cash server are proportional to the number of participants, and are relatively small compared to the overall blockchain fees.

If all this works, it would be nice to have a client that can easily interface with these mixes, will only spend your freshly mixed bitcoins without annoying warnings, will manage everything in such a way as to minimize mixing costs, and will only run over Tor.

And speaking of Tor, how anonymous is Bitcoin run over Tor?  Apparently BitTorrent isn't at all (http://arstechnica.com/tech-policy/news/2011/04/not-anonymous-attack-reveals-bittorrent-users-on-tor-network.ars), so could this also be the case with Bitcoin?
457  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 03:13:42 AM
Zero trust Bitcoin “accounts”

Edit: I removed the original proposal after reading hashcoin's suggestion: https://bitcointalk.org/index.php?topic=25786.0

In the event that blockchain transactions are prohibitively expensive/time consuming for some use and you might think a bitcoin account on a website is necessary, think again.  With hashcoin's idea described in the link you can have instantaneous, free transactions, without trust, with a single person, all using only Bitcoin's internal transaction scripts.

I figure native the UX would be as follows: clients would allow you to create accounts with people where you optionally enter their addresses if you expect to be receiving transactions as well as sending them, and when you fund it, you'd have to enter a lifetime after which your unspent balance is returned to you, as well as "activate" the funding via some direct communication channel with the person.  I imagine the UX would simplify greatly when dealing with a website, since your browser then provides a convenient direct communication channel.  Any ideas on how this might all look to the user?
458  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 03:12:59 AM
Exchanges that can’t lose or run off with your coins

Edit: I changed some things in this proposal after reading hashcoin's suggestions below

The idea here is for exchanges to be relegated merely to issuers of national currency-backed digital currencies.  These digital currencies could then be traded for bitcoins directly, through any escrow (necessary due to Bitcoin's delayed finality of settlement).  Hashcoin's idea here https://bitcointalk.org/index.php?topic=25786.0 could then be used to allow the bitcoin seller to avoid the need to trust the escrow.

If necessary, the digital currency issuers can avoid AML/KYC requirements by limiting redemption amounts or comply with them by requiring ID, and limiting the anonymity in the digital currency’s architecture via e.g. anonymity revoking trustees.  Irrevocability must be cryptographically ensured, but fraud can be compensated for by charging appropriate fees.  I imagine that these fees could be per user, and based on some kind of reputation/cosigning scheme, so as to reduce the "fraud tax" paid by those that are clearly trustworthy.  This would also result in much greater liquidity, and allow for easier exploitation of arbitrage opportunities.

The UX would be such that you must manage your own keys to your digital currencies.  But I see no reason why the same model that WebCoin will use can’t be used here, so that you only have to keep one key safe that is never updated and rarely used.

Open-Transactions (https://github.com/FellowTraveler/Open-Transactions/wiki) can be used here for issuing the digital currency, but needs further work in order to incorporate backdoors for KYC requirements.
459  Bitcoin / Development & Technical Discussion / Re: Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 03:12:08 AM
Web based wallet that can’t lose or run off with your coins

WebCoin (http://bitcoinjs.org/) seems to have the right model here: They split the private keys between your device(s) and their server, and require you to enter a PIN to access theirs.  The keys are recombined only during transactions, thereby minimizing the time they face the Internet.  If you enter the PIN wrong too many times they lock it, and to unlock it you have to provide a master key that you securely store offline.  All of your keys are derived from this master key, so it provides a backup that’s valid in perpetuity.  You also use this master key to activate other devices.

The UX should be dead simple with Webcoin – safely store one single key that’s never updated, and rarely used, and enter a short PIN when you want to make a transaction.

You do give their server access to your public keys, though, so you end up trusting them with your transaction history.

Edit: This seems relevant:
Not giving you my private keys for storage, but using the data stored with you together with my local secret every time a key is needed.
But how would you see that work with a web service? You could implement a large part of the Bitcoin protocol in JS, but if it is served from the wallet provider, it could steal any key that you enter by injecting a keylogger into the JS as well.

That's the most common argument leveraged against LastPass, and it's indeed valid (see below). The solution, so far not implemented anywhere, is to sign a hash of the JS snippet in question and have that verified by the client. When the code needs an update it has to be vetted before clients approve a new hash or signature.

I believe this is on its way into the HTML specifications but I haven't looked for some time. If we control the client implementation (Android, PCs) it's however implementable already today.



In the LastPass case, they are considered trusted (reputation, company) and the architecture is meant to protect against hacking instead. They take great care to make sure their systems serving up the JS in question aren't easily manipulated, and if a hacker were to extract their databases they still cannot do anything with them since everything is encrypted and only the end users have the corresponding keys.

460  Bitcoin / Development & Technical Discussion / Eliminating the need to trust in the Bitcoin economy on: August 03, 2011, 03:11:43 AM
tl;dr = Open-Transactions' digital cash, Bitcoin's transaction scripts, and Webcoin's key management scheme can be combined in various ways to solve all the trust issues plaguing the Bitcoin economy, without compromising convenience.

Over-reliance on trust within the Bitcoin economy has obviously failed horribly.  I believe it’s largely unnecessary, so I’m starting this thread to try to converge on some better standards that bitcoiners could reasonably expect from their service providers.

I'll start with a few ideas mostly borrowed from elsewhere:
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 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!