Pages:
Author

Topic: [POLL] Multi-sig or scalability--which is more pressing? (Read 3762 times)

legendary
Activity: 1050
Merit: 1002
I just realized another way non-computer literate people can use bitcoins safer is some default program that let's them print them out as casascius printable bank notes.

The software prints out private key bearing bills with the correct denominations for the value in the wallet. After the user confirms all bills printed successfully the private keys on the software are deleted. The user then only has to worry about securing the paper bills, just like current fiat money! They can still spend them the same way too.
hero member
Activity: 686
Merit: 500
Wat
I don't really understand what you're getting at. I work for Google so am an "insider" in that sense. The database engines built on top of LevelDB-equivalent code are not secret. They're called BigTable and MegaStore, you can read papers on how they work. They aren't appropriate for Bitcoin and never will be.

Re: storing scripts in the index. Yes, eliminating the blkN.dat files and putting all data into the key/value store may be a way to further reduce seeks in future. It's a more complex change though. Anyone is welcome to contribute patches that speed things up. The key bottleneck right now is block propagation time. Small improvements in that metric can result in big changes in how quickly a newly solved block gets everywhere.



Google wallet is what hes talking about  Smiley
legendary
Activity: 1050
Merit: 1002
Unplug your computer keyboard and plug it into the back of the SolidWallet and press the "Send" button on top. Type the long address shown by WalletBit, just do it carefully and double check it. Press the "BTC amount" button on top and type the number of bitcoins you want to deposit.
Typing the bitcoin addresses by hand is not a way to go.

Why not? Have you ever watched an older non-computer literate person at a computer? They can understand simple instructions like typing something out, even better than learning how to copy and paste, believe it or not. They may sit there several minutes but they can get it done.

All I'm trying to do is move things out of a realm where such users are extremely out of their depth to a place they can feel the ability to manage on their own if need be.
legendary
Activity: 1050
Merit: 1002
...
Hardware Wallets

A hardware wallet is about the size of a DSL modem. It's composed of a very simple cpu/motherboard, small solid state hard drive, NIC, probably an LCD screen, and a few ports as I'll describe. It has a clean Linux install and a Bitcoin client. MSRP about $70.00.

Little Timmy tells grandma what to do:

Okay, grandma, just go to BestBuy, or this website and buy the bitcoin solid wallet (hmm i like how that sounds!). Open the package and plug it in. Connect the cable to the Internet and press the "on" button. When the light turns green it's ready to use!

On the screen you will see it says "receive address" followed by a long string of characters. Don't worry about that right now. In the package you will see two USB sticks. Take one and plug it into the USB slot. Press the top button that says "backup wallet". When the light turns green remove the USB stick, plug in the other USB stick and press the "backup wallet" button again. Put the USB sticks in two separate safe places, like a bank safe deposit box for one, and home safe for the other.

Now you're ready to use Bitcoin!

Go to WalletBit.com and sign up with an email and password. You will also have to go to Mt.Gox and sign up to buy some bitcoins, but for now I'll just send you some to get started and you can pay me later. In fact, I've already sent coins to your WalletBit account because I know your email address!

Log in to WalletBit and you'll see them there! You can pay anybody just by using their email address.

What's the SolidWallet for? Oh that's when you're ready to really get into Bitcoin and you will hold lots of them. Remember your "receive address" it showed? Well, when you do buy lots of bitcoins, like on Mt.Gox, you will send them to that address. It's easy. Then when you want to fill up your balance at WalletBit just log in there and click "Deposit Bitcoins". Unplug your computer keyboard and plug it into the back of the SolidWallet and press the "Send" button on top. Type the long address shown by WalletBit, just do it carefully and double check it. Press the "BTC amount" button on top and type the number of bitcoins you want to deposit. Press the "Send" button again. That's it! Your SolidWallet screen will show your new balance.
______...
http://www.youtube.com/watch?v=YtdWHFwmd2o&feature=player_detailpage#t=25s
OMG, this is what you'll sound like to grandma !

OMFG LMAO!

I must have been for too long in your first scenario, I didn't understand the 2nd at all.
All I can tell from it is that it's about 3 time longer in terms of words / instructions.

Oh and what happen when someone steal the "Hardware Wallet" ?

Jokes aside the difference between the first "Little Timmy" instructions and second is that grandma can actually understand and follow the second set, even if dictated over the phone. It's spelled out. If I spelled out the first version to be understandable by grandma the length and sound would be similar.

The advantage of the second version is that grandma can actually teach her bridge playing group after she is set up and running, because everything involved exists in the physical world enough for her level of understanding.

