Chapter 1: Cryptocurrency wallet
One definition of a cryptocurrency wallet is a device, physical media, program, or internet service that maintains the public and/or private keys for bitcoin transactions. Wallets can be physical or digital. It is common for a cryptocurrency wallet to include additional features, such as the ability to encrypt and/or sign information, in addition to its primary role of storing the keys. The act of signing can result in a number of different outcomes, including as the execution of a smart contract, the transaction of a cryptocurrency (see the image titled "bitcoin transaction"), identification, or the legally binding signature of a "document" (see the image titled "application form").
A peer-to-peer electronic cash system was the premise that Satoshi Nakamoto stated in his paper "Bitcoin: A Peer-to-Peer Electronic Cash System." Bitcoin was the first cryptocurrency to be created in 2008 using this principle. It was stated that the project will make use of cryptographic proof rather than faith in order to establish an electronic payment system. When it comes to verifying and recording transactions on a blockchain, it also emphasized the utilization of cryptographic proof.
The original wallet application, which was simply called Bitcoin and is also frequently referred to as the Satoshi client, was made available as open-source software by Satoshi Nakamoto in January of 2009. At the time of version 0.5, the client was shifted from the wxWidgets user interface toolkit to Qt, and the entire package was referred to as Bitcoin-Qt. Following the release of version 0.9, the software bundle was rebranded as Bitcoin Core in order to differentiate itself from the decentralized network that it was based on. There is a possibility that Bitcoin Core is the most well-known implementation or client. The Bitcoin Core blockchain has been split into multiple forks, including Bitcoin XT, Bitcoin Unlimited, and Parity Bitcoin.
It is possible for wallets to function in a number of different directions. They have a relationship that is opposite to one another in terms of trustlessness and the amount of computation that is required.
-! Full clients check transactions directly by downloading a full copy of the blockchain, which is more than 150 gigabytes as of January 2018, according to the blockchain. The trust of any third party is not necessary for them to function. Blocks that have been mined are validated by full clients, which prevents them from doing transactions on a chain that violates or modifies the rules that govern the network. The process of downloading and confirming the complete blockchain is not capable of being performed on all computing systems due to the size and complexity of the blockchain.
-! When sending and receiving transactions, lightweight clients consult complete nodes. This eliminates the need for the client to have a local copy of the entire blockchain (for more information, see simplified payment verification - SPV). This allows lightweight clients to be utilized on low-power, low-bandwidth devices like as cellphones, and it also makes the process of setting them up significantly faster that it is. On the other hand, when utilizing a lightweight wallet, the user is required to have faith in full nodes because it has the ability to report incorrect values back to the user. It is necessary for lightweight clients to have faith in full nodes since they follow the blockchain that is the longest and do not verify its validity.
Third-party internet services known as online wallets or webwallets provide functionality that is comparable to that of traditional wallets, but they may be simpler to use. However, in this scenario, the credentials necessary to access funds are stored with the provider of the online wallet rather than on the hardware of the user. As a consequence of this, the user is required to have full faith in the providers of the online wallet. There is a possibility that entrusted bitcoins could be taken due to a hostile provider or a breach in the security of the server. By way of illustration, a security compromise of this kind occurred with Mt. Gox in the year 2011.
Hackers mostly focus their attention on wallet software because of the lucrative possibility for stealing bitcoins. "Cold storage" is a term that refers to the practice of storing or creating private keys on a device that is not connected to the internet. This is done in order to keep the private keys out of the reach of hackers. The credentials that are required to spend bitcoins can be stored offline in a variety of different methods, ranging from straightforward paper printouts of private keys to specialized hardware wallets.
A keypair is generated on a computer that does not have an internet connection in order to construct a paper wallet. The private key is then written or printed into the paper, and the computer is then deleted from the paper wallet. Finally, the paper wallet can be put away in a secure physical area so that it can be retrieved at a later time.
It is also possible for physical wallets to take the shape of token coins made of metal. These coins have a security hologram embedded in a recess on the reverse side, which allows the private key to be accessed. When withdrawn from the token, the security hologram goes through a process of self-destruction, which indicates that the private key has been obtained. When these tokens were first minted, they were made of brass and other base metals. However, as the value and popularity of bitcoin increased, precious metals were eventually used instead. Gold coins with a face value that can reach up to ?1,000 have been produced over the course of history. Within the collection of coins held by the British Museum, there are four examples of the original series of bitcoin tokens that were funded. One of these examples is presently on exhibit in the money section of the museum. In 2013, the Financial Crimes Enforcement Network (FinCEN) issued an order to a Utah-based maker of these tokens, requiring them to register as a money services organization before they could produce any additional funded bitcoin tokens.
A compact and portable computer peripheral known as a hardware wallet is able to sign transactions in accordance with the information provided by the user. These devices are responsible for the storage of private keys, as well as the internal signing and encryption processes. They do not disclose any sensitive information to the host computer, with the exception of transactions that have already been signed and are therefore unchangeable. Hardware wallets never reveal their private keys, thus even systems that could be infiltrated by malware do not have a way to access or steal them. This is because hardware wallets never expose their private keys. A passcode is created by the user during the process of setting up a hardware wallet. Without the passcode, it is impossible to access the assets stored in hardware wallets because they are immune to tampering.
In order for a cryptocurrency wallet to function, a theoretical or random number is generated and used. The length of this number is determined by the algorithm size of the coin's technical needs. Through the application of the particular requirements of the cryptocurrency cryptography algorithm, the number is transformed into a private key. After that, a public key is formed from the private key by employing the cryptographic technique that is necessary for processing the data. The owner is the only person who can access and transmit bitcoin using the private key, which will remain private to the owner. On the other hand, the public key is the key that must be supplied with any third party in order to receive cryptocurrency.
Up until this point, there is no need for a computer or any other electrical device, and all key pairings can be determined theoretically and written out by hand. Everyone, even the blockchain, does not have access to the private key and public key pair, which is often referred to as an address. The blockchain will only record the transaction of the public address when cryptocurrency is given to it. This will result in the transaction of the public address being recorded in the blockchain ledger.
Due to the fact that keys can be generated without being used for transactions and are consequently offline until they are registered in the blockchain ledger, collision, which occurs when two or more wallets have the same private key, is theoretically feasible. On the other hand, this option is practically eliminated due to the fact that the theoretical probability of two or more private keys being identical is extremely low. Due to the fact that there is an extraordinarily high number of possible wallets and, consequently, private keys, it is unthinkable that a particular key could be duplicated or hacked.
A seed phrase, which is a random collection of twelve to twenty (or even more) dictionary terms, is now used in current convention. This seed phrase is an unencrypted form of the private key yet it is used in modern convention. Words are much simpler to commit to memory than numerical values. Exchange and hardware wallets are generated using random numbers when the user is online, and the user is required to give a seed phrase in order to complete the process. In the event that the wallet is lost, damaged, or hacked in any way, the seed phrase can be utilized to regain permission to access the wallet along with all of the related keys and bitcoin.
There are a number of...