PeerAssets: Whitepaper


#41

but wait, if tokens are divisible, does it mean it has a denomination? In like 1 btc equals 1e8 satoshis, 1 asset can be denominated in 100 cents? if so what is the amount represented in OP_RETURN, assets or assets-cents?


#42

Assets/Tokens a.k.a Cards can be indefinitely divisible.

From whitepaper:

Incoming quantitiy of cards must be a float non-zero number.

Which means it can be 10, 10.10 or 10.000000000001. It should really be up to software (client), not about user.
Client should be made to limit this to some reasonable number of decimals.


#43

I agree with taking the first non-self.

However, a P2TH output is indistinguishable from a P2PKH output.
So if we just agree on the first non-self, that would work without issue.

I’d propose to fix the types of the first three outputs and their order, as that would increase the client’s performance. And all outputs following them can then safely be ignored and contain anything you like.


#44

Since assets are not fixed to any quantity unlike bitcoin, would nt it be simpler to issue more cards/assets and stick to nice unsigned integers instead?


#45

I agree with taking the first non-self.

However, a P2TH output is indistinguishable from a P2PKH output.
So if we just agree on the first non-self, that would work without issue.

I’d propose to fix the types of the first three outputs and their order, as that would increase the client’s performance. And all outputs following them can then safely be ignored and contain anything you like.[/quote]

Agreed. Good idea.
I’ll give this some more though and let you know tomorrow.

Thx @thehuntergames for bringing this up.


#46

Let’s leave that to asset issuers.


#47

Putting aside that you cant buy fractions of Big Macs in the real world or a third of an Apple stock,
programmers don’t like floats, especially when accounting balances. 10.0000001 != 10.0


#48

[quote=“thehuntergames, post:47, topic:3896”]Putting aside that you cant buy fractions of Big Macs in the real world or a third of an Apple stock,
programmers don’t like floats, especially when accounting balances. 10.0000001 != 10.0[/quote]

Well yes you are correct. But for computers any float is the same.
Only thing protocol can enforce is the type of a number.

You think it should be integers instead?


#49

yes, even satoshi nakimoto coded with satoshis :stuck_out_tongue: which are int64


#50

The problem with floats is that big floats have a precision >1 (variable absolute precision).
That’s why decimals where invented for financial stuff: http://stackoverflow.com/questions/803225/when-should-i-use-double-instead-of-decimal

In short, floats will fail in keeping the total balace at 0 due to rounding errors. So either go for decimals or for integers.
I’d also go for integers as they can be very efficiently stored using varints and zigzag encoding:
https://developers.google.com/protocol-buffers/docs/encoding#varints
https://developers.google.com/protocol-buffers/docs/encoding#signed-integers


#51

This type of project can bring real intrinsic value to the crypto-space. The blockchains store information on ownership and existence of real life objects. Thus begins to race for the most secure blockchain for the preservation for a perfect record. As the records grow, so does the value to keep and maintain the blockchain.

Questions:

To conclude the trade agreement, Alice transfers her 10 "yellow rabbit" cards over to David and David transfers his 25 "marble" cards to Alice.

Is there anyway to design to system to act as an escrow by having the system validate the ownership and terms of the trade?

Also, what about moving the asset to a different table, where the table is represented by a specific blockchain. This would require voting. You could also store on multiple blockchains (but have to pay the fee).


#52

[quote=“SLKRD, post:51, topic:3896”]Questions:

To conclude the trade agreement, Alice transfers her 10 "yellow rabbit" cards over to David and David transfers his 25 "marble" cards to Alice.

Is there anyway to design to system to act as an escrow by having the system validate the ownership and terms of the trade?[/quote]

Maybe, but that is beyond the scope of this whitepaper.

Also, what about moving the asset to a different table, where the table is represented by a specific blockchain. This would require voting. You could also store on multiple blockchains (but have to pay the fee).

