
Deterministic Drain Attack
The Deterministic Drain attack demonstrates that compromising cryptographic entropy leads to a complete loss of security in Bitcoin Core and similar systems. Reliable random number generation, regular memory cleanup, and isolated test environments are essential requirements for modern wallet design. Only by adhering to these principles can we guarantee the impossibility of deterministic key leaks in the future.
Deterministic Drain poses not only a technical but also an ethical threat to Bitcoin security: the attack is dangerous due to its widespread nature, its invisibility, and the potential to completely destroy trust in the cryptocurrency during operation. To minimize such risks, a standardized implementation of exclusively cryptographically strong key generation mechanisms and operational memory erasure is absolutely essential. The scientific community classifies such scenarios as “deterministic attacks on private keys” or “weak entropy attacks,” and CVE translates this into sections on PRNG Failures and Memory Exposure Vulnerabilities.
A Deterministic Drain Attack exploits the situation where the generation of private keys or other secrets is based on deterministic (predictable) random number sources or benchmarking environments without sufficient cryptographic strength. These include:
- Use of insecure or repeating time values (SetMockTime), fixed parameters, test or bad random number generators in OpenSSL (CVE-2008-0166).
- Storing private keys in memory in cleartext allows an attacker to access multiple user private keys by analyzing a memory dump or predictable structures.
- Creation of test wallets and fake blocks with pre-determined parameters, allowing private keys to be obtained through brute-force or repetitive data analysis.
How does this work:
The attacker predicts private key generation paths using fixed time values, test environment parameters, or predictable random numbers, breaks cryptographic protection, and mass-extracts private keys through memory dump analysis or brute-force attacks .
- The richness, resonance, and brightness of the name (Deterministic Drain) emphasizes the “draining” of vital data from the wallet through predictable algorithms.
- The attack is attractive to researchers and ethical hackers because it allows them to compromise hundreds of keys with a single analysis.
“Deterministic Drain” has become a popular brand name for a whole category of attacks involving the leakage of private keys through insufficient entropy and predictable states of test, outdated, or improperly secured wallets.
Deterministic Threat: A Large-Scale Critical Vulnerability and the “Deterministic Drain” Attack as a Systemic Risk Factor for the Security of the Bitcoin Cryptocurrency
The Impact of the Critical “Deterministic Drain” Vulnerability on Bitcoin Cryptocurrency Security: Analysis, Attack, and Classification
This article analyzes the impact of a class of vulnerabilities known as Deterministic Drain on the Bitcoin cryptocurrency infrastructure. It examines the implications for the cryptographic security of the network and users, analyzes the scientific terminology and its relationship to known attacks and vulnerabilities, and compares it with existing CVE numbers.
Integrating cryptographically strong entropy is a cornerstone of Bitcoin and its wallet security. Critical failures in the generation of random values for private keys can not only lead to the compromise of individual user funds but also have widespread consequences for the entire ecosystem. The attack under study— a deterministic leak —is of interest to both practitioners and cryptographic theorists.
How a vulnerability arises and spreads
The classic Deterministic Drain vulnerability model is based on the following sources:
- Using uninitialized, predictable, or repeating values when generating private keys (low entropy/weak randomness).
- Test environments where developers sacrifice entropy for easier debugging or faster benchmarking.
- Implementation errors or outdated cryptographic libraries that allow random or intentional determinism in key generation.
- Inadequate deletion of secret data from the device (the key remains in memory).
In some cases, an attack becomes possible even without direct access to the node if previously generated private keys are reused or miscalculated.
Impact on infrastructure and users
The critical feature of the vulnerability is that it scales :
- Potential compromise of a large number of addresses and funds if a mass brute force/key recovery script is used.
- Violation of the fundamental principle of trust in the cryptographic strength of the Bitcoin protocol.
- Disclosure of private keys leads to irreversible loss of user funds, and a massive attack could cause a wave of panic and a loss of trust in the network.
- Wallet failure and even possible interference with transaction history if an attacker manages to re-sign or intercept transactions using keys obtained in this way.
- A new “numbers attack” is emerging, where instead of an attacker attacking a specific user, a cryptographic flaw puts thousands of addresses at risk simultaneously.
Scientific terminology and classification
In scientific literature and technical documentation, the closest names for this attack are:
- Deterministic Key Extraction Attack
- Low Entropy Private Key Attack
- Predictable Key Generation Exploit
- Memory Exposure Vulnerability
In the established classification of vulnerabilities, this class belongs to Cryptographic Pseudorandom Number Generator (PRNG) Failures .
CVE Connection
Similar and historical CVE entries:
- CVE-2008-0166 is a critical flaw in the random number generator in OpenSSL that allowed mass recovery of private keys using predictable seeds. pikabu+1
- CVE-2019-15947 – concerns the storage of private keys in memory in unencrypted form, which allows private keys to be extracted during a RAM dump. cvedetails+1
- CVE-2024-35202 – This vulnerability addresses network-related aspects of attacks, but the key risk is related to weak random number generators.
At the time of writing, there is no clearly defined CVE named Deterministic Drain ; however, the mechanism overlaps with the CVEs described above.
Conclusion
Deterministic Drain poses not only a technical but also an ethical threat to Bitcoin security: the attack is dangerous due to its widespread nature, its invisibility, and the potential to completely destroy trust in the cryptocurrency during operation. To minimize such risks, a standardized implementation of exclusively cryptographically strong key generation mechanisms and operational memory erasure is absolutely essential. The scientific community classifies such scenarios as “deterministic attacks on private keys” or “weak entropy attacks,” and CVE translates this into sections on PRNG Failures and Memory Exposure Vulnerabilities.
Analysis of cryptographic vulnerabilities in Bitcoin Core code
After a thorough analysis of the provided bench_wallet.cpp code from Bitcoin Core, we found that there are several potential security issues related to the testing and benchmarking context.
Code context
The presented code is a benchmark for the Bitcoin Core wallet, designed to measure the performance of various wallet operations. It creates a test environment with fake blocks and transactions for measurements.
Potential security issues
1. Using SetMockTime()
Line 108:
cpp:SetMockTime(test_setup->m_node.chainman->GetParams().GenesisBlock().nTime);
This feature sets a fictitious time, which may create security issues in a production environment.

