2

What are the actual requirements for a bitcoin transaction? Not the simple inputs, outputs, verification or amounts, but in the technical sense; what does your wallet do?

Everything I read says you need a client but what does it do? People used paper wallets before, how were they able to? Did they still need a client and if so for what reason? Does it just connect them to the network or is there more to it?

1 Answer 1

2

Clients

The word client is normally used for a client-server arrangement. One example is the world wide web where web-browsers like Chrome, Firefox and edge are clients. Web-servers like apache-webserver and IIS are servers. Clients need servers, clients and servers do entirely different jobs.

Bitcoin doesn't really use a client-server model, it uses a peer to peer model where every node is the same. At least, that was the case in the beginning. Bitcoin was originally designed to avoid the need for trusted third parties but many commercial businesses have entered the Bitcoin world and some of them use a client-server model for the software they provide. This answer will focus instead on the peer-to-peer model used originally and still used by popular wallets like Bitcoin core.

Wallets

A wallet does several jobs:

  • It stores data locally.
    • The only truly important item is the private key (or master private key)
    • It also caches a local copy of the transaction journal (the blockchain)
    • It keeps other records of transactions etc it has been involved in.
  • It provides a user interface for a person to spend money, see historical expenditure etc
  • It creates new unconfirmed transactions that spend money controlled by it's private key
    • It sends these to a few nearby peers to be passed on so they eventually reach miners.
    • Consequently it has to initially discover some peers and keep contact with them.
  • It keeps track of the amount of money under it's control (often called a balance)
  • It communicates with a few other peers to learn about new blocks of transactions

Note that the only vital task is storing a number that is kept secret. Everything else is comparatively unimportant.

Paper wallets

a paper wallet is a number written down on a piece of paper and kept secret.

Paper wallets obviously only do the first of the jobs listed above. Storing a private key. Money can be received by a paper wallet because the recipient of a transaction is purely passive and not really involved in the processing of any transaction. The sender only needs to know an address for the recipient, beyond that the recipient is not involved.

Paper wallets were useful for long-term storage of money. However the person who created that wallet would have to have some external means of keeping track of the amount of money. This could be other paper records, use of blockchain-explorers or some other system.

To spend money, the owner of a paper wallet would have to copy the secret number into a software or hardware wallet.


Related questions:

2
  • so that clears most of the question but not the core of the issue. "wallets creates new unconfirmed transactions that spend money controlled by it's private key" and "To spend money, the owner of a paper wallet would have to copy the secret number into a software or hardware wallet." these are really what I want to know. How does this happen? What does the wallet create and what does it need for that to work in the system? what identifies a new transaction in other nodes/peers/wallets? How does another node identify an incoming message as a bitcoin transaction, rather than other net traffic?
    – Anonymous
    Commented May 17, 2021 at 15:34
  • (1) In software. (2) Packets. (3) Peers. (4) TxID. (5) Port number. Commented May 17, 2021 at 16:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.