As explained in the paper, decks will be movable between blockchains.


#53

PeerAssets whitepaper is now translated to mandarin Chinese.

Link: https://www.dropbox.com/s/qreborkvrgpf5jr/PeerAssets-CN.pdf?dl=0

Link to post: http://diandianbi.org/thread-806-1-1.html

Thanks to @caribou for translating this!


#54

I have created a peer4commit page for PeerAssets project.

https://peer4commit.com/projects/178

I will post the projected roadmap and timeline of development in couple of hours. I will start working on this in the following 5 days.


#55

So you’re going to code it yourself?


#56

Neat! This is really taking shape ;D


#57

Yes I am going to code the proof-of-concept myself. I guess the other projects like PeerKeeper will implement it with another set of tools. It is important to code the proof-of-concept to set the standard and strictly define the protocol.

I guess the first project to use it will be Peerbox, so users of Peerbox will be able to issue an asset from their Peerboxes.


#58

[ul][list][list]Proposed project roadmap:

please note that this is relative and will greatly depend on my available spare time.

[listl]
[list][li]Implement tools for the job.[/li][/list]
Implement simple python library for interaction with Peercoin blockchain. This will serve as a backend for the application. This code will be left to be used by all the future projects that utilize Peercoin blockchain and need custom transactions or OP_RETURN read/write.
This will be most labor intensive piece of the puzzle.
Estimated time to complete: up to 5 weeks.
[list][li]Implement command line utility to issue and transact with assets.[/li][/list]
This will serve as a platform for first tests and will allow final definition of the standard through testing. It will be deployed on Peerbox as part of peerbox command. Such utility will also be first public release but will be contained to Peercoin testnet for start.
Estimated time to complete: 2 weeks
[list][li]Expand functionality of backend to support multisig assets.[/li][/list]
Estimated time to complete: 2 weeks
[list][li]Coordinate integration into PeerKeeper by hrobeers.[/li][/list]
With protocol strictly defined and tested so far it is time to release it to wider public, and is there better platform than nice and elegant web based wallet? At this point I guess that PeerKeeper will continue with separate but compatible implementation.
Estimated time to complete: 2 weeks
[list][li]Expand functionality to enable dividend payout and shareholder voting.[/li][/list]
Estimated time to complete: 3-4 weeks
[list][li]Final polishing and launch on Peercoin mainnet.[/li][/list]
Estimated time to complete: 2-3 weeks
[list][li]Issue “ħopium” (ħ) currency as a PeerAssets based secondary currency running on Peercoin chain.[/li][/list]
This will be satirical move in essence, commenting on the state of community and Peercoin in general. Also, it will allow community to see what PeerAssets can do beside assets. I imagine this currency to be used as tipping currency on forum, reddit and twitter. I will need help with forum, reddit and twitter tip bots at this point.
Estimated time to complete: up to 4 weeks
[/list]

Future:

  • Port to Bitcoin blockchain, implement tools to move the asset deck from chain to chain.
    This might cover some other chains like Litecoin, depending on the interest.
  • Figure out how-to and implement blockchain identity based on this technology.
    This means that it should be possible to send Peercoins to me by writing @Peerchemist into address bar in PeerKeeper.
  • Experiment with technology to deliver DNS solution to Peercoin chain (copy what Namecoin does).

*Something even cooler than all the above but I will keep it secret for now.[/list][/ul]

Code will be published and updated each time I pass those milestones. This will consume a lot my time and as this is open-source project and can not be monetized I ask the community to fund my work. You can do that via Peer4commit: https://peer4commit.com/projects/178
The same fund will also be used to fund some external work if required.


#59

“cooler then” -> “cooler than” ?

can’t wait to know what is the secret.


#60

[quote=“caribou, post:59, topic:3896”]“cooler then” -> “cooler than” ?

can’t wait to know what is the secret.[/quote]

Thx for the typo fix. I guess you will wait and see :wink: