No

Reply to this note

Please Login to reply.

Discussion

Can you help me with understanding what would stop that? I'm not trying to assume that you're only running core in this scenario. I just want to see if you could obfuscate the payload in a future block and let a local client execute something seemingly innocent based on a future planned block's malicious payload

You could encode anything in a block, but your node will interpret it as bitcoin script which has a very limited feature set by design. If you put python code in there, it's not going to run through a python interpreor

But there's nothing stopping an outside package from using that encoding for its own purpose right?

Ie using a future block to social attack people like Umbrel users that want to take part in a upcoming 'inscription airdrop'...they install an app that calls an event on 'launch day' but launch day is a planned malicious code drop to takeover their nodes

Or for that matter just turning Bitcoin into a giant pentesting toolbox for any machine storing a copy of the Blockchain

This is what I'm looking at but just wondering what some more interesting executions could be

this is good, fill the mempool with porn, virus, phishing etc.

and kill the incentive to keep dumping shit on the block :)

Wouldn't that drive the incentive for more users to do the same with data they find valuable?

at least that would kill the useless JPGs hahaha

The node will ignore it. In most programming paradigms the Ord code would be considered a bug because it is useless to the functioning of the protocol and just slows it down and takes up space unnecessarily. There are certain things that would be recognized as useful in the witness space like keys, which is what the taproot update intended it to be used for if I understand correctly. Ord in the code is almost like # where everything that comes after it is a comment and not executed. However the Force command is used multiple times to get all the data into the block because in normal circumstances nothing more than 512-bits (I think) is inserted in this place.

I don't so much envision bitcoin core executing the stored code. I envision someone using an external tool to grab the code to run from the blockchain data itself.

The example I've given people is a Happy 21st Bitcoin Birthday NFT airdrop. The backers tell everyone to go download their Umbrel application to manage the airdrop. The Umbrel app is open source and shows no sign of malware. Instead it just looks to execute a future block payload presumably to issue the NFT, or so the creators say. Then after the creators feel confident they have enough nodes with their package they mint a future block that contains the malicious payload.

This attack wouldn't be much different than including an application that just points to a future URL that isn't active yet. It could easily be protected against by anyone auditing the code. That being said I don't think Umbrel users are going to be auditing code. They are just going to install things that seem 'fun' or useful to them. If another cloak with a sufficient story tells them not to worry then I think most just look past it.

I just think it's an interesting attack vector for using the blockchain data as a penetration tool. If every bit of commerce is going to be using Bitcoin in the future then node operators will need to ensure they are using best practices of limiting access to that specific node as much as possible on both sides.