PeerAssets: Whitepaper

I like! :slight_smile:

How come the PPC price is not pumping yet? ;D

Awesome concept & whitepaper. I like the concept for its simplicity. Iā€™ve also read a little bit about OpenAssets and CoinSpark, but they seem way more complicated.

A question: Will it be possible to trade PeerAssets to Peercoins in a trustless manner (without trusting the other party or having to use an escrow)? I may have missed it, but I think I didnā€™t find that topic in the whitepaper.

No, the paper does not deal with those problems. This paper is just an intro I would guess, I hope it will get some people to think and expand it.
I do have some ideas on trust-less and decentralized trading via data-carrying sidechains, but that will have to wait for now.

Thank you for the clarification, Peerchemist! Nevertheless, a very interesting whitepaper. Iā€™ll try to understand the technology a bit more in detail.

I had just a little idea how a direct trustless PPC-to-PeerAsset-trading mechanism could be implemented without sidechains or another additional mechanism. I donā€™t know if there is a limitation I didnā€™t consider, 'cause Iā€™m not really familiar with the Bitcoin/Peercoin transaction mechanism.

All we would need is a slightly modified Card Transfer transaction. I would call it ā€œConditional Card Transfer transactionā€.

The only difference to a regular Card Transfer would be that a Conditional Card Transfer transaction would be only considered valid if there is also a Peercoin transaction with a specific amount in the blockchain. This amount is specified by the issuer of the Card Transfer transaction.

It would work very similar to a regular Card Transfer transaction. In a regular Card Transfer transaction the ā€œPeerAssets reasoning mechanismā€ does consider ā€œbogusā€ transactions if the transmitter has not received a similar or higher number of assets before. In a Conditional Card Transfer transaction, additionally, the receiver of the Card Transfer transaction has to prove that he has sent a specified amount of Peercoins to the transmitter.

If two parties have agreed a price for the asset, the sequence would be that way:

  • The asset owner issues a Conditional Card Transfer transaction, specifying the amount of assets and the amount of Peercoins the receiver must send for the transaction to be valid.
  • Once the asset ā€œreceiverā€ sees this transaction to be confirmed, he/she issues the required Peercoin transaction.
  • If the receiver does not send the required Peercoins, the transaction is considered invalid. But he can transform it into a valid transaction sending the Peercoins.

I can think of a number of limitations of this approach. So, the receiver could, in theory, wait for a lower Peercoin price and buy the assets much later, and it would be considered valid again. For this reason I can think of some ā€œadditionsā€ to this mechanism like a specified timeframe or the possibility to ā€œundoā€ a Conditional Card Transfer transaction. That would obviously make things more complicated :wink:

But I think for many use cases the described simple mechanism should be enough and it would fit into the KISS approach of PeerAssets. Itā€™s something like a simple ask order.

You can send PPC and do a card transfer transaction using one single peercoin transaction (multiple outputs).

Ah, do you mean a trade could then carried out by a simple multisig/multi-output transaction signed by both parties? That would be even better!

In this case, the trustless-trading problem would be already have been solved. Even direct asset-to-asset trading would be possible then, I guess (thatā€™s not even possible with NXT). Then I see a bright future for PeerAssets :wink:

Afaik this would require an additional transaction type (exchange transaction)

In this case, all involved parties provide their input to the transaction.
The exchange getā€™s encoded in one of the outputs.
When the transaction is created, all parties sign their inputs and the transaction is broadcast.

[member=30983]peerchemist[/member] Does this corresponds to your ideas?

The thing with Peercoin is that it does not support any special transaction types and stuff like you propose is quite difficult to implement. If someone thinks of a way to expand the concept by implementing something new into Peercoin (a new tx type) I am sure that Sunny will accept it. Maybe something can be done with all those new OP codes Bitcoin has implemented in last year?

I did not mean a new Peercoin txn type.
I meant a new PeerAssets txn type.

In this case, all involved parties provide their input to the transaction. [b](standard ppc txn)[/b] The exchange get's encoded in one of the outputs. [b](e.g. OP_RETURN)[/b] When the transaction is created, all parties sign their inputs and the transaction is broadcast. [b](standard input signing)[/b]

[quote=ā€œhrobeers, post:70, topic:3896ā€]I did not mean a new Peercoin txn type.
I meant a new PeerAssets txn type.

In this case, all involved parties provide their input to the transaction. [b](standard ppc txn)[/b] The exchange get's encoded in one of the outputs. [b](e.g. OP_RETURN)[/b] When the transaction is created, all parties sign their inputs and the transaction is broadcast. [b](standard input signing)[/b]
[/quote]

