8

I have been hearing a lot lately about "OP_EVAL", what is it?

Gavin has mentioned it here: http://sourceforge.net/mailarchive/forum.php?thread_name=201110130938.35014.luke%40dashjr.org&forum_name=bitcoin-development

AFAIK it's what the military does after an operation...

Michael Folkson
  • 14,337
  • 3
  • 11
  • 45
Alex Waters
  • 3,171
  • 2
  • 24
  • 39
  • **Update:** Gavin has created an [article](https://github.com/gavinandresen/bitcoin-git/wiki/BIP-OP_EVAL) for OP_EVAL on the Github Wiki for the Bitcoin Project which explains it in exhaustive detail. – David Perry Oct 19 '11 at 23:55
  • This was allocated a BIP number (BIP 12) and can now be found here https://github.com/bitcoin/bips/blob/master/bip-0012.mediawiki – Michael Folkson Feb 21 '23 at 19:27

1 Answers1

8

OP_EVAL is a new opcode (operation code) for the Bitcoin block chain scripting language, proposed in this thread.

What this opcode does is take a binary representation of a script from the data supplied for authorizing use of an output, and add the corresponding script to what is being evaluated.

The goal of this is to create Bitcoin addresses which, to use, require an arbitrary verification scheme, without people sending to that address needing to know what the script is.

The "killer app" for this is for people who don't want to lose all their bitcoins if their computer is compromised. They will use addresses where coins can only be spent if signatures from two different keys stored on separate devices are provided. Again, this is transparent to others sending to this person, they only need to know the address and not the details of his desired script.

Meni Rosenfeld
  • 19,650
  • 35
  • 70
  • So to clarify, that scene where Xenia and Ourumov turn a key at the same time to activate the Golden Eye - that is kind of like an OP_EVAL? It's just an additional layer of security? – Alex Waters Oct 17 '11 at 23:32
  • and, could more than two keys be required? – Alex Waters Oct 17 '11 at 23:33
  • 1
    Yes, this is the kind of application that OP_EVAL enables. But to clarify, even without OP_EVAL, the manufacturer can be instructed to build the Golden Eye so that both Xenia and Ourumov need to turn a key to activate it. With OP_EVAL, the manufacturer can be kept in the dark about what the needed procedure will be - he is only given a hashed version of the procedure. – Meni Rosenfeld Oct 18 '11 at 06:04
  • 1
    And yes, you could use it for a variety of scripts, such as the requiring 3 or more keys. The exact possibilities depend on the capabilities of the rest of the scripting language, but I think you could make it "2 out of 3 keys required", or make the coins spendable only after a given time, etc. – Meni Rosenfeld Oct 18 '11 at 06:04