monero/tests/unit_tests
jeffro256 b0bf49a65a
blockchain_db: add k-anonymity to txid fetching
Read more about k-anonymity [here](https://en.wikipedia.org/wiki/K-anonymity). We implement this feature in the monero daemon for transactions
by providing a "Txid Template", which is simply a txid with all but `num_matching_bits` bits zeroed out, and the number `num_matching_bits`. We add an operation to `BlockchainLMDB` called
`get_txids_loose` which takes a txid template and returns all txids in the database (chain and mempool) that satisfy that template. Thus, a client can
ask about a specific transaction from a daemon without revealing the exact transaction they are inquiring about. The client can control the statistical
chance that other TXIDs (besides the one in question) match the txid template sent to the daemon up to a power of 2. For example, if a client sets their `num_matching_bits`
to 5, then statistically any txid has a 1/(2^5) chance to match. With `num_matching_bits`=10, there is a 1/(2^10) chance, so on and so forth.

Co-authored-by: ACK-J <60232273+ACK-J@users.noreply.github.com>
2023-08-01 17:25:25 -05:00
..
account.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
address_from_url.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
aligned.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
apply_permutation.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
base58.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
block_queue.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
block_reward.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
blockchain_db.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
bootstrap_node_selector.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
bulletproofs_plus.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
bulletproofs.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
canonical_amounts.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
chacha.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
checkpoints.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
CMakeLists.txt common: do not use DNS to determine if address is local 2023-07-03 13:34:39 +02:00
command_line.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
crypto.cpp add crypto/generators for direct access to canonical fixed generators 2023-06-28 09:52:27 -05:00
decompose_amount_into_digits.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
device.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
difficulty.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
dns_resolver.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
epee_boosted_tcp_server.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
epee_levin_protocol_handler_async.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
epee_serialization.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
epee_utils.cpp Add to_hex::buffer 2023-05-22 13:36:05 -04:00
expect.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
fee.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
get_xtype_from_string.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
hardfork.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
hashchain.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
hmac_keccak.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
http.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
is_hdd.cpp Merge pull request #4424 2018-09-29 22:19:44 +02:00
json_serialization.cpp clang: fix -Wrange-loop-analysis warnings 2021-04-27 05:30:27 +02:00
json_serialization.h Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
keccak.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
levin.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
lmdb.cpp blockchain_db: add k-anonymity to txid fetching 2023-08-01 17:25:25 -05:00
logging.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
long_term_block_weight.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
main.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
memwipe.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
mlocker.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
mnemonics.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
mul_div.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
multiexp.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
multisig.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
net.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
node_server.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
notify.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
output_distribution.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
output_selection.cpp Merge pull request #8802 2023-04-25 11:26:20 -04:00
parse_amount.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
pruning.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
random.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
ringct.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
ringdb.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
rolling_median.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
rpc_version_str.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
scaling_2021.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
serialization.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
sha256.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
slow_memmem.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
subaddress.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
test_notifier.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
test_peerlist.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
test_protocol_pack.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
test_tx_utils.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
threadpool.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
tx_proof.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
unbound.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
unit_tests_utils.h Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
uri.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
util.cpp common: do not use DNS to determine if address is local 2023-07-03 13:34:39 +02:00
variant.cpp variant: add mutable unwrap and visitation 2023-02-12 13:00:53 -06:00
varint.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
ver_rct_non_semantics_simple_cached.cpp verRctNonSemanticsSimpleCached: fix fragility 2023-03-17 18:45:35 -05:00
vercmp.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
wipeable_string.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00
zmq_rpc.cpp Copyright: Update to 2023 2023-01-16 13:00:18 +01:00