She wouldn't be able to re-do the first version even after being walked through it.

As for stealing the hardware wallet that's the point of it. Almost everyone in the world understands how to try securing physical objects, but when it comes to computer files that's another story.
legendary
Activity: 1526
Merit: 1134
I don't really understand what you're getting at. I work for Google so am an "insider" in that sense. The database engines built on top of LevelDB-equivalent code are not secret. They're called BigTable and MegaStore, you can read papers on how they work. They aren't appropriate for Bitcoin and never will be.

Re: storing scripts in the index. Yes, eliminating the blkN.dat files and putting all data into the key/value store may be a way to further reduce seeks in future. It's a more complex change though. Anyone is welcome to contribute patches that speed things up. The key bottleneck right now is block propagation time. Small improvements in that metric can result in big changes in how quickly a newly solved block gets everywhere.

legendary
Activity: 2128
Merit: 1073
Gentle reminder to the other bitcoin developers: it is generally best not to feed trolls.  Use the ignore button.
“If you sit in on a poker game and don’t see a sucker, get up. You’re the sucker.”

http://quoteinvestigator.com/2011/07/09/poker-patsy/

Anyway, here's the example of how open source poker is being played.

A whale of a player spends big bucks developing a secret database engine. After 5 years this player takes one of the earliest branches and open sources it. Lets call that branch LevelDB. Suckers jump on it, spend money and energy to develop some basic tools like statistics gathering and query optimization. Then the whale brings the cold deck to the table, which gives him an instant 5 years of leadtime. It looks like that:

Then, a month later, the main devs decided to switch to compressed public keys which requires a whole new wallet format for Armory.  I was crushed.

I'm no Google insider or anything like that. But I used to knew the people who played with the current Googlers; and I'm broadly familiar with the level of skill involved.

Before you spend to much time at the keyboard and mouse please do see the old David Mamet's movie "House of games". Remember the line:

“it was only business … nothing personal.”
legendary
Activity: 1652
Merit: 2311
Chief Scientist
blah blah blah blah
Gentle reminder to the other bitcoin developers: it is generally best not to feed trolls.  Use the ignore button.
legendary
Activity: 2128
Merit: 1073
Bitcoin doesn't need a fully relational database, it just needs a key/value store . A standalone database like MySQL/Postgres would complicate installation a lot! A library equivalent like SQLite would probably be even slower than Berkeley DB which is what's used at the moment.

Right now the core Bitcoin network has run out of disk seeks, which are a finite resource. That's why some mining pools are dropping fee-paying transactions from SatoshiDice. In other words, Bitcoin has already reached a scalability limit and miners are load-shedding in order to keep the orphan rates down.

LevelDB was designed to optimize for reduced disk seeks as its primary goal, and it sacrifies many advanced database features to get that. Its design is one reason Google BigTable is such a high-performance storage system. Fortunately we don't need those advanced features, but we do need more seeks, which is why it makes sense to use it.

This just reads like joking. Is Mike Hearn a member of core development team? Disk seeks a finite resource? Inform International Union for Conservation of Nature! Probably again the Asian are the culprits and use up the endangered "disk seeks" to produce some traditional potency medicine!

1) Blockchain is stored in a raw file with no structure. On top of it this file is maximally fragmented (for an append only file) due to the way it is written by a mixture of stdio.h/iostream.h calls.

2) The current blkindex.dat is treated like a valueable transactional storage with logging while being just an index, something that a proper database recreates with a "reindex" command.

3) No interprocess locking protocol thus far beyond the single ".lock" file.

I see many years of reinventing the wheel ahead of the Bitcoin core development team. I wonder how many more years until they reinvent the ISAM (Indexed Sequential Access Method, IBM had that since around 1960) and figure out that the index could store unspent transaction scripts until they are spent and purged from the index.

Edit: And how many more years until the discovery here that the transaction key space is uniformly random by design and thus cannot be used alone as key. Then how long until the discovery that transaction space is clustered temporally and widely known generational garbage collection is applicable to Bitcoin?

I see an invisible hand steering the Bitcoin development. It is a hand of an expert in padding the billable hours and lines of code.
legendary
Activity: 1526
Merit: 1134
Bitcoin doesn't need a fully relational database, it just needs a key/value store. A standalone database like MySQL/Postgres would complicate installation a lot! A library equivalent like SQLite would probably be even slower than Berkeley DB which is what's used at the moment.

