Post
Topic
Board Development & Technical Discussion
Re: Silent payments
by
LoyceV
on 01/06/2022, 07:56:42 UTC
Yes, this is exactly what sprung to mind when I read this proposal. In my opinion, the biggest disadvantage - just as in Monero - is the need for transaction scanning.

There were around 100 million Bitcoin transactions in 2021 [1], while Monero only had around 5 million transactions in the same time [2] - a factor of 20 that is not insignificant I'd say, especially when using an SPV wallet. If you open it after a few weeks or months of inactivity, it will have to churn through a ton of computation if such a scheme was introduced in Bitcoin.
That's easy to prevent: don't add Silent payments to SPV wallets. If you want to use this, run your own full node, and keep it online. You'll download everything anyway, and only have to check a few transactions per second. That shouldn't give any problems. And it's better for privacy.

Maybe silent payments together with help of miners can break connection with senders. Let's say we added a rule to Bitcoin that when a sender sends 1 coin to some kind of null address then miner will include that transaction plus new type of transaction without inputs (similar to coinbase transaction) that pays back 1 coin to new silent payment address of the sender that only miner knows. We are assuming that miner will not reveal that information. In case miner cheated and sends coin to somewhere else, the sender probably can raise an alert(I have not thought of all the math) and honest nodes will reject that block. If lots of senders participate it will work like a mixer.
This would break the very basics of a blockchain. It's literally in the name: a chain that shouldn't be broken.

Quote
In case miner cheated and sends coin to somewhere else, the sender probably can raise an alert(I have not thought of all the math) and honest nodes will reject that block.
No. Just no. Let's not give the sender of a Bitcoin transaction the power to orphan blocks.

Code:
With master public key:


┌───────────┐ m/84'/0'/0'/0/0     ┌────────────┐  bc1q8g4...fjyjy       ┌────────────┐
│ Home node │◄───────────────────►│   Server   │◄──────────────────────►│ Visitor #1 │
└───────────┘                     └────────────┘                        └────────────┘



┌───────────┐ m/84'/0'/0'/0/1     ┌────────────┐  bc1qeud...ccr6f       ┌────────────┐
│ Home node │◄───────────────────►│   Server   │◄──────────────────────►│ Visitor #2 │
└───────────┘                     └────────────┘                        └────────────┘



┌───────────┐ m/84'/0'/0'/0/2     ┌────────────┐  bc1qwzx...2dxz7       ┌────────────┐
│ Home node │◄───────────────────►│   Server   │◄──────────────────────►│ Visitor #3 │
└───────────┘                     └────────────┘                        └────────────┘


 Et cetera.
What if you have billions of page loads? For a site such as TPB, that's very well possible and it means they have to monitor billions of addresses. Even if you don't monitor them continuously, you'll have to regularly check for donations. I haven't seen any website that shows a new Bitcoin address on each reload, which confirms to me it's not feasible.
With Silent payments, you only have to monitor a few transactions per second.