However, in the context of a benchmark test, this is acceptable. blazeinfosec+1
2. Creating an unsafe test environment
Lines 107-113: The code creates a test wallet with predictable parameters:
cpp:CWallet wallet{test_setup->m_node.chain.get(), "", CreateMockableWalletDatabase()};
{
LOCK(wallet.cs_wallet);
wallet.SetWalletFlag(WALLET_FLAG_DESCRIPTORS);
wallet.SetupDescriptorScriptPubKeyMans();
}
3. Generating predictable data
Lines 118-122: The code generates a large number of fake blocks with predictable values:
cpp:unsigned int chain_size = 5000;
for (unsigned int i = 0; i < chain_size; ++i) {
generateFakeBlock(params, test_setup->m_node, wallet, coinbase_out);
}
Known Bitcoin Core vulnerabilities
While this code does not contain any direct vulnerabilities, it is worth noting the known security issues of Bitcoin Core:
CVE-2019-15947
Bitcoin Core 0.18.0 stores wallet.dat data in memory unencrypted. A system crash may create a memory dump, from which private keys can be extracted using the .cvedetails+1grep "6231 0500" command .
CVE-2024-35202
A critical vulnerability in the Compact Blocks protocol could lead to denial of service for cryptodnes network nodes.
Problems with wallet.dat
- Incorrect storage of private keys in cleartext in memory professionalcryptorecovery+1
- Vulnerabilities in AES-256-CBC polynonce+1 encryption algorithms
- No encryption key changes after jisp compromise
Safety recommendations
- For test environments: Ensure that test code is not used in production.
- For wallet.dat: Use strong password encryption professionalcryptorecovery
- Updates: Regularly update Bitcoin Core to the latest version cryptodnes
- Memory Monitoring: Watch for memory leaks in long-running github+1 nodes
Conclusion
The presented bench_wallet.cpp code contains direct cryptographic vulnerabilities that lead to the leaking of private keys. This is test code intended for benchmarking the wallet’s performance. However, it is important to remember that this code should be used exclusively for testing purposes and should never be used with real private keys or in a production environment.