Right now the core Bitcoin network has run out of disk seeks, which are a finite resource. That's why some mining pools are dropping fee-paying transactions from SatoshiDice. In other words, Bitcoin has already reached a scalability limit and miners are load-shedding in order to keep the orphan rates down.

LevelDB was designed to optimize for reduced disk seeks as its primary goal, and it sacrifies many advanced database features to get that. Its design is one reason Google BigTable is such a high-performance storage system. Fortunately we don't need those advanced features, but we do need more seeks, which is why it makes sense to use it.
legendary
Activity: 1379
Merit: 1003
nec sine labore
Multisig support was already (re)enabled in the protocol with the last release.

Scalability is not on the backburner at all. Right now there's a ton of work going into it:

  • Myself and Stefan are upgrading the Satoshi client to use LevelDB, which eliminates IO as a bottleneck on hard disk based nodes. This should make blocks and transactions propagate a lot faster across the network, which in turn should mean mining pools find it profitable to include SatoshiDice transactions again.
  • sipa and Matt have been experimenting with different ways of doing pruning, which means you can have a full node that doesn't store the entire block chain. Sipa also has refactored some of the core TX verification code in a way that'll make it easier to multi-thread in future.
  • Jeff has been doing some initial work and design proposals for connection filtering, which is needed to make bandwidth usage for lightweight clients linear in wallet activity rather than system activity
  • Just generally a bunch of us are working on bitcoinj, which is a lightweight (SPV) implementation of Bitcoin which scales with wallet activity rather than system activity. Eventually nearly all users will be using SPV clients, meaning they won't have to download or process the whole block chain. We can already run Bitcoin on mobile phones, which is a big achievement, but there's still plenty of work left to do.
  • Gavin has been finding ways to make hard-forking changes much smoother and easier in future, which will be important when we reach the 1MB limit.

If anything I'd say right now most development effort, at least from "core" developers, is going into scalability.

Mike,

I always wanted to ask this question: is there a reason for not separating the client from the DB management and use a real SQL engine like MySQL or PostgreSQL to host the blockchain?

spiccioli
hero member
Activity: 742
Merit: 500
Unplug your computer keyboard and plug it into the back of the SolidWallet and press the "Send" button on top. Type the long address shown by WalletBit, just do it carefully and double check it. Press the "BTC amount" button on top and type the number of bitcoins you want to deposit.
Typing the bitcoin addresses by hand is not a way to go.
legendary
Activity: 1904
Merit: 1037
Trusted Bitcoiner
Multisig support was already (re)enabled in the protocol with the last release.

Scalability is not on the backburner at all. Right now there's a ton of work going into it:

  • Myself and Stefan are upgrading the Satoshi client to use LevelDB, which eliminates IO as a bottleneck on hard disk based nodes. This should make blocks and transactions propagate a lot faster across the network, which in turn should mean mining pools find it profitable to include SatoshiDice transactions again.
  • sipa and Matt have been experimenting with different ways of doing pruning, which means you can have a full node that doesn't store the entire block chain. Sipa also has refactored some of the core TX verification code in a way that'll make it easier to multi-thread in future.
  • Jeff has been doing some initial work and design proposals for connection filtering, which is needed to make bandwidth usage for lightweight clients linear in wallet activity rather than system activity
  • Just generally a bunch of us are working on bitcoinj, which is a lightweight (SPV) implementation of Bitcoin which scales with wallet activity rather than system activity. Eventually nearly all users will be using SPV clients, meaning they won't have to download or process the whole block chain. We can already run Bitcoin on mobile phones, which is a big achievement, but there's still plenty of work left to do.
  • Gavin has been finding ways to make hard-forking changes much smoother and easier in future, which will be important when we reach the 1MB limit.

If anything I'd say right now most development effort, at least from "core" developers, is going into scalability.

this is really encouraging.  thank you guys very much for your great efforts.

This! Smiley

This is gr8!
donator
Activity: 1731
Merit: 1008
...
Hardware Wallets

A hardware wallet is about the size of a DSL modem. It's composed of a very simple cpu/motherboard, small solid state hard drive, NIC, probably an LCD screen, and a few ports as I'll describe. It has a clean Linux install and a Bitcoin client. MSRP about $70.00.

Little Timmy tells grandma what to do:

Okay, grandma, just go to BestBuy, or this website and buy the bitcoin solid wallet (hmm i like how that sounds!). Open the package and plug it in. Connect the cable to the Internet and press the "on" button. When the light turns green it's ready to use!

