w3f / PSPs

Polkadot Smart Contract Proposals
Creative Commons Zero v1.0 Universal
156 stars 67 forks source link

PSP-33: Additional open token standards to support institutions/issuers #33

Closed wbnns closed 2 years ago

wbnns commented 2 years ago

Hello! This adds PSP-33, a proposal and design specification to add additional open token standards that will help enable and support both institutions and issuers who are seeking to deploy capital and issue assets on Polkadot.

joepetrowski commented 2 years ago

All of this is possible on Statemint now. The only part that's a little tricky is the highly granular roles that are a bit lumped into Issue, Admin, and Freezer for the moment. The granularity could be handled by a time-delay proxy setup, so accounts with granular privileges would have to wait some delay to dispatch their transaction. In case of urgency, they could appeal to the proxied account holder or asset Owner.

In the not-too-distant future, this will be even smoother once cross-chain privileges get deployed. This would allow an Owner to assign accounts from other parachains as privileged roles. So a smart contract on another chain could be the asset Issuer and that contract could break down permissions to the level of granularity desired.

The only part that's not really in the Statemint roadmap is the allowList feature. However, it seems that this could be handled largely off-chain by freezing asset classes and granting members of an allowList a time delay proxy to request transfers to another allowed account. And of course an asset Owner can force transfer assets. It would be a huge amount of information to store all these lists on-chain and seems like it's the wrong approach.

In general, this PSP seems like a set of feature requests rather than a standard. Since this can already be handled on Polkadot, maybe the author can elaborate on what the objectives and value proposition of this standard are?

wbnns commented 2 years ago

@joepetrowski

Heya! Hope you all are doing well and are staying healthy! Wanted to give others time here to also share feedback before replying. Really appreciate you spending time to dig into this and share your thoughts. :+1:

All of this is possible on Statemint now. The only part that's a little tricky is the highly granular roles that are a bit lumped into Issue, Admin, and Freezer for the moment. The granularity could be handled by a time-delay proxy setup, so accounts with granular privileges would have to wait some delay to dispatch their transaction. In case of urgency, they could appeal to the proxied account holder or asset Owner.

So the main objective here with our specification is compatibility with policies that institutions and issuers must adhere to upon deployment, at scale. If every single entity has to set up their own proxy to deploy assets and capital, then it's only going to scale as efficiently as how well every single institution and issuer can come up with their own in-house solution to this.

Our approach is to handle this on the asset level, built-in and ready to go upon deployment on Statemint -- one flavor for everyone that checks the boxes of what they'll need at a regulated financial institution.

The only part that's not really in the Statemint roadmap is the allowList feature. However, it seems that this could be handled largely off-chain by freezing asset classes and granting members of an allowList a time delay proxy to request transfers to another allowed account. And of course an asset Owner can force transfer assets. It would be a huge amount of information to store all these lists on-chain and seems like it's the wrong approach.

The absence of this feature will potentially preclude any institutions and issuers in certain geographic areas (e.g. USA) from deploying things like security tokens in a scalable way, since again, each entity would need to come up with their own off-chain solution. They will most likely look to another network/chain to deploy their assets to avoid this.

In general, this PSP seems like a set of feature requests rather than a standard.

Apologies if it wasn't clear, we deployed this standard about 4 years ago on Ethereum and have connected many institutions and issuers to the network, along with hundreds of millions of dollars worth of capital since then.

We would love to do this on Polkadot.

joepetrowski commented 2 years ago

Suggest closing based on https://github.com/paritytech/substrate/issues/11083#issuecomment-1080401463

wbnns commented 2 years ago

@joepetrowski Agreed and thanks for the discussion.