Bitcoin Knots: A Better Bitcoin Client
Bitcoin Knots is a Bitcoin client implementation that distinguishes itself through a series of bug fixes, performance upgrades, and stricter mempool policies. In this full review we analyze what it is and how it works.
What Is Bitcoin Knots?
The Bitcoin network comprises tens of thousands of nodes, each running the Bitcoin protocol software. The predominant implementation among these nodes is Bitcoin Core, serving as the reference standard due to its foundational role in shaping other implementations. Bitcoin Knots, while stemming from Bitcoin Core, represents both a derivative and an alternative. It incorporates a suite of enhancements drawn from, proposed for, and sometimes maintained independently of the main Bitcoin Core repository.
Running Bitcoin Knots parallels running Bitcoin Core, as both adhere to the same consensus rules (it's not a fork). However, Bitcoin Knots distinguishes itself through a spectrum of bug fixes, performance upgrades, and stricter mempool policies. However, aspects like the mempool spam filters are policy, so there cannot be any chain splitting by using Knots. So running Knots means running the real Bitcoin.
This guide offers an in-depth exploration of Bitcoin Knots: its genesis, its creator, its configurable settings, and considerations for its adoption over Bitcoin Core.
Bitcoin Knots Brief History
Despite the recent surge in media attention surrounding the OCEAN mining pool, which notably employs also the Bitcoin Knots block template in its battle against spam, it's important to note that Bitcoin Knots has a rich history spanning over a decade.
Originally known as Bitcoin LJR, it emerged in 2011 as a fork of Bitcoin Core, curated by Luke Dashjr. The moniker "Knots" pays homage to the biblical passage where Jesus drives out money changers from the Temple using a whip made of knots, reflecting Dashjr's Roman Catholic beliefs, while also symbolizing the merging of code.
In contrast to Bitcoin Core, Bitcoin Knots provides node operators and miners with significantly enhanced mempool and mining configurability. Luke Dashjr advocates for this level of configurability, as operators and miners bear the responsibility of verifying, storing, and transmitting transactions and blocks across the Bitcoin network, tasks that come with associated costs.
A notable achievement of Bitcoin Knots occurred in 2023 with the release of v25.1, when it addressed the "Inscriptions" exploit (assigned CVE-2023-50428 by the National Vulnerability Database). This exploit targeted a vulnerability in Bitcoin Core, allowing for spamming of the blockchain. Bitcoin Core, since 2013, permitted users to set limits on the size of extra data in transactions they relay or mine (-datacarriersize). By disguising their data as program code, inscriptions circumvented this limit. The subsequent bugfix was pivotal for increasing the network's security.
Despite vulnerabilities persisting in Bitcoin Core's v26 (2023) and v27 (2024) releases, Bitcoin Knots' role in addressing such issues remains critical, albeit without endangering Bitcoin's blockchain-based consensus model.
Furthermore, Bitcoin Knots serves as a partial testbed for Bitcoin Core. Dashjr often implements software optimizations that are later integrated into Bitcoin Core. Since rebranding his implementation as Bitcoin Knots and targeting a broader audience, Dashjr has adopted a more conservative approach, incorporating only optimizations deemed reasonably secure.
Bitcoin Knots has garnered adoption from various miners, including the former Eligius mining pool, which Dashjr introduced in 2011 and relaunched in 2023 under the name OCEAN. Today OCEAN uses Bitcoin Knots to generate most of its block templates.
How Bitcoin Knots Works
Bitcoin Knots acts as both a Bitcoin node and wallet, ensuring users hold and transact with their bitcoins securely. It verifies payments thoroughly, making sure received bitcoins are genuine. Users can easily send and receive funds and backup their wallets like saving a document. For advanced users, it offers advanced controls. Additionally, it can pair with phone wallets to enhance security. Overall, Bitcoin Knots provides a comprehensive yet easy to use experience, with advanced options and mempool policies, making Bitcoin management more accessible and secure.
Bitcoin Knots is a derivative of Bitcoin Core that includes a series of enhancements sourced from various developments, proposals, and independent maintenance efforts outside the primary Git repository. These enhancements encompass a broad spectrum of features and fixes aimed at refining the functionality, security, and user experience of the Bitcoin protocol.
One notable set of enhancements revolves around packaging cleanups, denoted as "syslibs." These enhancements introduce options to build Bitcoin Knots using system libraries such as LevelDB, libsecp256k1, and UniValue, and offer the flexibility to exclude protobuf during the build process.
Additionally, Bitcoin Knots incorporates various bug fixes and optimizations that target specific aspects of the software, ranging from RPC improvements to network protocol enhancements. These fixes address issues such as memory management, transaction handling, and network communication to ensure the robustness and reliability of the Bitcoin Knots implementation.
A notable improvement related to data recovery was the introduction of the reindex=auto flag. This enhancement, initiated by a contribution from the Bitcoin community, enables the automatic initiation of a reindex process if the chain state or block index becomes corrupted.
Bitcoin Knots introduces functional and policy enhancements aimed at improving user interaction and expanding the capabilities of the software. These enhancements include support for alternative Bitcoin unit representations, advanced RPC functionalities, and improved wallet management features, among others.
Who Are The Bitcoin Knots Developers?
Luke Dashjr, renowned as a Bitcoin legend, serves as the creator, lead developer, and maintainer of Bitcoin Knots. Being derived from Core and entirely open-source, the project draws thousands of developers each month. Development primarily occurs within Bitcoin Core and is integrated into Knots with each release.
Even if a pull request to Core is rejected or a feature isn't suitable for Core's framework, such as relying on centralized services, it may still find a place in Bitcoin Knots. Developers can submit pull requests on the Knots GitHub for review and potential inclusion. Upon acceptance, developers are responsible for maintaining their branch in their repository, and it will be automatically merged into future Knots releases.
For developer discussions, the IRC channel #bitcoin-dev on Freenode is available.
Bitcoin Knots Quick Review
If you don't have time to read the full Bitcoin Knots review, you can have a look at the list down here which features the main privacy functions and other features of this Bitcoin client implementation.
Category | Feature | Score |
---|---|---|
🔐 Privacy & Security (48/50) | ||
📄 Open Source Compliance | Source code is publicly available and is Open Source | 10/10 |
🔄 Software Integrity | Software can be built from source and binaries match | 10/10 |
🔐 Security | The wallet is non custodial, features a passphrase and features the inscriptions exploit fixed | 5/5 |
🌱 Seed Generation | Uses Java's SecureRandom function to generate its entropy | 5/5 |
💾 Seed Storage | Is stored in a data directory of the Bitcoin Knots application | 3/5 |
💼 Hardware Wallet | Supports External Signers | 5/5 |
💰 Purchase Procedure | The app is free of charge | 5/5 |
💸 Fees | Fees are depending on Bitcoin Network fees | 5/5 |
🚀 Features (42/50) | ||
🖥️ User-Friendly UX | Can be intimidating at first, but it's actually easy to use | 4/5 |
🎨 Design | Evergreen. It passed the test of times | 5/5 |
📡 Air Gap / PSBT / SeedQR | It supports PSBT (Partially Signed Bitcoin Transactions | 3/5 |
💾 MicroSD Backup | You can backup the wallets wherever you want | 5/5 |
🤝 Multisignature Support | Support Multisig wallets | 5/5 |
🔐 Passphrase (BIP39) | Doesn't support BIP39 Passphrases (13th or 25th word) | 1/5 |
🔌 Connection | Can connect to clearnet, Proxy or TOR | 4/5 |
📦 Ready-to-Use | Comes with everything needed to start immediately | 5/5 |
📚 Documentation | Detailed user guides available online | 5/5 |
🛠️ Customer Support | Bitcoin Knots offers customer support on Github, Telegram or on their website | 5/5 |
🧱blockdyor Score (90/100) |
How To Install Bitcoin Knots
Unlike Bitcoin Core, which recently caused confusion with separate download pages on two different websites bitcoin.org and bitcoincore.org (with the former having an outdated version), Bitcoin Knots simplifies the process with a single download page located at bitcoinknots.org. Users can download the software directly from the homepage, as you will be shown the suitable installation file for your computer.
Mobile versions of Bitcoin Knots are not available, as the software is primarily designed for desktop use, considering the growing size of the blockchain, expected to surpass 1 TB soon.
Downloading Bitcoin Knots is quick, depending on your internet speed.
After downloading, depending on your operating system, open or install the Bitcoin Knots application. Once installed, launch the Bitcoin Knots app to get started.
The logo of Bitcoin Knots stands out distinctly from that of Core, representing one of the most noticeable aesthetic disparities between these two implementations. Initially crafted by Steven Hay in 2016, it underwent minor revisions in 2020, courtesy of andhans. To get started, just double click on it and Bitcoin Knots will open.
Upon launching Bitcoin Knots for the first time, you'll encounter three straightforward queries:
- Select where to store the Bitcoin blockchain, whether on your primary hard disk or any additional HDD/SSD connected to your computer.
- Opt to run a pruned node, which functions as a lightweight alternative capable of transaction verification without storing the entire blockchain. This option is beneficial if storage space is limited.
- Optionally defer transaction validation until after a specified block.
Once your selections are finalized, click "OK" to access the main dashboard of Bitcoin Knots.
Bitcoin Knots Fees
Bitcoin Knots itself doesn't impose fees; they are instead determined by the Bitcoin Network. However, Bitcoin Knots offers a comprehensive fee section with various customizable features, including a "replace by fee" function, which can be valuable if your transaction gets stuck in the mempool due to a low fee setting.
Here are the fee settings available in Bitcoin Core:
- Transaction fee (1): Automatically estimated based on current network conditions. This feature becomes visible after the Initial Blockchain Download (IBD).
- Recommended (2): Provides settings for achieving transaction confirmation. You can specify a target confirmation time in minutes or hours. Shorter times come at a higher cost, so choose accordingly.
- Custom (3): Allows you to set fees in BTC/sats per kilobyte according to your preferences.
Additionally, you can enable the "Replace by fee" function (4), which allows you to replace a pending transaction with a new one that includes a higher fee. This feature is useful if you initially set a low fee for your transaction and need to speed up its confirmation.
Design & UX
Bitcoin Knots essentially mirrors the visual features of Bitcoin Core, with minor divergences like the logo. It has maintained its core interface without significant overhauls, which is appreciated as users don't need to relearn how to navigate it.
Bitcoin Knots prioritizes simplicity and lightweight functionality. However, it distinguishes itself from Core with an extensive array of mempool configuration settings, ideal to both advanced users and those averse to spam relay. This latter group has been growing steadily, partly due to initiatives like the anti-spam crusade spearheaded by the new mining pool OCEAN.
Connectivity
Bitcoin Knots supports connection via clearnet, and setting it up to run over TOR is straightforward. Simply install TOR (not the browser) and run it as a background daemon. Upon restarting bitcoind, it automatically generates a TOR address, which is then displayed in the debug.log file and the pairing page. Once this message appears, your setup is ready for use.
Furthermore, Bitcoin Knots can be configured to act as an RPC server, enabling it to serve as a backend for lightweight software wallets like Sparrow. It also offers support for port mapping using UPNP, SOCKS5 Proxy, and various other connectivity options.
Advanced Features
Bitcoin Knots provides numerous advanced features, many of which are backported from, proposed for, or maintained outside the master git tree. Some examples include:
- Advanced mempool configurations with possibility to set datacarriersize=0 and other spam filters options directly with the GUI. Permitbaremultisig=0 datacarrier=0 are already set by default
- Automatic reindexing of corrupt data with the addition of the reindex=auto flag
- Support for Tonal Bitcoin units (ᵇTBC, ˢTBC, and TBC)
- Enhanced URI parsing to accommodate non-BTC amounts
- Restoration of address display functionality in the GUI
- Addition of a network port input box to GUI settings
- Implementation of a mempool statistics collector
- Integration of an interactive mempool graph in the Qt interface
- Introduction of the sweepprivkeys method for scanning and sending UTXOs to the local wallet via RPC
- Enhancement of the sendrawtransaction RPC to allow users to ignore or override specific rejections
- Addition of a REST endpoint for estimatesmartfee, along with documentation and testing features
- Inclusion of the "use_txids" parameter in the output of getaddressinfo RPC
- Incorporation of Tonal digits and the BTC symbol in the bundled font.
Warranty
Bitcoin Knots comes with the MIT License, which essentially means it's provided "as is" without any warranty. This means there's no guarantee that it will work perfectly or meet all your needs.
Users are free to use, modify, and distribute the software, but they do so at their own risk. The developers and copyright holders cannot be held liable for any issues or damages that may come from using the software. All this applies to Bitcoin Core too.
Compatibility
You can easily download Bitcoin Knots easily on the official website for Linux, Mac, Windows and several other operating systems. You can also verify them by using the provided signatures.
It's important to add that Bitcoin Knots it's also available on Bitcoin Node operating systems such as Umbrel or Citadel. On Citadel it's actually the default client implementation, so it's highly recommended.
Security & Privacy
Bitcoin Knots is built on open-source principles, allowing its code to be meticulously scrutinized line by line. Additionally, it boasts robust security features such as strong entropy for seed generation and the option to encrypt the wallet.dat file.
Code Openness & Reproducibility
Bitcoin Knots prioritizes transparency and reproducibility in its codebase. Being open-source, the entirety of its code is publicly accessible, allowing developers and users alike to review, verify, and contribute to its development. This transparency ensures that the software can be thoroughly examined, fostering trust and confidence within the community.
Seed Generation
Bitcoin Knots uses an HD (Hierarchical Deterministic) seed for private key generation, deriving entropy from four key sources: low-level processor instructions, entropy extracted from the operating system, dynamic events, and static events.
Bitcoin Knots Alternatives
While there are several popular Bitcoin-only software wallets available, those capable of also functioning as full nodes, downloading and storing the entire blockchain within the software itself, are relatively few. Among these, Bitcoin Core stands out as the most well-known.
- Bitcoin Core: serves as the foundation for Bitcoin Knots, however it has notable differences. Notably, Bitcoin Core lacks the advanced features found in Knots. Additionally, Core failed to address the "Inscriptions" exploit, which was assigned CVE-2023-50428 by the National Vulnerability Database. This exploit targeted a vulnerability within Bitcoin Core, enabling malicious actors to spam the blockchain. Since 2013, Bitcoin Core has allowed users to set limits on the size of additional data in transactions they relay or mine (-datacarriersize). However, the Inscriptions exploit ingeniously bypassed this limitation by disguising data as program code, thus evading detection. To learn more, read our Bitcoin Core Review.
Bitcoin Knots Pros & Cons
Pros | Cons |
---|---|
✅ Based on Core, the original Bitcoin wallet/node software | ❌ Doesn't support seed phrases with advanced settings |
✅ Better performances than Bitcoin Core | |
✅ Maintained by thousands of contributors | |
✅ Open Source | |
✅ Free of charge | |
✅ Easy to use |
Is Bitcoin Knots right for you?
If you are looking for a more advanced and spam-resistant alternative to Bitcoin Core, while maintaining compatibility with Bitcoin's consensus rules, Bitcoin Knots is the solution for you.
Not only does Bitcoin Knots offer enhanced security as it builds upon the original Bitcoin client, but it also incorporates valuable additions, including effective spam filters to prevent to relay spam (like: ordinals, inscriptions, runes and so on) and potentially other types of malicious content.
Bottom Line
Bitcoin Knots is an upgraded version of the standard Bitcoin client implementations, engineered with extra security measures and useful features like spam filters, without breaking the consensus rules. It's like a stronger, more reliable option for transacting in the Bitcoin network.
If you're looking for a Bitcoin experience that's tough on spam and dependable, Bitcoin Knots is the solution. With its enhanced security features and user-friendly interface, Bitcoin Knots offers a robust platform for managing your digital currency transactions with confidence.
Bitcoin Knots Evaluation
With an exceptional 90/100 blockdyor score, Bitcoin Knots is one of the best Bitcoin software wallets out there.
Security: Bitcoin Knots prioritizes security with its open-source nature, allowing users to scrutinize the code for transparency. While being an internet-connected software wallet poses vulnerabilities, its PSBT function enables offline use, enhancing security. Their zero tolerance to spam thanks to the highly customizable mempool policies it's a great addiction.
User-friendliness: Bitcoin Knots aims for a user-friendly experience, serving both novices and experts. Its interface is intuitive, though beginners may find it challenging initially.
Compatibility: Bitcoin Knots boasts wide compatibility, supporting Windows, MacOS, and Linux. Its node functions are already integrated into many Bitcoin nodes, ensuring seamless integration.
Reputation: Bitcoin Knots is hailed as the cornerstone of the Bitcoin Network, serving as the undisputed Bitcoin wallet and node. Its reputation underscores its vital role in the ecosystem.
Cost: Bitcoin Knots is free. Its baseline Bitcoin Core, is funded from non-profit associations. This underscores the ethical value of supporting such a critical open-source project.