On the screen you will see it says "receive address" followed by a long string of characters. Don't worry about that right now. In the package you will see two USB sticks. Take one and plug it into the USB slot. Press the top button that says "backup wallet". When the light turns green remove the USB stick, plug in the other USB stick and press the "backup wallet" button again. Put the USB sticks in two separate safe places, like a bank safe deposit box for one, and home safe for the other.

Now you're ready to use Bitcoin!

Go to WalletBit.com and sign up with an email and password. You will also have to go to Mt.Gox and sign up to buy some bitcoins, but for now I'll just send you some to get started and you can pay me later. In fact, I've already sent coins to your WalletBit account because I know your email address!

Log in to WalletBit and you'll see them there! You can pay anybody just by using their email address.

What's the SolidWallet for? Oh that's when you're ready to really get into Bitcoin and you will hold lots of them. Remember your "receive address" it showed? Well, when you do buy lots of bitcoins, like on Mt.Gox, you will send them to that address. It's easy. Then when you want to fill up your balance at WalletBit just log in there and click "Deposit Bitcoins". Unplug your computer keyboard and plug it into the back of the SolidWallet and press the "Send" button on top. Type the long address shown by WalletBit, just do it carefully and double check it. Press the "BTC amount" button on top and type the number of bitcoins you want to deposit. Press the "Send" button again. That's it! Your SolidWallet screen will show your new balance.
______...
http://www.youtube.com/watch?v=YtdWHFwmd2o&feature=player_detailpage#t=25s
OMG, this is what you'll sound like to grandma !

I must have been for too long in your first scenario, I didn't understand the 2nd at all.
All I can tell from it is that it's about 3 time longer in terms of words / instructions.

Oh and what happen when someone steal the "Hardware Wallet" ?
sr. member
Activity: 336
Merit: 250
Multisig support was already (re)enabled in the protocol with the last release.

Scalability is not on the backburner at all. Right now there's a ton of work going into it:

  • Myself and Stefan are upgrading the Satoshi client to use LevelDB, which eliminates IO as a bottleneck on hard disk based nodes. This should make blocks and transactions propagate a lot faster across the network, which in turn should mean mining pools find it profitable to include SatoshiDice transactions again.
  • sipa and Matt have been experimenting with different ways of doing pruning, which means you can have a full node that doesn't store the entire block chain. Sipa also has refactored some of the core TX verification code in a way that'll make it easier to multi-thread in future.
  • Jeff has been doing some initial work and design proposals for connection filtering, which is needed to make bandwidth usage for lightweight clients linear in wallet activity rather than system activity
  • Just generally a bunch of us are working on bitcoinj, which is a lightweight (SPV) implementation of Bitcoin which scales with wallet activity rather than system activity. Eventually nearly all users will be using SPV clients, meaning they won't have to download or process the whole block chain. We can already run Bitcoin on mobile phones, which is a big achievement, but there's still plenty of work left to do.
  • Gavin has been finding ways to make hard-forking changes much smoother and easier in future, which will be important when we reach the 1MB limit.

If anything I'd say right now most development effort, at least from "core" developers, is going into scalability.

this is really encouraging.  thank you guys very much for your great efforts.

This! Smiley
legendary
Activity: 1764
Merit: 1002
Multisig support was already (re)enabled in the protocol with the last release.

Scalability is not on the backburner at all. Right now there's a ton of work going into it:

  • Myself and Stefan are upgrading the Satoshi client to use LevelDB, which eliminates IO as a bottleneck on hard disk based nodes. This should make blocks and transactions propagate a lot faster across the network, which in turn should mean mining pools find it profitable to include SatoshiDice transactions again.
  • sipa and Matt have been experimenting with different ways of doing pruning, which means you can have a full node that doesn't store the entire block chain. Sipa also has refactored some of the core TX verification code in a way that'll make it easier to multi-thread in future.
  • Jeff has been doing some initial work and design proposals for connection filtering, which is needed to make bandwidth usage for lightweight clients linear in wallet activity rather than system activity
  • Just generally a bunch of us are working on bitcoinj, which is a lightweight (SPV) implementation of Bitcoin which scales with wallet activity rather than system activity. Eventually nearly all users will be using SPV clients, meaning they won't have to download or process the whole block chain. We can already run Bitcoin on mobile phones, which is a big achievement, but there's still plenty of work left to do.
  • Gavin has been finding ways to make hard-forking changes much smoother and easier in future, which will be important when we reach the 1MB limit.

If anything I'd say right now most development effort, at least from "core" developers, is going into scalability.

this is really encouraging.  thank you guys very much for your great efforts.
legendary
Activity: 1937
Merit: 1001
Without the security multi-sig offers , there will never be enough people to even get to a scalability problem. Multi-sig is one thing that could make bitcoin really stand out.
legendary
Activity: 1050
Merit: 1002
While I'm glad there are core technical solutions being pursued to address both issues I think there is more to consider.

