What is a bitcoin address?

A Bitcoin wallet is an identification code used by a user to receive a payment. Within each wallet there can be many Bitcoin address, one for every payment received. It is in fact recommended to  use each address for a single payment only. Reusing the same address for multiple payments is possible but it could, in fact, harm your privacy and security.
In order to facilitate the transcription of an address, many wallets allow users to represent them as QR codes or insert them through NFC technology.

Fees are a payment for the transfer of funds over the bitcoin network and compensate miners for their contribution to the system and protection from double spendings.

The number of transactions that can be included within a block is limited, since it can only weight a maximum of about 2MB. The fee that has to be paid is proportionate to the available space within a block and the size of the transaction, expressed in bytes and is not affected by the amount of funds to be transferred. Depending on the information included, the different operations of a transaction will have a different weight in bytes. For instance, transactions sending more information, such as sending bitcoin to more people at the same time will have a higher weight and will therefore have to pay a higher fee.

The fee market can be  very competitive; since fees are paid to miners, they will prioritize the transactions that pay a higher fee per byte. The higher the fee set and the more likely a miner will include the transaction in a block, confirming it.

The minimum fee necessary to confirm a transaction can vary, depending on the number of people transacting on the Bitcoin network at a specific time. The higher the number of users, the more competition to be included in a block, resulting in higher fees .The optimal fee is usually calculate by your wallet, depending on the level of priority desired. In case of transactions having a higher priority, a higher fee will be set, guaranteeing a faster confirmation.

As an example, we hypothesize that a miner can only include up to 2000 transactions in a block: if there are only 1000 users that wish to transact on the bitcoin network there is minimal competition and all transactions, even those with minimal fees, will be confirmed.

On the other hand, if there are 4000 people that wish to transfer bitcoin, there will be high competition to figure among the 2000 that will get their transactions included within a block. In this scenario, the miner will simply choose the 2000 transactions paying higher fees, creating a sort of auction where all users try to set a high enough commission to be included within a block. This process happen in the background and is not carried out manually by the users. Within each Bitcoin wallet there are specific components, tasked with providing the ideal commission depending on the state of the network at a given time.

Receiving a bitcoin payment is easy. A user can generate a new Bitcoin address through her wallet. This address can be used by the sender to transfer funds. In order to request a payment it is sufficient to share your bitcoin address and wait for the funds to be sent.

Since a bitcoin address can be hard to write down the majority of wallets allow it to be shared through QR code or transmitted through NFC technology.

Paying with bitcoin is as easy as making a payment with a normal debit or credit card. Payments can be carried out from an app on your laptop or smartphone. In order to transfer funds, all you need to do is to insert the address (an identification number) of the receiver and the amount that needs to be transferred.

There are several ways to insert a bitcoin address:

-Manual transcription: it is possible to type it manually or copy paste it in the apposite field, to avoid typos.

-QR code: the QR code is nothing but a different representation of the bitcoin address, it is easily scannable by a camera and it will automatically insert the right address in the field.

-NFC (near-field-communication): the bitcoin address can be inserted using NFC, putting two devices close to each other. This communication is possible among all devices with an NFC chip. Payments with NFC are easy and intuitive, the merchant only has to activate the NFC and the payment will happen in a seamless manner, simply by putting two devices close enough to each other.

Depending on its phase, a bitcoin payment can assume different states:

Pending: a payment is considered as pending when the payment request has been sent but the payment has not yet been executed.

Received: a payment is considered as received if it has been sent but it has not yet been confirmed by the Bitcoin network. It is good norm for merchants to wait for the payment to be confirmed, before considering the payment as finalized. Before being confirmed, a payment can be rejected by the bitcoin network or the sender can try to carry out a double spending attack.

Confirmed: a payment is considered as such once it has been successfully inserted in the Bitcoin blockchain. It is then to be considered as finalized and cannot be reversed in any way.