That is interesting idea. Simple and effective. Good, I like it.
This should be integrated into client though, to ease the interaction for the user. Any idea on how to transmit the raw tx data between parties?

For the user is would work as follows.

One party sets up the exchange by filling in the amounts to be exchanged from which addresses.
He signs it.
The other party/parties receive request to sign.
He/they sign it too.
The transaction is broadcast automatically once the last input is signed.

[quote=ā€œpeerchemist, post:58, topic:3896ā€][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 [member=30983]peerchemist[/member] 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.[/quote]

You should think about posting this in a separate thread. It is likely lost to many on page four of this thread. I only found it looking through your posts [member=30983]peerchemist[/member]

Awesome that this trading mechanism can be implemented without Peercoin protocol changes. Great idea, hrobeers!

I can help with testing PeerAssets, for participating in development unfortunately my Python skills are too basic. Iā€™ll try to look at the code though, perhaps I understand something. (If iā€™m not active in the forum when thereā€™s something to test you can write me a PM.)

Very clean and elegant. Apologies if these questions have already been answered elsewhere.

Will the Peercoin network will not be able to prevent double spend of Peerassets? Rather the PeerAssets aware client must do the verification?

So this is analagous to todayā€™s internet which routers try to forward packets at line speed and the intelligence as at the end nodes?

While there might be multiple reasons for proposing this design of a Peerassets aware client, I am wondering if it could be clarified as to the reasons for the design. Is this done to ensure that Peerassets can work on any Bitcoin derived blockchain? Is the design to avoid any forks with Peercoin?

What would it look like and what would it take to integrate such a protocol into Peercoin? Is such a design possible?

PeerAssets aware clients detect double spends themselves. Double spends will end up in the blockchain, but clients will dismiss them.

[quote=ā€œzhangxiu, post:75, topic:3896ā€]While there might be multiple reasons for proposing this design of a Peerassets aware client, I am wondering if it could be clarified as to the reasons for the design. Is this done to ensure that Peerassets can work on any Bitcoin derived blockchain? Is the design to avoid any forks with Peercoin?

What would it look like and what would it take to integrate such a protocol into Peercoin? Is such a design possible?[/quote]

It should work on any bitcoin fork. So no changes are needed to peercoin or bitcoin protocol.
It might even work on NXT without protocol changes.

[quote=ā€œpeerchemist, post:53, topic:3896ā€]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 [member=28863]caribou[/member] for translating this![/quote]

The mandarin Chinese version of PeerAssets whitepaper has 100 downloads: http://diandianbi.org/thread-806-1-1.html

Very interesting blog post about the overuse of the blockchain:

https://medium.com/@pavelkravchenko/investor-guide-does-this-cool-project-truly-need-blockchain-bdde70a26bfb

This is exactly why PeerAssets is relevant!
And why itā€™s implementation is superior to other asset systems.

If you liked that article, the following one by the same author is good too: https://medium.com/@pavelkravchenko/decline-of-blockchain-hype-and-rise-of-a-common-sense-8de5789a794d

[quote=ā€œhrobeers, post:78, topic:3896ā€]Very interesting blog post about the overuse of the blockchain:

https://medium.com/@pavelkravchenko/investor-guide-does-this-cool-project-truly-need-blockchain-bdde70a26bfb

This is exactly why PeerAssets is relevant!
And why itā€™s implementation is superior to other asset systems.

If you liked that article, the following one by the same author is good too: https://medium.com/@pavelkravchenko/decline-of-blockchain-hype-and-rise-of-a-common-sense-8de5789a794d[/quote]

The first article was a little hard for me to follow, probably because I lack a lot of the technical knowledge needed to understand the concepts heā€™s talking about.

Is it possible for you to expand on what you personally took away from each of these articles and how what heā€™s talking about applies to Peercoin and PeerAssets?

I wonā€™t go too much in detail, but he gives a very good in depth explanation that most projects are overusing the blockchain principle.

Today, many projects run their own dedicated chain, while they often do not need their own chain or even no chain at all.
The main reason for running your chain is for funding reasons.
However, with PeerAssets this is even possible without running your own chain.

A lot of those projects run their own chain, so they can create specific transactions for their use case. PeerAssets allows to create new transaction types on top of another chain. Like a parasite, but for Peercoin, PeerAssets is a good parasite offering a win-win collaboration.

Like weā€™ll show in the future, you can even do PoS with PeerAssets without running a sidechain.
The crypto community is mostly overthinking itā€™s implementations these days, and I think this is mainly because of a lack of understanding of Bitcoin and itā€™s script system and the push to get something fast by investors.