In a sense those approaches are focused very near the problem. They deal with them in a core technical way rather than a more practical way.

Let's say both issues are resolved as imagined. What happens then? Little Timmy says okay grandma you just download the wallet client and install it - no it's simple really - then wait for it to download the blockchain.  Before you send any money to your address remember to back up your wallet, in 3 places! That's simple too, you just find the wallet.dat file on your computer... Okay, now you are ready to receive and send money. To do that give out your receive addresses; they are long strings of characters, just remember to wait for 6 confirmations for all payments!

Do you really see that working for mainstream users?

I don't. I see things happening a much different way. Most users will use eWallets for transactions which solves the scalability issue and helps the security issue.

People can understand using online services like PayPal, logging in with their password and paying to someone's email address. They can see their balance easily and they know how to give out their email to receive payments.

Right now you're thinking, but they have to put too much trust in eWallets! No, not necessarily. The eWallets don't hold big BTC balances. They are really just transactional.

People store the majority of their coins safely offline in a hardware wallet.

Yes, what we need to be working on is hardware wallets. The Bitcoin Card is one example of this, but I think that may end up a bit fussy, possibly pricey, and tricky to use for many users.

We need someone to manufacture hardware wallets as follows:

Hardware Wallets

A hardware wallet is about the size of a DSL modem. It's composed of a very simple cpu/motherboard, small solid state hard drive, NIC, probably an LCD screen, and a few ports as I'll describe. It has a clean Linux install and a Bitcoin client. MSRP about $70.00.

Little Timmy tells grandma what to do:

Okay, grandma, just go to BestBuy, or this website and buy the bitcoin solid wallet (hmm i like how that sounds!). Open the package and plug it in. Connect the cable to the Internet and press the "on" button. When the light turns green it's ready to use!

On the screen you will see it says "receive address" followed by a long string of characters. Don't worry about that right now. In the package you will see two USB sticks. Take one and plug it into the USB slot. Press the top button that says "backup wallet". When the light turns green remove the USB stick, plug in the other USB stick and press the "backup wallet" button again. Put the USB sticks in two separate safe places, like a bank safe deposit box for one, and home safe for the other.

Now you're ready to use Bitcoin!

Go to WalletBit.com and sign up with an email and password. You will also have to go to Mt.Gox and sign up to buy some bitcoins, but for now I'll just send you some to get started and you can pay me later. In fact, I've already sent coins to your WalletBit account because I know your email address!

Log in to WalletBit and you'll see them there! You can pay anybody just by using their email address.

What's the SolidWallet for? Oh that's when you're ready to really get into Bitcoin and you will hold lots of them. Remember your "receive address" it showed? Well, when you do buy lots of bitcoins, like on Mt.Gox, you will send them to that address. It's easy. Then when you want to fill up your balance at WalletBit just log in there and click "Deposit Bitcoins". Unplug your computer keyboard and plug it into the back of the SolidWallet and press the "Send" button on top. Type the long address shown by WalletBit, just do it carefully and double check it. Press the "BTC amount" button on top and type the number of bitcoins you want to deposit. Press the "Send" button again. That's it! Your SolidWallet screen will show your new balance.
______

If you notice, this solves (or helps significantly) three problems: security, bitcoin scalabilty (most transactions happen on eWallet databases), and usability.
hero member
Activity: 602
Merit: 508
Firstbits: 1waspoza
  • Myself and Stefan are upgrading the Satoshi client to use LevelDB, which eliminates IO as a bottleneck on hard disk based nodes. This should make blocks and transactions propagate a lot faster across the network, which in turn should mean mining pools find it profitable to include SatoshiDice transactions again.

Wow leveldb, fantastic! Good choice.
legendary
Activity: 2184
Merit: 1056
Affordable Physical Bitcoins - Denarium.com
My opinion is that right now multi-sig is more important. Security is the current problem for Bitcoin, scalability is an upcoming problem. Both are important and should be worked on side by side though.
hero member
Activity: 530
Merit: 500
many users + poor scalability = bullish

many users + no multi-sig = bearish 

(imo)

You are saying you think scalability the less important?

I think it's more important when I consider worst case scenarios, but mostly I think we have plenty of time until it becomes a real problem and a nice GUI for multi-sig would be awesome.

I think it is much less dangerous to have bottleneck, than to be open to all kinds of hacking and no escrow
Pages:
Jump to: