Bitcoin Core – is a free software project for the community released under the MIT license and open source.
Bitcoin Core requires a one-time download of about 300 GB of data, plus another 5-10 GB per month. By default, you will need to store all of this data, but if you enable shrinking, you can only store 6 GB without compromising security. For more information on setting up Bitcoin Core, please read the complete node guide.
#19019 Fix GBT: Restore “!segwit” and “csv” to “rules” key (luke-jr)
P2P protocol and network code
#19219 Replace automatic bans with discouragement filter (sipa)
#19300 Handle concurrent wallet loading (promag)
#18982 Minimal fix to restore conflicted transaction notifications (ryanofsky)
RPC and other APIs
#19524 Increment input value sum only once per UTXO in decodepsbt (fanquake)
#19517 psbt: Increment input value sum only once per UTXO in decodepsbt (achow101)
#19215 psbt: Include and allow both non_witness_utxo and witness_utxo for segwit inputs (achow101)
#19097 Add missing QPainterPath include (achow101)
#19059 update Qt base translations for macOS release (fanquake)
#19152 improve build OS configure output (skmcontrib)
#19536 qt, build: Fix QFileDialog for static builds (hebasto)
Tests and QA
#19444 Remove cached directories and associated script blocks from appveyor config (sipsorcery)
#18640 appveyor: Remove clcache (MarcoFalke)
#19194 util: Don’t reference errno when pthread fails (miztake)
#18700 Fix locking on WSL using flock instead of fcntl (meshcollider)
Bitcoin is a cryptocurrency invented in 2008 by an unknown person or group of people named Satoshi Nakamoto and launched in 2009 when its implementation was released as open source software.
Bitcoin is a cryptocurrency invented in 2008 by an unknown person or group of people named Satoshi Nakamoto and launched in 2009 when its implementation was released as open source software.
Bitcoin has received high praise and criticism. Critics have noted its use in illegal transactions, the large amount of electricity used by miners, price volatility and theft from exchanges. Some economists, including several Nobel laureates, have described it as a speculative bubble. Bitcoin has also been used as an investment, although several regulators have issued investor warnings about Bitcoin.
Samourai Wallet – A modern Bitcoin wallet designed to ensure the confidentiality of your transactions, mask your identity and protect your funds.
The main advantages and advantages of Samourai Wallet over other mobile wallets:
Full offline mode
Samurai works in any network environment. This is an attractive option for those who are interested in creating highly reliable cold storage systems, as well as for those who are in adverse conditions or in conditions that limit the cost of the network.
Segregated Witness – This is a recent update to the Bitcoin network, which helps keep miner fees at the lowest possible level when making deals. Samourai Wallet was one of the first to support SegWit, which allowed users to create efficient transactions to keep miner fees as low as possible.
Smart Miner Fees
Smart Miner Fees – it’s the cost of doing business on a bitcoin chain. They are an incentive for the miner to add your transaction to the block, as well as a mechanism for preventing spam. The Samurai wallet has a best-in-class miner reward rating to help you quickly confirm your transactions without overpaying.
If you do not manage your own complete host, at some point you trust someone. Until now, it was difficult to launch your own full-fledged node and still use a mobile wallet. Dojo changes everything
Most bitcoin wallets reserve metadata that chain supervision firms use to deanonymize you. STONEWALL helps protect against address clustering deanonymization attacks.
When you publish your regular address publicly, you provide the supervisor with a starting point to track you. PayNyms protects against this type of “first touch” attack by never revealing the address to anyone other than the sender and receiver of the transaction.
Batching is a way to compose a single transaction that contains many unrelated transactions. This can be beneficial when the fee for the miner is high, and you need to complete several transactions at a certain point in time.
The PIN access screen is randomly displayed at every boot and does not provide visual feedback to prevent spy screen recording and other common attacks.
Stealth Mode removes Samourai from the launchpad and home screen of your Android device. To open the wallet, just type the secret code.
Remote SMS Commands
Remote SMS commands are included and allow you to remotely erase and restore your wallet via SMS in case of loss or theft of the device.
Switch Ricochet when sending to third-party exchanges or services, such as Coinbase, Gemini, ShapeShift or Localbitcoin, to significantly reduce the risk of unjustified account closure by these services.
When you alternate your coins in Whirlpool, you break the connection between the inputs and outputs of your bitcoin transactions. Use all your bitcoins for more privacy.
OpenDime is a standalone USB hardware wallet. Samourai Wallet supports reading from OpenDime without having to access private keys. It can also sweep the balance from OpenDime with a public private key.
Wasabi – This is an open source non-storage Bitcoin wallet focused on confidentiality for desktop computers, which implements a silent shuffling of coins with mathematically proven anonymity – Chaumian CoinJoin.
Wasabi Wallet – it is an open source non-storage Bitcoin wallet for desktop computers that implements Chaumian CoinJoin.
Key privacy features at the network level:
By default, only for Tor.
BIP 158 block filters for a private light client.
Optional connection to a complete user node.
and at the blockchain level:
Intuitive integration with ZeroLink CoinJoin.
Excellent coin selection and marking.
For more information, please see the Wasabi documentation, an archive of knowledge about Bitcoin privacy nuances, and how to use Wasabi properly.
What it the «CoinJoin»?
The mechanism by which several participants combine their coins (or, to be more precise, UTXO) into one large transaction with several inputs and several outputs. The observer cannot determine which output belongs to which input, as well as the participants themselves. This makes it difficult for third-party organizations to keep track of where a particular coin was received from and where it was sent to (unlike normal bitcoin transactions, where there is usually one sender and one recipient).
This can be done using non-storage software such as Wasabi, which eliminates the risk of extinction or theft of funds. Each of the signatures is created on the computers of the participants, so anyone who tries to connect the signatures cannot change the transaction or redirect funds. The funds will always be located at the Bitcoin address that you control.
This can be done in a decentralized way so that the service does not depend on external parties or centralized servers. It is simply necessary for the parties to the transaction.
CoinJoin can be applied several times, and since many transactions are grouped, participants can save on transaction fees. CoinJoin is the preferred method of gaining privacy on the Bitcoin network.
CoinJoin means: “when you want to complete a transaction, find someone else who also wants to complete the transaction and complete the joint transaction together.”
Electrum Wallet – This is a lightweight digital wallet for bitcoins. Its main feature is speed, appropriation, low resource use and simplicity. It starts instantly, as it works in conjunction with high-performance servers that handle the most complex tasks of the Bitcoin system.
Due to the fact that Electrum uses the method of simple payment verification (SPV), the application can remain easy. The SPV client does not need to download a complete transaction chain. He only needs to download block headers, which are much smaller than full blocks. Which makes it much faster and more convenient to conduct operations with cryptocurrency.
Electrum has various user interfaces: it can be installed on mobile devices, on the desktop or using the command line. Electrum supports hardware wallets: Ledger, Trezor, Keepkey.
This wallet has its own portable version, which makes Electrum a hardware wallet. The password and other protection applications are transferred to a regular flash drive, where they are stored remotely from the computer. When there is a need to send a transfer, a USB flash drive is simple enough to connect to a PC.
How to install and use Electrum
Step 1. Download the correct version for your operating system.
Step 2. Run the program and in the window that opens, come up with a name for your wallet:
Step 3. Indicate what action should be performed:
create a standard wallet;
associate a wallet with 2FA;
bind multicurrency storage;
import the address of a bitcoin wallet or private keys.
Choose “Standard wallet”.
Step 4. Create a secret Seed phrase, which will be needed to restore access to the wallet if necessary.
Step 5. Now you need to select the type of storage. It’s better to choose Segwit, as this wallet option has several advantages: it is completely free and has limited transactional paid programs.
At step No. 6, a secret phrase will be generated from 12 unrelated words, which must be carefully and responsibly kept in a safe place. You can print it, copy it or take a picture. It is important that no one can use it without your knowledge.
To proceed to the next step, you will need to enter this Seed phrase correctly.
Step 7. To protect yourself from malware and unauthorized access, you need to encrypt your wallet with a strong password.
Step 8. After installation, it is recommended that you export your private keys for secure storage. Your secret key is your access to cash and all bitcoin transactions. Never give these keys away and keep them as safe as possible. Private keys can be exported through Wallet -> Private keys -> Export.
That’s all – now your wallet is created and ready to use.
How to use Electrum wallet
The wallet interface looks like this:
It has four tabs:
Storage management is quite simple and intuitive.
The History tab displays all transactions of this wallet.
On the “Send” tab, you can create outgoing transactions with bitcoins and determine the size of commission payments.
On the “Receive” tab, you can request a payment with a QR code for payment.
The “Addresses” tab displays all the bitcoin addresses that are associated with the storage.
How to regain access to the wallet
If for some reason you have lost access to your repository (you forgot your password, stole the gadget, a software client is broken, etc.), you can easily restore it. To do this, you will need a secret Seed phrase that you saved in step 6 of the installation.
Run the program file. As you can see, Electrum supports various types of wallets. You need to choose the same type of wallet that you are recovering, in this example it is a “standard wallet”.
At the next stage, Electrum will ask you to choose where the wallet’s secret will be. Select “I already have a seed.”
Then enter your seed words:
When you enter the correct seed words, the next button will become active, and you can proceed to the next step.
Note. If the seed words are taken from another wallet, such as the blockchain.info or Mycelium wallet, you need to press “Options” and check bip39. If your seed words are taken from bip39 wallet (i.e. not Electrum), you will see this window below. Just leave the default value (m / 44 ‘/ 0’ / 0 ‘) unchanged and click Next.
Now Electrum asks you to enter a password to protect your wallet file. This action is optional, but highly recommended.
Electrum – This is a very reliable, well-protected option for storing bitcoins. There are several versions of the wallet for other cryptocurrencies, the official ones are only Bitcoin-Electrum, Dash-Electrum and Verge-Electrum.
It is quite popular among users. It is easy to install and very simple to manage. Electrum combines all the advantages of cold storage of cryptocurrencies with ease of use online. The application does not burden itself with a heavy blockchain, but refers to it only to update information.
Here are the main benefits of using an Electrum wallet:
all private keys of the vault are located remotely from the server and are never transferred to third parties;
the application is lightweight and does not take up much space on your device;
a project that can run on various operating systems (Windows, Linux, OSX, Android) and supports integration with hardware wallets (Trezor, Ledger, KeepKey);
the wallet has a high degree of security and an acceptable level of anonymity;
the ability to create highly secure wallets using the TrustedCoin service (2FA, multi-signature).
Among the disadvantages of Electrum are the following:
Paid sets of one-time passwords for the two-factor authentication function (in terms of translation it turns out somewhere around 0.00005-0.0001 BTC for each confirmation);
Bitcoin Core — Modern implementation of the first wallet in the history of cryptocurrencies. In this article we will take a closer look at this software, analyze its pros and cons, and also get acquainted with its main functions. Bitcoin Core is the official open source software. Combining the functions of a bitcoin wallet and a full node with which network participants can maintain its performance.
Its main advantages include:
High level of security. Losing money is only possible if the key is transferred to third parties or the virus enters the computer.
Storage of access keys directly on the user’s PC – there is no transfer of them to third-party servers.
To access the basic functions do not need a complicated setup.
The ability to use the wallet on computers running on all major operating systems (Linux, Windows, MacOS).
On the official service, first of all, all updates are implemented.
There is a possibility of “cold” storage of currency (offline). That allows you to guarantee complete protection against hacker attacks and other hostile actions. But for such amenities you have to pay.
In order not to contact third-party servers for information, you must download the entire blockchain to your computer. To do this, you will have to prepare about 150-200 GB of memory on the hard drive.
Synchronization of the installed blockchain with the network can take about a day or more. At the same time, you can speed up the Bitcoin Core download process only by connecting to the high-speed Internet.
To conduct any transaction, you will have to use your desktop computer, the mobile option is excluded.
Installation and getting started with Bitcoin Core
First of all, you need to download the latest version of the application, suitable for the operating system installed on the user’s computer. Then you need to install the downloaded software in any convenient place (by default – C: / Program Files / Bitcoin).
When you first start the application, you will need to specify the path to store the blockchain and the file with the user’s wallet. This can be either the default folder or any other. A prerequisite for this is the location in the hard disk partition with at least 250-300 GB of free space (at the time of writing this material). We recommend that you allocate a separate hard drive with a memory of about 500 GB for this.
It is recommended that in addition to the current blockchain size indicated in the application window, at least another 20-30 backup gigabytes of space should be present. This is necessary to ensure the smooth operation of Bitcoin Core in the near future, since the weight of the network is steadily increasing (by about 150 MB every day).
After that, the synchronization of the wallet client with the network will automatically begin. As a rule, this process takes at least several days. It all depends on the speed of the Internet connection, the workload of the computer with various tasks and the time it spent online. Ideally, after the first launch of Bitcoin Core, leave the PC turned on until the synchronization is complete. If, instead, you actively use the computer and periodically disconnect it from the network, the download of the blockchain may take a week or even more.
In case it is impossible to avoid disconnecting the PC from the network, it is important to give the program the opportunity to complete work with already downloaded files in order to avoid errors, because of which it may be necessary to start the whole process from the beginning.
During synchronization, the percentage of progress, the date of the last downloaded block and the estimated time to complete completion will be displayed in the application window. There you can see a warning that due to the incomplete download of transaction history, the wallet balance may not be displayed correctly. For the same reason, you cannot send coins received in a time period whose synchronization has not yet taken place.
After the download is complete, you can start using Bitcoin Core as a Bitcoin wallet and / or node, after making the necessary settings.
Customization Bitcoin Core
All Bitcoin Core parameters available for change are located in the Settings / Options menu:
The main ones – on this tab you can configure the application to start automatically at system startup, change the default database cache, and also use the function to reduce the stored blockchain to a few gigabytes (after complete synchronization, only the last 551 blocks are needed in fact for the wallet to work).
Wallet – there are only two options here that enable the management of coins and the use of inputs that are not yet confirmed in outgoing transactions.
Network – for the normal functioning of the application as a node and synchronization with the network, this section must have a tick in the line “Allow incoming connections”. The remaining settings are optional and can be used in case of problems with access to the Bitcoin blockchain or to increase privacy.
Window – here you can configure the rules for minimizing the application and displaying it in the system tray.
Display – in this tab, you can change the localization of the application through the drop-down menu “User Interface Language”. In the line “Display amounts in units” it is possible to set the display of the balance and transaction details in one of the options: BTC (bitcoin), mBTC (millbitcoin), µBTC (microbitcoin) or satoshi (satoshi). There is also a field for indicating a third-party explorer, so that in the description of transactions in the wallet links are displayed for viewing them through the browser.
All of the above settings and various additional commands for Bitcoin Core can be made through the Console, which is launched by the item of the same name from the “Window” menu. This tool is usually used by advanced users and developers. A complete list of available commands can be viewed through the Help / Command Line Options menu.
Using Bitcoin Core
When you start Bitcoin Core by default, the “Overview” tab always opens, in which you can see the wallet balance (available, in pending transfers and general), as well as a list of recent transactions for sending or receiving funds by the user. A more detailed list of transactions involving the current wallet is available on the “Transactions” tab.
Before you start working with your wallet, it is recommended that you first encrypt it with a strong password. This is done through the menu “Settings / Encrypt wallet”. In this case, it is advisable to pay attention to the warning of the program that if the user forgets the password, then he will forever lose his bitcoins. This combination will need to be entered every time you unlock your wallet and send transactions. Therefore, it is important to keep it in a safe place.
If necessary, the password can be changed through the corresponding item in the “Settings” menu. The remaining stages of interaction with the wallet will be considered in more detail.
Create addresses and receive payments
To create a new BTC address (public key) in Bitcoin Core, you need to use the “Receive” function. In the window that opens, you can specify a name for the new wallet (the “Label” field) so that it is easier to distinguish it from others. It will be visible only to the current user within the application. In the “Quantity” field, you can specify the amount if the address is created to request from someone a payment of a specific size.
Also in the form of generating a new wallet there is an option “Create a native segwit (bench32) address”. If you tick it, the new address can be used in transactions based on SegWit technology. This means that they will be faster and with a cheaper commission compared to using older legacy and p2sh standards.
In the “Message” field you can enter a message for the person to whom the request for payment will be sent. All listed parameters are optional, i.e. using them is optional. The button “Request payment” can be pressed, both with the filled fields, and without them.
After that, a window with a QR code opens, in which the address of the created wallet will be encrypted. If the number of coins was indicated before, when decrypting the QR code, the amount of sending on the side of the potential sender will automatically be set to the number indicated by the recipient.
Also, the new address and related data will be displayed under the QR code in text format and in the form of a URI – a hyperlink that can be opened on other computers with the Bitcoin Core client installed through the File / Open URI … menu.
After creation, all new wallets fall into the “History of payment requests”, where they can be viewed and deleted if necessary. But as soon as a translation is received on any of them, it will immediately disappear from this list. This is done for security, so that Bitcoin Core users use new addresses every time they receive payments. True, you can still view and reuse such wallets through the menu “Window / Addresses for receiving”.
Sending Transactions Via Bitcoin Core
To use the function of sending payments, you need to go to the “Send” tab and fill out the form displayed. The line “Pay” indicates the address of the recipient of the transfer. You can insert it manually or select from a list of previously used ones. The label field is filled with an arbitrary designation, under which the recipient’s address will be further added to the list (available for viewing through the menu “Window / Addresses for Departures”).
In the field “Quantity” the amount of transfer is entered. Next to it there is an option “Subtract commission from the amount.” If you check this box, transaction fees will be deducted from the number of coins sent. Consequently, a slightly reduced amount will reach the recipient. So that the commission does not affect the transferred number of bitcoins, it is not worth ticking. If you click the “Use Available Balance” button, the payment amount will be automatically set according to the number of available coins in the wallet.
The next section in the form of preparing an outgoing transaction is devoted to setting up a commission. Here you can use the option “Recommended value”. In this case, the commission size will be automatically set to the value calculated by the system depending on the current network load and the expected confirmation time (selected in the corresponding drop-down menu).
You can also set the commission per kilobyte of transaction data through the “Custom value” line. At the same time, it is worth paying attention to the fact that setting too low a commission may lead to the inability to successfully confirm the transaction.
The next option, called “Enable Replace-by-fee”, is used to provide the possibility of increasing the commission and speeding up the transaction if it hangs in the mempool.
Also at this stage, you can use the “Add Recipient” button to increase the number of outgoing payment recipients. The fields that appeared in this case are filled in similarly to the steps described above.
On this, the design of the outgoing transaction can be considered completed. It remains only to click “Send” and confirm your intention with the password that encrypted the wallet.
Wallet backup and private key retrieval
You can create a backup copy of your wallet in Bitcoin Core using the function of the same name from the File menu. In this case, the application will ask you to specify the path to save it.
You can also open the Wallets folder located in the directory that the user selected to store the blockchain through any file explorer. There will be located the automatically generated file “wallet.dat”, copying of which will lead to a backup of the wallet, no different from that obtained through the program menu.
It is recommended that you back up as often as possible, preferably after each operation to receive funds and / or create a new BTC address, choosing a reliable medium for storage of the received file, preferably disconnected from the network. Only in this case will it be possible to regain access to your balance after reinstalling the Bitcoin Core application or launching it on another computer. To restore, you will need to place the backup file in the Wallets folder, agreeing to replace the existing one.
Private Key Retrieval
If you use an outdated copy of the wallet, access to all coins received after its creation will be lost. If the user does not have the wallet.dat backup file saved, access to funds will not be restored at all.
When a user needs a private key from any of the addresses created in Bitcoin Core, for example, to import a wallet into another application, you can view it using the “dumpprivkey …” command, which is entered into the console mentioned above. In this case, instead of the “three points”, a BTC address is entered, from which it is necessary to obtain a private key.
For the command to work, you first need to unlock by specifying the password using the command “walletpassphrase pass time” (instead of pass, enter the password, instead of time – the period for which the wallet is unlocked).
Bitcoin Core Cold Storage
To organize a “cold” storage of bitcoins through this application, you need to perform just a few simple steps:
In a fully synchronized wallet, on the “Get” tab, you need to create the necessary number of new addresses and write / print their addresses on paper.
Make several backup copies of the wallet.dat file on different media disconnected from the network.
Delete the original file from the PC with the wallet installed;
Transfer bitcoins to printed addresses.
As a result, the coins will end up on BTC addresses, whose private keys have never been used to access them. As long as this condition persists, we will talk about the “cold” storage of bitcoins. To access these coins, you need to copy the backup wallet.dat to the appropriate folder on the computer with Bitcoin Core installed.
Using Bitcoin Core to Run a Full Bitcoin Node
The main task of a full node is to validate blocks with transactions and then relay them to other nodes. Thus, each running and fully synchronized Bitcoin Core client helps maintain the network’s performance, and its local storage contains an updated copy of the entire Bitcoin blockchain with a complete transaction history.
All that is needed to run the full Bitcoin node is to install the Bitcoin Core application and wait for the entire blockchain to load (described in detail in the section on getting started with the wallet). You also need to make sure that incoming connections are allowed in the network options of the wallet and that TCP port 8333 is open (in the settings of the router and firewall).
For the full operation of the full node, the computer on which it is installed must be online for at least 6 hours daily. All processes in this case are performed by the program independently and do not require any user participation.
Currently, managing a full node has nothing to do with bitcoin mining. Previously, this feature was present in Bitcoin Core, but due to low mining efficiency it was removed from all versions of the application, starting in August 2016. Therefore, all full nodes on Bitcoin Core are now launched exclusively on a volunteer basis (without receiving remuneration) to maintain the network.
Of the 9300 currently active nodes, about 9 thousand are on Bitcoin Core. The remaining 300 are launched through alternative applications like Armory, mSIGNA and Bitcoin Knots.