Author

Topic: Brain-bug: Open Asset Protocol (Read 207 times)

hero member
Activity: 798
Merit: 1045
Goodnight, ohh Leo!!! 🦅
September 03, 2022, 06:08:02 PM
#7
@NotATether,

Thanks so much for a little illumination over my blurred perception.. it was quite unclear: how OP_PUSHDATA works,how it pushes, why some substantial data is left behind and only one is picked out of the group.
Tbh,I have learnt alot and I saw your replies long ago,just that I had to go on diverse ethical research to know if it cuts! As I said, if I come across any difficulties in the near future,I'll still get back to everyone here- seems we have alot of bitcoin Albiet and Sir Newton? 😂

Cheers,
Sandra❣️
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
September 01, 2022, 02:37:00 AM
#6

OP_RETURN is used to make a script fail therefore any bitcoin sent in a script that has OP_RETURN will be locked (lost) forever. It is used by some protocols to put text messages on the Blockchain.

Hmm,
I was thinking maybe that's just one of it function? and it has alot more; take a good look at something I found.

The illus at
https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki

Code:
Data in the marker output      Description
    -----------------------------  -------------------------------------------------------------------
    0x6a                           The OP_RETURN opcode.
    0x10                           The PUSHDATA opcode for a 16 bytes payload.
    0x4f 0x41                      The Open Assets Protocol tag.
    0x01 0x00                      Version 1 of the protocol.
    0x03                           There are 3 items in the asset quantity list.
    0xac 0x02 0x00 0xe5 0x8e 0x26  The asset quantity list:
                                   - '0xac 0x02' means output 0 has an asset quantity of 300.
                                   - Output 1 is skipped and has an asset quantity of 0
                                     because it is the marker output.
                                   - '0x00' means output 2 has an asset quantity of 0.
                                   - '0xe5 0x8e 0x26' means output 3 has an asset quantity of 624,485.
                                   - Outputs after output 3 (if any) have an asset quantity of 0.
IMO, it means an OP_RETURN serves playrole differently in diverse operations ; that's very obvious in this case or maybe I'm wrong?

Here is a breakdown of what the above script does:

- OP_RETURN prevents the output from being spent, by exiting the script interpreter immediately.
- OP_PUSHDATA pushes some data onto the stack (note that this and all subsequent opcodes are not executed, the script has already edited. So this data has to be viewed by looking at a script from a block explorer only.)
- 0x4f, 0x41, etc... are not opcodes, these are bytes that are "pushed on the stack" (again, because the script has already exited, nothing is going to be pushed anymore, therefore this data must be viewed from the script itself).
hero member
Activity: 798
Merit: 1045
Goodnight, ohh Leo!!! 🦅
August 31, 2022, 07:36:29 PM
#5

OP_RETURN is used to make a script fail therefore any bitcoin sent in a script that has OP_RETURN will be locked (lost) forever. It is used by some protocols to put text messages on the Blockchain.

Hmm,
I was thinking maybe that's just one of it function? and it has alot more; take a good look at something I found.

The illus at
https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki

Code:
Data in the marker output      Description
    -----------------------------  -------------------------------------------------------------------
    0x6a                           The OP_RETURN opcode.
    0x10                           The PUSHDATA opcode for a 16 bytes payload.
    0x4f 0x41                      The Open Assets Protocol tag.
    0x01 0x00                      Version 1 of the protocol.
    0x03                           There are 3 items in the asset quantity list.
    0xac 0x02 0x00 0xe5 0x8e 0x26  The asset quantity list:
                                   - '0xac 0x02' means output 0 has an asset quantity of 300.
                                   - Output 1 is skipped and has an asset quantity of 0
                                     because it is the marker output.
                                   - '0x00' means output 2 has an asset quantity of 0.
                                   - '0xe5 0x8e 0x26' means output 3 has an asset quantity of 624,485.
                                   - Outputs after output 3 (if any) have an asset quantity of 0.
IMO, it means an OP_RETURN serves playrole differently in diverse operations ; that's very obvious in this case or maybe I'm wrong?

Edit*
I create thread about OP_RETURN, but it was a year ago. See Some question about OP_RETURN. If it's not what you're looking for, you probably refer to thread Can't NFTs work on Bitcoin?.

Yeah, a great deal.
I found all informations through those links very useful; most especially the first one.
I'm currently running programs exclusively for adults on this: I'll have to create new threads whenever I have Complexities like this one, stay tuned.
P/s: any further contributions et critics are welcomed
Thanks alot 👩‍🦱
Cheers

Sandra❣️
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
August 31, 2022, 02:07:27 AM
#4
Section 2:
The maker output starts with an OP_RETURN opcode but it must contain PUSHDATA opcodes containing a parsable Open Assets marker payload. If multiple parsable PUSHDATA opcodes exist in the same output, the first one is used, and the other ones are ignored.