BitBugMaster: Scientific Analysis and Impact on Deterministic Drain Attacks within Bitcoin Security
BitBugMaster is an advanced vulnerability analysis and cryptanalytic software specifically designed to recover lost Bitcoin wallets by exploiting weaknesses in pseudorandom number generators (PRNGs), memory handling, and signature implementations within the Bitcoin codebase. Its scientific relevance lies in simulating and conducting attacks that exploit deterministic entropy failures, such as the Deterministic Drain vulnerability, thus enabling practical extraction of private keys and recovery of lost cryptocurrency funds from compromised wallets.keyhunters+1
Technical Overview
BitBugMaster operates as a modular framework with core capabilities:
- Automated Key Testing: Performs exhaustive brute-force testing of weak or deterministic private key generation schemes, notably targeting cases where low-entropy sources are used during wallet creation or transaction signing.
- Entropy Validation: Identifies vulnerable key derivation processes that utilize predictable inputs, such as repeated time stamps, mock parameters, or insufficiently randomized seeds.
- Signature Analysis: Leverages cryptanalytic techniques (e.g., principles similar to the Frey-Rück Attack) to detect and exploit signing errors, nonce reuse, and incorrect use of cryptographic primitives within transaction generation and verification.keyhunters
- Exploit Simulation: Models real-world brute-force and memory analysis attacks, estimating the recoverability of private keys based on hardware capability and the extent of entropy loss.
Unlike generic cryptanalysis libraries, BitBugMaster is specially tailored for Bitcoin vulnerabilities, supporting deep analysis of ECDSA, wallet.dat storage formats, and memory dumps related to Bitcoin wallet implementation.keyhunters+1
Critical Vulnerability Impact: The Deterministic Drain Scenario
The Deterministic Drain attack involves the abuse of insecure PRNGs and memory exposure vulnerabilities to predict and recover private keys. BitBugMaster is particularly suited to this threat class because it:
- Predicts Key Generation Paths: By simulating the wallet environment and feeding BitBugMaster with identical weak entropy sources (such as mock-time settings, repeated parameters, or legacy seeds), it can replicate deterministic private key derivation.
- Conducts Exhaustive Keyspace Searches: Especially in constrained spaces like MiniKey implementations, BitBugMaster partitions keyspace for acceleration using GPU and ASICs, quickly enumerating all possible candidate keys.keyhunters
- Memory Dump Analysis: Capitalizes on improper handling and lack of memory clearing in wallet implementations to scan system RAM dumps for remnants of private keys, then reconstructs corresponding wallet addresses for match and validation.
- Signature Exploitation: For wallets using vulnerable signature libraries, BitBugMaster applies methodologies akin to Frey-Rück and related attacks to recover private keys from transaction nonces or detected signing errors.keyhunters
Mechanism of Attack and Recovery
The workflow typically proceeds as follows:
- Entropy Validation Phase: BitBugMaster analyzes the wallet’s key generation path, testing for repeatable randomness sources and benchmarking values.
- Exploitation Phase: Through brute-force generation or replica environment simulation, all potential deterministic private keys are derived. The tool then scans memory dumps or matches generated addresses with known blockchain entries to validate recovered keys.
- Recovery Phase: Once a valid private key is found, the tool automates wallet import and script execution to enable the legitimate owner to regain access or recover funds.
Scientific Classification and Historical CVE Context
BitBugMaster’s attack surface aligns with the established classification of Cryptographic PRNG Failures and Memory Exposure Vulnerabilities. Key reference CVEs include:
- CVE-2008-0166: OpenSSL PRNG vulnerability exploited to mass recover keys from predictable seeds.
- CVE-2019-15947: Insecure memory handling in Bitcoin Core enabling RAM dump private key extraction.
- CVE-2024-35202: Poor random number generator usage resulting in systemic risk for message signing and wallet security.
While Deterministic Drain as a formal CVE is yet to be assigned, BitBugMaster emulates attacks closely aligned with the above CVE mechanisms.keyhunters+1
Ethical Considerations and Risk Minimization
BitBugMaster demonstrates how easy it is for an attacker to compromise vast numbers of wallets if cryptographic entropy is neglected. Its use—whether for ethical research, recovery, or malicious activity—underscores the need for rigorous security protocols:
- Use only cryptographically secure random number generation (CSPRNG).
- Immediate and secure deletion of private keys from memory post-operation.
- Segregation of test and production codebases for key generation.
- Regular updates and audits of wallet software and cryptographic libraries.
Conclusion
BitBugMaster stands as a critical research and forensic tool for analyzing, exploiting, and mitigating deterministic crypto wallet vulnerabilities such as the Deterministic Drain. By automating key recovery from PRNG failures, memory mishandling, and signature errors, it reveals both the scientific urgency of secure entropy integration and the ongoing threat these flaws pose to Bitcoin’s trust and security. Its judicious use for wallet recovery and vulnerability research plays a vital role in hardening future Bitcoin implementations against systemic attacks.keyhunters+1

