OP_CAT was Re: Continuing the discussion about noinput / anyprevout

Posted by Jeremy

Oct 4, 2019/18:40 UTC

A proposal was made to replace OP_CAT with an OP_SHA256STREAM that uses the streaming properties of a SHA256 hash function to allow concatenation of an unlimited amount of data, provided the only use is to hash it. The proposed implementation would start a new hash with item, add the item to the hash in state, and finalize it. However, one issue with this is that the simplest implementation where the state is just raw bytes would expose raw SHA256 midstates, allowing people to use them directly. This could be prevented by adding types to the stack. It was noted that SHA256 isn't designed to be used in situations where adversaries control the initialization vector, and that midstate support was not added to OpenTimestamps for this reason. A link was provided to an example of an experienced cryptographer on the bitcoin-dev mailing list proposing a design that falls victim to this attack, and it was suggested that this issue should not be encouraged.

Link to Raw Post
Bitcoin Logo

TLDR

Join Our Newsletter

We’ll email you summaries of the latest discussions from authoritative bitcoin sources, like bitcoin-dev, lightning-dev, and Delving Bitcoin.

Explore all Products

ChatBTC imageBitcoin searchBitcoin TranscriptsSaving SatoshiBitcoin Transcripts Review
Built with 🧡 by the Bitcoin Dev Project
View our public visitor count

We'd love to hear your feedback on this project?

Give Feedback