Q3:
• i haven't really run SHA256 hashes on mainet so I don't know if PUSHDATA produces the same random figures on different trnx? That's not true right?
•Are those PUSHDATA some compacted replicable codes so for that reason, anyone of them could function?
• if at the tail end,one phase of the code serves, what's the point of replication then? security?
Lastly, someone made a post bout OP_RETURN weeks ago(should be @NotAtheter, @ETFbitcoin or @blackHatCoiner?) if only I can vividly remember.... The OP was curious bout main function of OP_RETURN; the above should serve as one major function☺️

OP_PUSHDATA can be used to push anything, any kind of data. There is no restrictions to the type of data that can be pushed.

Most scripts use OP_PUSHDATA to push some variable to the stack which should match some computation which is calculated earlier in the script. This kind of equivalence checking is used to make the script succeed or fail, which corresponds to unlocking the outputs or leaving them locked respectively.

OP_RETURN is used to make a script fail therefore any bitcoin sent in a script that has OP_RETURN will be locked (lost) forever. It is used by some protocols to put text messages on the Blockchain.
hero member
Activity: 798
Merit: 1045
Goodnight, ohh Leo!!! 🦅
August 31, 2022, 01:33:28 AM
#3
Coinbase transactions don't need to be signed by anyone - these contain the rewards miners receive from generating a new block (plus fees that have been spent on transactions).

For question one, to pay someone you have to provide a hash of their public key as an output.
To spend that output you have to provide the hash that you were output to and then your public key (and miners have to verify your public key can become the hash/address - and then validate the signature).

The hash is a redundant security measure (redundant means extra in this case, it doesn't mean useless). It enables for bitcoin to remain fairly secure if the main signature algorithm fails.

Thanks @jackg
I have taken great note of your aphorism and I think atleast I have understood why the hashes are redundant and how miners  makes profit as the system block size increases tbh, I think I'm clear on that Smiley...

I still have some other relevant questions below,I'll be glad to hear from anyone else.
Regards

Sandra❣️
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
August 30, 2022, 12:44:31 PM
#2
Coinbase transactions don't need to be signed by anyone - these contain the rewards miners receive from generating a new block (plus fees that have been spent on transactions).

For question one, to pay someone you have to provide a hash of their public key as an output.
To spend that output you have to provide the hash that you were output to and then your public key (and miners have to verify your public key can become the hash/address - and then validate the signature).

The hash is a redundant security measure (redundant means extra in this case, it doesn't mean useless). It enables for bitcoin to remain fairly secure if the main signature algorithm fails.
hero member
Activity: 798
Merit: 1045
Goodnight, ohh Leo!!! 🦅
August 30, 2022, 12:21:22 PM
#1
I have had alot of controversies over the last one but I have decided to share this one;

P/s: I'm a tutor and I add everything I learn to my tutoring scheme ofcourse,that's how it works. For this reason, I will really be pleased if every reply is properly ascertain💆
Section 1:
 Assets are pseudonymously represented by iDs i came to realize that even though this asset have IDs, the anonymity is maintained. These definitely means that asset don't have any prior means of recognition or identification without their IDs which, ofcourse has to be hashed by the issuer, using an already generated privkey right? I need more clarity.

Q1
  • Quote
    The ID of an asset is the RIPEMD-160 hash of the SHA-256 hash of the output script referenced by the first input of the transaction that initially issued that asset (script_hash = RIPEMD160(SHA256(script)))

    Q2
    The integer or ID itself is a product of a SHA256 hash in reference to an input that initially issued that asset? Is this supposed to mean that if an asset came from a different source entirely,that it references are recorded for intermediary trnxs or what?  Huh
  • what if an output for the assets were being sent out to the receiver for the first time which will mean having no reference,how then are the integers or IDs hashed?


Section 2:
The maker output starts with an OP_RETURN opcode but it must contain PUSHDATA opcodes containing a parsable Open Assets marker payload. If multiple parsable PUSHDATA opcodes exist in the same output, the first one is used, and the other ones are ignored.

Q3:
• i haven't really run SHA256 hashes on mainet so I don't know if PUSHDATA produces the same random figures on different trnx? That's not true right?
•Are those PUSHDATA some compacted replicable codes so for that reason, anyone of them could function?
• if at the tail end,one phase of the code serves, what's the point of replication then? security?
Lastly, someone made a post bout OP_RETURN weeks ago(should be @NotAtheter, @ETFbitcoin or @blackHatCoiner?) if only I can vividly remember.... The OP was curious bout main function of OP_RETURN; the above should serve as one major function☺️

Sorry if the whole thing is cumbersome....feel free to drop your ideas cus I LEARN AS I TEACH.
The ILLUS at GitHub   https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki
Sandra Kiss
Jump to: