In Bitcoin, every node does more than just 'rely on others'—it independently validates all transactions and blocks against the full ledger. This isn't the same as saying 'my friend lifts weights for me.' It's more like being part of a gym where everyone lifts weights regularly. Each node in the Bitcoin network continuously checks for double spends, invalid blocks, or any deviations from the protocol, and nodes would reject such anomalies automatically. Yes, this process is automated, but it is still a form of active verification. Passive node runners are still contributing to the security and decentralization of the network by running this software.

Yes, there have been bugs and issues in Bitcoin's history, but the key difference is transparency. When a bug or double spend occurs, it's visible on the public ledger, and anyone can examine the blockchain to understand what happened. This isn't true for Monero due to its obfuscated transaction data. If a flaw exists in Monero's cryptographic assumptions, detecting it without transparency would be far more challenging, especially for passive users who can only rely on cryptographic proofs, not visible transactions.

Your argument suggests that because most Bitcoiners don’t manually audit transactions, they’re akin to Monero node runners. However, Monero node runners can't manually verify the total supply or audit individual transactions because the protocol doesn't allow it. The difference isn't about whether or not individual users actively engage in auditing; it’s about the system's openness and the ability for anyone, at any time, to verify the entire ledger if they choose.

So, while some Bitcoin users might rely on the broader network to audit the blockchain, they still could audit independently if they wished. This inherent capability provides a level of assurance and trust that isn’t dependent solely on cryptographic methods, unlike Monero. The option to verify independently or trust the network is a choice Bitcoin offers, while Monero, due to its privacy focus, inherently restricts this transparency."

Reply to this note

Please Login to reply.

Discussion

What you say is we need an independent script that verifies the Monero supply. It's actually a great idea as this has been the most prominent critique from maxis.

Pedersen commitments are well understood.

It's trivial to do this, learn to code

from monero.backends.jsonrpc import JSONRPCDaemon

from monero.transaction import Transaction

# Connect to your Monero node's JSON-RPC server

daemon_rpc_host = "127.0.0.1"

daemon_rpc_port = "18081"

rpc_user = "your_rpc_username"

rpc_password = "your_rpc_password"

daemon = JSONRPCDaemon(host=daemon_rpc_host, port=daemon_rpc_port, user=rpc_user, password=rpc_password)

def verify_monero_supply():

try:

# Step 1: Verify total mined supply based on the emission schedule

total_mined = 0.0

last_block_height = daemon.info().height - 1

for block_height in range(1, last_block_height + 1):

block = daemon.get_block_by_height(block_height)

# Verify block reward aligns with the expected reward

total_mined += block.reward

# Step 2: Verify cryptographic proofs in each transaction

for block_height in range(1, last_block_height + 1):

block = daemon.get_block_by_height(block_height)

for txid in block.tx_hashes:

tx = daemon.get_transaction(txid)

transaction = Transaction(tx)

# Verify Pedersen Commitments

if not transaction.verify_pedersen_commitments():

print(f"Failed Pedersen commitment verification in transaction {txid}")

return

# Verify Bulletproofs (range proofs)

if not transaction.verify_bulletproofs():

print(f"Failed Bulletproof verification in transaction {txid}")

return

# Verify Ring Signatures

if not transaction.verify_ring_signatures():

print(f"Failed Ring Signature verification in transaction {txid}")

return

print(f"Total Monero Mined: {total_mined:.12f} XMR")

print("All cryptographic proofs verified successfully. No inflation detected.")

except Exception as e:

print(f"An error occurred during verification: {e}")

if __name__ == "__main__":

verify_monero_supply()

There you go. The problem is it relies on complex cryptography to accomplish this, which is one of the criticisms of Monero. For more details study the library's implementation of

verify_pedersen_commitments

verify_bulletproofs

verify_ring_signatures

As far as pedersen being well understood... by whom, by you? I don't think so.

"On the other hand, we need computers, and the method will convince only those that trust both math and the computer they use."

https://crypto.stackexchange.com/questions/64437/what-is-a-pedersen-commitment#64443

Not a cryptographer, but the math behind is not so difficult. But as the commentor of the link wrote. There is trust involved in math and in the machine you use.

I'd suggest you to talk ti some of the cryptographers you'll find in the Monero community.

For some use cases it is not acceptable to trust, in that cases Bitcoin is preferable over Monero. For other use cases the trust is acceptable.

Most Monero supporters also have been early Bitcoiners. Therefore hold huge bags of both coins. Would I ever consider to spend Bitcoin without going through Monero first? No, because I don't know the future and how the future dictators will treat my financial past. Do I treat Bitcoin as a store of value. Yes.

By the way. Monero is a rather stable coin, like you'd expect from a currency.