In discussion on the BitDNS thread I came up with an idea for
overlaying other protocols onto Bitcoin. From one point of
view, Bitcoin is a global, decentralized, yet consistent
database. This DB is used to record transfers of coins, but it
could potentially be used for more. There are many applications
for a global consistent database.
Borrowing from my BitDNS description, the way this would work
is we would use the mysterious and extravagant "scripting"
system to add additional data to regular Bitcoin transactions.
These would look like NOPs to current clients and be ignored,
but overlay aware clients would look inside this NOP block and
see the extra protocol-specific data, and interpret it
according to the overlay protocol.
Specifically i could imagine using OP_NOP1 to signal overlay
data, then OP_PUSHDATA to push the specific data, then OP_DROP
to drop it from the stack, followed by the regular tx opcodes.
This will have no effect on regular clients and look like a
regular transaction (can be a dummy tx, 0.01 to yourself) but
overlay aware code sees a protocol transaction.
As an example, Bitcoin could be used as an inexpensive
timestamp service, allowing you to prove that a certain
document existed on or before a certain date. All you need to
do is create a dummy transaction to yourself, and hack the
client to do an OP_PUSHDATA of the hash of the document, then
OP_DROP it. The hash will be around for all time in the block
chain and stand as proof that the document existed at that
on December 04, 2010, 10:45:34 PM
† Harold Thomas Finney II