Full nodes are responsible for receiving transactions and blocks, verifying they are valid, and relaying those that correctly abide by the Bitcoin rules to their network connections (peers). To fulfil these requirements, users have to operate basic machinery. In practice, this currently translates to roughly 400 GB of storage space, 4 GB of RAM and a broadband internet connection with upload speeds of at least 50 kilobytes per second. While the storage required to run a full node increases over time as new blocks are added to the Bitcoin blockchain, each block has a maximum data size that intentionally limits the cost of joining the Bitcoin network as a peer.
To the user, a full node enables independent verification that the bitcoin they have received is unambiguously in their possession, and that no Bitcoin rules have ever been broken in the blockchain they are following. For example, the rules state that no transactions can be double-spent and that only a certain amount of bitcoin may be created by each block.
Since full nodes are responsible for enforcing the protocol rules, they assure the network that the system is functioning correctly. Full nodes will isolate and ban misbehaving full nodes and ensure no invalid transactions enter the network. The large number of full nodes upholding the rules of the system increases the costliness of some attack vectors. Many independent full nodes effectively enhance the decentralisation of Bitcoin and bolster its security.