Bitcoin Forum
November 05, 2024, 10:31:45 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Technical clarifications  (Read 11375 times)
nixoid (OP)
Jr. Member
*
Offline Offline

Activity: 46
Merit: 1



View Profile WWW
June 10, 2010, 08:38:13 PM
 #1

Hi people. I'm interested in decentralized currency and going to either participate in development of this one or develop my own version. Before making a decision i want to clarify  few technical aspects, which is not clear from documentation. Partially this is just because english is not my native language, but anyway Smiley.

0) Is it necessary to run a node if i want to have a wallet? Is it necessarily attached to some exact node or i can keep my wallet on flash drive for example and use it with any node? Where and in which form my account balance is stored?
1) Do i need to download whole network transactions log to be able to validate received coins?
2) How user protected from potential situation when some node is hacked(or modified) and using his id (public key) to send money from his account? It looks possible when everything is sychronyzed between everybody.
3) Which data exactly passed between 2 nodes during transaction? (or just show me place in source code where to look)
4) Can somebody please write more details about transaction fee: why is it needed, how and in which cases it's used and so on.
5) Is there any any plans on decentralizing node list (i have figured out from irc that bitcoin is currently not really decentralized, because nodes getting in touch by joining irc channel on freenode).
6) Do i correctly understand that after some point in time nobody will have ability to generate new coins? we'll just use fixed amount of existing ones.

Thanks for you answers.
lachesis
Full Member
***
Offline Offline

Activity: 210
Merit: 105


View Profile
June 11, 2010, 01:23:48 AM
 #2

Hello Nixoid. I'll answer what I can. Everyone else, feel free to jump in and help, or to correct me if I have something wrong!

0) Yes and no. When people speak of a node here, they usually mean a generating node. You can have a wallet without generating coins, but you must have the software installed and running to make and receive transactions. You can, however, move your wallet between computers / accounts as long as you only keep one version of it. Otherwise, Bitcoin might try to spend the same coins twice. Your use case (on a flash drive) would be fine.
1) You do need the whole transaction log to validate transactions. At the moment it comes to something like 25MB.
2) I'm not sure about this one.
3) This one either, sorry.
4) At the moment, there is no transaction fee (I think). There is just support for one in the source code. At some point in the future, the transaction fee will be used to replace "mining" bitcoins as an incentive to run a node. Also, a transaction fee might be used to insure that other nodes accept your blocks.
5) I'm not sure what sirius's plans are, but I would like to decentralize this very much. I think IRC is one of Bitcoin's Achilles heels at the moment.
6) The rate of generation asymptotically approaches zero. About every 4 years, the number of coins created by each new block is halved. In roughly 10-11 years, each new block will generate 6.25 coins for the miner (instead of 50 today). At some point, transaction fees will be implemented to replace generation as the incentive to supply your bandwidth acting as a node. The idea is that the fee will be < 0.5%.

Bitcoin Calculator | Scallion | GPG Key | WoT Rating | 1QGacAtYA7E8V3BAiM7sgvLg7PZHk5WnYc
Gavin Andresen
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
June 11, 2010, 01:34:11 AM
 #3

I'll try to answer what I can:

0) Is it necessary to run a node if i want to have a wallet? Is it necessarily attached to some exact node or i can keep my wallet on flash drive for example and use it with any node? Where and in which form my account balance is stored?
You either have to run a node or trust somebody else (like MyBitcoin.com) to keep a wallet for you.

Your account balance is stored in a Berkeley DB file called 'wallet.dat' (what directory depends on your operating system; on my Mac it is ~/Library/Application Support/Bitcoin/wallet.dat, on linux it is ~/.bitcoin/wallet.dat, not sure about PCs).

