Peter Todd
Legendary
Offline
Activity: 1120
Merit: 1160
|
|
February 03, 2014, 10:31:15 AM |
|
Yeah, I figured there are hairy problems about scripts depending on arbitrary other transactions. Maybe Satoshi gave up on making script really work because he didn't know if he could do it right. Best to get a solid foundation first.
Heck, having transactions depend on other transactions in a block is a potential scalability problem because it makes it non-trivial to process blocks and update the UTXO set in parallel, especially in a lossely coupled manner. (ie multiple co-operating nodes)
|
|
|
|
zulu860
Full Member
Offline
Activity: 196
Merit: 100
iseebitcoins.com
|
|
February 03, 2014, 11:52:21 AM |
|
Wow thank you for posting this was fun to read
|
Bitcoins: 157TGFQRUWuBC5pREHcpkXfgCWGrQ9Zti6 iseebitcoins.com Zimstake: EDEtRKNMUMZrsMCxTKvnz8U2Y84NPQDS2r Cannabiscoin: CGj3H5AgJKTNeiPCsv2akbQiSSGUjcRjBE
|
|
|
mmeijeri
|
|
February 03, 2014, 01:24:33 PM |
|
Wow this is messed up, the whole thing is unsigned integers; it's all addition.
Double entry accounting is all unsigned integers and addition too. :-)
|
ROI is not a verb, the term you're looking for is 'to break even'.
|
|
|
mmeijeri
|
|
February 03, 2014, 01:28:04 PM |
|
I agree with your general point, but this jumped out: This is because a script may reveal information pertinent to the continuing blockchain. If it does so in an orphaned block, then that information is revealed when it ought not have been.
What are you thinking of that a (spending) script could reveal? A hash preimage?
|
ROI is not a verb, the term you're looking for is 'to break even'.
|
|
|
mmeijeri
|
|
February 03, 2014, 01:30:32 PM |
|
It would be nice if scripts had access to just the information in the transaction itself and that does not need access to block height or any other data from the rest of the blockchain. Things like number and amounts of the inputs, output scripts etc.
|
ROI is not a verb, the term you're looking for is 'to break even'.
|
|
|
Cryddit (OP)
Legendary
Offline
Activity: 924
Merit: 1132
|
|
February 03, 2014, 06:08:12 PM Merited by vapourminer (1) |
|
This is because a script (in an orphaned block) may reveal information pertinent to the continuing blockchain.
What are you thinking of that a (spending) script could reveal? A hash preimage? In principle, a script could reveal anything that was known to the spender prior to the transaction where the spend was made, or anything that could be derived from that knowledge and examination of the blockchain. A hash preimage, a key to decrypt some other binary blob, an arbitrary secret encoded to be read by someone else's private key, a "go" signal for some irreversible real-world operation, etc. It would suck to get a "go" signal from a script, go down to the bank, and prepare to do your part in an escrow agreement by cashing out a bunch of bonds early (at a loss) so you have cash, then come back home and discover that the "go" signal happened in an orphaned chain. On the one hand, poor logistical planning to do your business that way. On the other, there are sometimes reasons to do weird shit like that, and doing weird shit like that would inspire attacks designed to have exactly the false-signal effect described. We think of scripts as returning a single bit. Either the spend succeeds or not. But remember the value that success or failure depends on is a binary blob the size of a key, and everybody checking the blockchain can read it.
|
|
|
|
|
Altoidnerd
|
|
February 21, 2014, 07:29:54 AM |
|
I'll post these on my blog, for historical reasons. Unless anyone has a problem with it.
I will link and source this discussion.
|
|
|
|
benjyz
|
I've got the 0.1 version and the nov08 version on github. blogs are not a good CVS. https://github.com/benjyz/bitcoin0.1/tree/master/nov08the main files from the 0.1 source code in 7000 LOC. 2660 ./main.cpp 1127 ./script.cpp 1020 ./net.cpp 604 ./db.cpp 554 ./sha.cpp 373 ./util.cpp 265 ./irc.cpp 264 ./market.cpp 6867 total
|
|
|
|
|
deepceleron
Legendary
Offline
Activity: 1512
Merit: 1036
|
|
February 21, 2014, 05:02:07 PM Merited by vapourminer (1) |
|
|
|
|
|
itod
Legendary
Offline
Activity: 1974
Merit: 1077
^ Will code for Bitcoins
|
|
February 21, 2014, 05:17:17 PM |
|
Cool, thanks, didn't knew that.
|
|
|
|
|
Joe_Bauers
|
|
February 25, 2014, 04:37:11 PM |
|
I've got the 0.1 version and the nov08 version on github. blogs are not a good CVS. https://github.com/benjyz/bitcoin0.1/tree/master/nov08the main files from the 0.1 source code in 7000 LOC. 2660 ./main.cpp 1127 ./script.cpp 1020 ./net.cpp 604 ./db.cpp 554 ./sha.cpp 373 ./util.cpp 265 ./irc.cpp 264 ./market.cpp 6867 total Cool, thanks for doing this. I still think it should also be added to the official repo, but whatever I suppose...
|
|
|
|
Peter Todd
Legendary
Offline
Activity: 1120
Merit: 1160
|
|
February 25, 2014, 05:24:09 PM |
|
I've got the 0.1 version and the nov08 version on github. blogs are not a good CVS. https://github.com/benjyz/bitcoin0.1/tree/master/nov08the main files from the 0.1 source code in 7000 LOC. 2660 ./main.cpp 1127 ./script.cpp 1020 ./net.cpp 604 ./db.cpp 554 ./sha.cpp 373 ./util.cpp 265 ./irc.cpp 264 ./market.cpp 6867 total market.cpp? I don't see that in your repo - do you actually have a copy of it?
|
|
|
|
benjyz
|
|
February 25, 2014, 05:44:24 PM |
|
yes. I restored the full version with header files in the bitcoin0.1 folder. it looks like a small auction system as Mike said above. it's only 260 lines. https://github.com/benjyz/bitcoin0.1/blob/master/bitcoin0.1_version/market.cppso there are 3 versions in the repo (probably should be separate trees): * the root folder only contains the main files for study purposes * the nov08 version * the full 0.1 version with headers and unused parts like the market.cpp
|
|
|
|
mmeijeri
|
|
February 25, 2014, 06:52:38 PM |
|
It would be fun to see what would be needed to get the oldest version to compile and run. You could fill in the blanks with stuff from later versions and then remove what isn't needed to make it work.
|
ROI is not a verb, the term you're looking for is 'to break even'.
|
|
|
Peter Todd
Legendary
Offline
Activity: 1120
Merit: 1160
|
|
February 25, 2014, 07:20:18 PM |
|
yes. I restored the full version with header files in the bitcoin0.1 folder. it looks like a small auction system as Mike said above. it's only 260 lines. https://github.com/benjyz/bitcoin0.1/blob/master/bitcoin0.1_version/market.cppso there are 3 versions in the repo (probably should be separate trees): * the root folder only contains the main files for study purposes * the nov08 version * the full 0.1 version with headers and unused parts like the market.cpp Awesome thanks! Where exactly did you get this code from? Might be good to add some notes about the source of it in the README. If you have, say, zip files good to put them in the repo for archival purposes. (this is important history after all)
|
|
|
|
|
|
|