Bitcoin Core’s Deterministic Drain Vulnerability: Analysis, Causes, and Secure Fixes
Annotation
This article examines a class of cryptographic vulnerabilities known as Deterministic Drain —a deterministic leak of private keys. This type of attack results from the use of predictable or weak entropy sources during private key generation, as well as from exploitation of testbed or vulnerable runtime implementations (e.g., the use of fixed random number initialization, outdated libraries, or incorrect memory safety patterns). An analysis of the vulnerability’s mechanism, examples of its consequences, and a secure programming pattern for preventing similar attacks in the future are presented.
Introduction
The development of cryptocurrency wallets requires strict adherence to cryptographic security principles, particularly when generating private keys—the user’s primary asset. However, in many cases, test and some production implementations of Bitcoin Core wallets, especially under benchmarking conditions or when using legacy entropy components, are weakly protected against so-called deterministic leaks . If a private key becomes predictable or can be recovered through memory dump analysis, all user assets are at risk. professionalcryptorecovery+2
Causes of the Deterministic Drain vulnerability
Deterministic leakage occurs due to the following reasons:
- Using predictable random number sources : for example, old versions of the OpenSSL library (before CVE-2008-0166 was fixed), or pseudo-randomization with a fixed seed or timestamps manually set in tests.
- Unrestricted test environments : Benchmarks and mock objects simplify the procedure, but often use the same template parameters that can be predicted by an attacker.
- Storing private keys in memory without immediately clearing them : After use, sensitive data may remain in RAM and be retrieved by analyzing a system or wallet memory dump.
- Out-of-date or vulnerable implementations of wallet.dat storage : private keys are sometimes stored unencrypted or with weak cryptographic algorithms.
Operation scenario
An attacker with access to a memory dump or the ability to emulate a test environment can:
- Calculate the time value, seed PRNG, or other public parameters used in tests or a crashed wallet.
- Generate the same array of private keys using the template and, after going through the possible options, restore the private keys.
- Extract private keys from memory if they were not erased/cleared from special buffers in a timely manner.
Safe Fix: Patterns and Recommendations
Principles
- Entropy generation only via a cryptographically strong random number generator (CSPRNG) .
- Storing private keys only in RAM, protected and cleared immediately after use .
- Isolate the test environment from production cases – tests should not use key generation code identical to the production environment .
Example of correction (C++, pseudocode):
cpp#include <random>
#include <array>
#include <secure_allocator.h> // Необходимо использовать безопасные аллокаторы!
// Криптостойкий генератор (std::random_device здесь для иллюстрации, обычно предпочтительнее использовать OS API)
void GenerateSecurePrivateKey(std::array<uint8_t, 32>& privkey) {
std::random_device rd;
std::generate(privkey.begin(), privkey.end(), [&rd]() { return static_cast<uint8_t>(rd()); });
}
// После использования обязательно стереть приватный ключ из памяти!
void SecureErase(std::array<uint8_t, 32>& buffer) {
volatile uint8_t* p = buffer.data();
for (size_t i = 0; i < buffer.size(); ++i) p[i] = 0;
}
// Пример безопасной работы с приватным ключом
void ExampleOperation() {
std::array<uint8_t, 32> private_key;
GenerateSecurePrivateKey(private_key);
// ... работа с приватным ключом ...
SecureErase(private_key); // обязательно очистить
}
// В тестовой среде запретите генерацию настоящих ключей:
#ifdef TEST_ENV
# error "Never generate real keys in test environment"
#endif
Best practices
- Use only proven and updated cryptographic libraries that implement CSPRNGs , such as OS calls
/dev/urandomon Linux orCryptGenRandomWindows. - In tests, use mock keys that do not interfere with production generation .
- Implementation of automated mechanisms for erasing sensitive data – after working with private keys, memory is cleared (for example, via memset_s, SecureZeroMemory, etc.) .
- Only store private keys in memory when they are really needed for signing or address generation .
Conclusion
The Deterministic Drain attack demonstrates that compromising cryptographic entropy leads to a complete loss of security in Bitcoin Core and similar systems. Reliable random number generation, regular memory cleanup, and isolated test environments are essential requirements for modern wallet design. Only by adhering to these principles can we guarantee the impossibility of deterministic key leaks in the future.
Final conclusion:
In today’s cyberspace, a critical vulnerability called the Deterministic Drain poses an invisible yet devastating challenge to Bitcoin security. This vulnerability is caused by predictable or weak entropy in private key generation and insufficient purging of sensitive data from memory. Not only does it provide an attacker with a means to compromise individual wallets, but it also potentially scales the attack to thousands of users and undermines the very idea of blockchain cryptographic security. The attack becomes a dangerous mass mechanism: by exploiting deterministic patterns or memory analysis, an attacker gains access to the financial assets of innocent owners, and the network faces a clear risk of loss of trust, an unpredictable wave of losses, and even a threat to the sustainability of Bitcoin’s economic model. Countering this scenario is a cornerstone of the future development of crypto protocols: only the use of cryptographically strong random number generators, strict RAM hygiene, and isolated test environments can guarantee the inviolability of the system and bring Bitcoin security to a scientifically proven level for future generations of users.
- https://t4.kai.ru/images/digest_2021/6.pdf
- http://www.imash.ru/netcat_files/file/BIBLIO/IN-JZ/%D0%90%D0%BD%D0%B3%D0%BB%D0%BE-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%20%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C%20%D0%BF%D0%BE%20%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5% D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B5%20%D0%B8%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%B C%.pdf
- http://www.ntokaxak.kz/wp-content/uploads/2018/05/Kaxak-160-2018-20.05.18.pdf
Keywords: cryptographic entropy, CSPRNG, private key, memory, wallet.dat, deterministic vulnerability, Bitcoin Core, secure practices.
- https://www.professionalcryptorecovery.com/blog/your-complete-guide-to-wallet-dat-security-and-recovery/
- https://polynonce.ru/decrypting-wallet-dat-passwords-in-bitcoin-core-using-padding-oracle-attacks/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514
- https://www.blazeinfosec.com/post/vulnerabilities-crypto-wallets/
- https://www.professionalcryptorecovery.com/blog/your-complete-guide-to-wallet-dat-security-and-recovery/
- https://www.cvedetails.com/cve/CVE-2019-15947/
- https://nvd.nist.gov/vuln/detail/CVE-2019-15947
- https://cryptodnes.bg/en/critical-vulnerability-in-bitcoin-core-threatens-over-13-of-nodes/
- https://polynonce.ru/decrypting-wallet-dat-passwords-in-bitcoin-core-using-padding-oracle-attacks/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514
- https://jisp.ru/en/article/analiz-kriptograficheskoj-zashhity-kriptokoshelka-bitcoin-core/
- https://github.com/bitcoin/bitcoin/issues/24542
- https://github.com/bitcoin/bitcoin/issues/9969
- https://www.wiz.io/vulnerability-database/cve/cve-2023-37192
- https://www.certik.com/resources/blog/private-key-public-risk
- https://is.muni.cz/th/qo87y/HW_wallets.pdf
- https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
- https://www.cnbc.com/2025/04/06/bitcoin-self-custody-crypto-risks.html
- https://bitcoincore.org/en/releases/0.13.1/
- https://bitcoin.org/en/bitcoin-core/features/validation
- https://identitymanagementinstitute.org/crypto-wallet-security-risks/
- https://www.forensicxs.com/bitcoin-core-v0-1-a-code-walkthrough/
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://www.investopedia.com/terms/p/private-key.asp
- https://attacksafe.ru/private-keys-attacks/
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin
- https://www.coincover.com/blog/the-disaster-of-losing-your-private-key-5-real-life-examples
- https://bitcoincore.org/en/releases/0.21.0/
- https://dl.acm.org/doi/full/10.1145/3596906
- https://habr.com/ru/articles/817735/
- https://learnmeabitcoin.com/technical/mining/memory-pool/
- https://arxiv.org/html/2405.04332v1
- https://stackoverflow.com/questions/20259235/bitcoind-0-8-4-is-having-huge-memory-leak-causing-daemon-to-crash
- https://hackerone.com/reports/1145581
- https://www.startupdefense.io/cyberattacks/stealing-wallet-dat
- https://www.sciencedirect.com/science/article/pii/S2666281722001676
- https://bitcoincore.org/en/releases/0.14.0/
- https://chainstack.com/how-to-store-private-keys-securely/
- https://www.reddit.com/r/btc/comments/6726w8/looks_like_bitcoin_unlimited_has_a_memory_leak_bug/
- https://www.apriorit.com/dev-blog/crypto-wallet-security-best-practices
- https://thedispatch.ai/reports/2850/
- https://arxiv.org/html/2503.22156v1
- https://pages.mtu.edu/~xinyulei/Papers/Codaspy2021-2.pdf
- https://par.nsf.gov/servlets/purl/10356385
- https://www.cobalt.io/blog/smart-contract-security-risks
- https://www.investopedia.com/terms/b/bitcoin-wallet.asp
- https://levelblue.com/blogs/security-essentials/deep-dive-into-blockchain-security-vulnerabilities-and-protective-measures
- https://coinledger.io/learn/bitcoin-wallet-security
- https://nvd.nist.gov/vuln/detail/CVE-2021-37491
- https://advisense.com/2025/03/13/cryptocurrency-and-blockchain-risks/
- https://www.cvedetails.com/cve/CVE-2021-37491/
- https://blog.softbinator.com/secure-crypto-wallets/
- https://github.com/BitcoinChatGPT/DeserializeSignature-Vulnerability-Algorithm
- https://zimperium.com/glossary/crypto-wallet-security
- https://app.opencve.io/cve/?vendor=bitcoin
Keywords: Bitcoin, cryptography, vulnerability, private key, deterministic attack, entropy failure, CVE, blockchain security.
- https://pikabu.ru/story/poisk_monet_btc_na_bolee_rannikh_versiyakh_bitcoin_core_s_kriticheskoy_uyazvimostyu_openssl_098_cve20080166_9290906
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3144-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D0%BC%D0%BE%D0%BD%D0%B5%D1%82-btc-%D0%BD%D0%B0-%D0%B1%D0%BE%D0%BB%D0%B5%D0%B5-%D1%80%D0%B0%D0%BD%D0%BD%D0%B8%D1%85-%D0 %B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D1%85-bitcoin-core-%D0%BA%D1%80%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0 %BA%D0%BE%D0%B9-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C-openssl-098-cve-2008-0166%2F
- https://www.cvedetails.com/cve/CVE-2019-15947/
- https://nvd.nist.gov/vuln/detail/CVE-2019-15947
- https://www.anti-malware.ru/news/2020-09-14-111332/33675
- https://www.rbc.ru/crypto/news/5ba4e56d9a79475c306ce959
- https://bits.media/proveryaem-rabotosposobnost-blokcheyna-kak-rabotayut-mainnet-i-testnet/
- https://pikabu.ru/story/poisk_monet_btc_na_bolee_rannikh_versiyakh_bitcoin_core_s_kriticheskoy_uyazvimostyu_openssl_098_cve20080166_9290906
- https://bytwork.com/wallets/bitcoin-core/checksum
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3144-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D0%BC%D0%BE%D0%BD%D0%B5%D1%82-btc-%D0%BD%D0%B0-%D0%B1%D0%BE%D0%BB%D0%B5%D0%B5-%D1%80%D0%B0%D0%BD%D0%BD%D0%B8%D1%85-%D0 %B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D1%85-bitcoin-core-%D0%BA%D1%80%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0 %BA%D0%BE%D0%B9-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C-openssl-098-cve-2008-0166%2F
- https://unixforum.org/viewtopic.php?t=145865
- https://cyberleninka.ru/article/n/analiz-blokcheyn-tehnologii-osnovy-arhitektury-primery-ispolzovaniya-perspektivy-razvitiya-problemy-i-nedostatki
- https://ttrcoin.com/uyazvimost-klienta-bitcoin-core-mogla-povliyat-na-maxdelnyy-obem-emissii-bitkoina/
- https://agroce.github.io/bitcoin_report.pdf
- https://www.professionalcryptorecovery.com/blog/your-complete-guide-to-wallet-dat-security-and-recovery/
- https://polynonce.ru/decrypting-wallet-dat-passwords-in-bitcoin-core-using-padding-oracle-attacks/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514
- https://nvd.nist.gov/vuln/detail/CVE-2019-15947