The only application that can read wallet.dat is the bitcoin code, and the database structure isn't documented anywhere besides the bitcoin C++ source code.
Quote
1) Do i need to download whole network transactions log to be able to validate received coins?
Theoretically, no, but the code to do lightweight validation hasn't been written.
Quote
2) How user protected from potential situation when some node is hacked(or modified) and using his id (public key) to send money from his account? It looks possible when everything is sychronyzed between everybody.
Satoshi is planning on encrypting the wallet database, so you'd need to enter a password to read it.  (and they need to get your private keys to generate transactions-- those are what are stored in the wallet.dat)
Quote
3) Which data exactly passed between 2 nodes during transaction? (or just show me place in source code where to look)
4) Can somebody please write more details about transaction fee: why is it needed, how and in which cases it's used and so on.
Dunno.
Quote
5) Is there any any plans on decentralizing node list (i have figured out from irc that bitcoin is currently not really decentralized, because nodes getting in touch by joining irc channel on freenode).
There's another thread about this in these forums; maybe we should start a "Satoshi's TODO list" thread and get folks to volunteer to help out.
Quote
6) Do i correctly understand that after some point in time nobody will have ability to generate new coins? we'll just use fixed amount of existing ones.
Fewer and fewer coins will be created over the next N years (where N is-- what, 20?).  That's a feature, not a bug...

RE: developing your own version: are you thinking of creating a second bitcoin implementation that is compatible with the existing C++ one  (good idea, in my opinion)?  Or creating a similar-but-not-the-same system (bad idea, in my opinion)?

How often do you get the chance to work on a potentially world-changing project?
QuantumMechanic
Member
**
Offline Offline

Activity: 110
Merit: 19


View Profile
June 12, 2010, 02:11:15 AM
 #4

Quote
4) Can somebody please write more details about transaction fee: why is it needed, how and in which cases it's used and so on.

I second that one.  My fear is that the transaction fee won't scale nicely.  Hopefully this is unfounded.
sirius
Bitcoiner
Sr. Member
****
Offline Offline

Activity: 429
Merit: 1002



View Profile
June 13, 2010, 10:14:19 AM
 #5

4) Can somebody please write more details about transaction fee: why is it needed, how and in which cases it's used and so on.

Transaction fee is needed to give an incentive to generate blocks after many years from now, when the block value has grown low. Also, if many nodes stop recording transactions into the blocks they generate (because of the small generation speed benefit gained), you can apply transaction fee as an incentive.

There will probably always be nodes that include your transactions into their blocks for free, but you might have to wait for a few blocks if many nodes don't.

Iris — for better social networks
I'm not a forum admin - please contact theymos instead.
satoshi
Founder
Sr. Member
*
qt
Offline Offline

Activity: 364
Merit: 7193


View Profile
June 14, 2010, 10:21:55 PM
 #6

3) Nothing, if sending by bitcoin address
5) It is decentralised.  After you have connected to the network the first time, you no longer need IRC.
nixoid (OP)
Jr. Member
*
Offline Offline

Activity: 46
Merit: 1



View Profile WWW
July 17, 2010, 08:57:49 AM
 #7

Thank you for answers again.
Looks like i have different vision of security and decentralization.
I'll notify you when i'll have finalized algorithms proposal or prototype.
Quantumplation
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250



View Profile
July 18, 2010, 03:47:36 AM
 #8

The network operates on standard DHT node discovery principles.  As of yet, there is no TRUE way to COMPLETELY decentralize the node discovery (without getting stupid like scanning entire subnets for someone listening), as you must know at least one person on the network.  After you connect to that one person, they notify you of other connections, and you connect to them, etc.

The client comes with a list of "likely candidates" to be online, but there's still the chance that all of them will be offline at some point.  The IRC server is provided simply as a backup, last-ditch resort for finding ANYONE to connect to.  Try blocking the IRC port to see that it's not strictly necessary.

As for the transaction fee:

Right now, transaction fees are only used in one instance, when dealing with extremely large amounts of bitcoins in a single transaction.  Even in that case, it's extremely low (something of a fraction of a percent).

Later on, when bitcoin generation stops "paying off", people will have less of a reason for solving these blocks (and thus transactions will take more and more time to be confirmed, the target value will become easier and easier, making it more likely that an attacker can violate the system.)  In order to keep the "block generational powerhouses" in business, a small transaction fee will be introduced, to keep their profit margin ever so slightly above the electricity/cooling costs of solving said blocks.

(At least, this is my understanding from the PDF.)

NOTE: This account was compromised from 2017 to 2021.  I'm in the process of deleting posts not made by me.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!