Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISO20022 Ecosystem Research and Technical Design #2221

Merged
merged 5 commits into from
Jul 26, 2024

Conversation

pifragile
Copy link
Contributor

@pifragile pifragile commented Feb 19, 2024

ISO20022 is the future standard of financial transactions of all kinds including payments, foreign exchange and securities trading. Many blockchain ecosystems like Ripple, Cardano and Stellar are already ISO20022 compliant. In order to make Polkadot ISO20022 compatible as well, it is necessary to start designing how such an integration would look like in practice.

The goal of this project is to get an overview of how other blockchain ecosystems approach the ISO20022 integration, outline challenges and opportunities of such an integration and provide technical designs of how Polkadot could become ISO20022 compatible.

Grant level

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $30,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied and aptly renamed (project_name.md).
  • I have read the application guidelines.
  • Payment details have been provided (bank details via email or Polkadot (USDC & USDT) address in the application).
  • I am aware that, in order to receive a grant, I (and the entity I represent) have to successfully complete a KYC/KYB check.
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
  • I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

@github-actions github-actions bot added the admin-review This application requires a review from an admin. label Feb 19, 2024
@keeganquigley keeganquigley self-assigned this Feb 20, 2024
Copy link
Contributor

@keeganquigley keeganquigley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the application @pifragile another team that has been working on this RFP recently submitted a delivery. Could you take a look to briefly compare to their implementation and explain how your approach would differ?

@wstrametz
Copy link
Contributor

Hello from element36 - we support ISO 20022 pain.001 and camt files processed via Ebics protocoll using an Off-chain-worker; our current implementation adds Zero-Knowledge proofs (arguments of knowledge as STARKs to be more precise) for downloaded camt53 files, so independenlty of Ebics. Thus we are able to prove settlement of payments and assets (in/out), or identities in a non-interactive and trustless manner. Happy to jump on a call to carve out differences or synergies, just pm me. Thx, Walter

@pifragile
Copy link
Contributor Author

Thanks for the heads up @keeganquigley, I was not aware of this project yet.
I took a look at their proposal and whitepaper and I can summarize as follows (@wstrametz correct me if I'm wrong):

Hyperfridge is about making information of banking data available on-chain in a secure and private way and having on-chain events trigger bank transactions. Payments are settled off-chain. As they write in their whitepaper: "It is about triggering and mirroring state changes of a bank account on a ledger".

Our project is different. We want to use the Polkadot blockchain as the actual settlement layer for payments. The benefits thereof are:

  1. Bank users can hold and transfer DOT via their banks using ISO20022 messages. Also payment reversals (ie. via. pain.007.001.11 CustomerPaymentReversalV11) will be supported.
  2. Banks can use DOT as an intermediate currency for inter-bank payments and thus reduce friction in (cross-border/foreign exchange) payments.

@wstrametz Thank you, sent you a message on Linkedin to schedule a call!

@wstrametz
Copy link
Contributor

Thanks for the heads up @keeganquigley, I was not aware of this project yet. I took a look at their proposal and whitepaper and I can summarize as follows (@wstrametz correct me if I'm wrong):

Hyperfridge is about making information of banking data available on-chain in a secure and private way and having on-chain events trigger bank transactions. Payments are settled off-chain. As they write in their whitepaper: "It is about triggering and mirroring state changes of a bank account on a ledger".

Our project is different. We want to use the Polkadot blockchain as the actual settlement layer for payments. The benefits thereof are:

  1. Bank users can hold and transfer DOT via their banks using ISO20022 messages. Also payment reversals (ie. via. pain.007.001.11 CustomerPaymentReversalV11) will be supported.
  2. Banks can use DOT as an intermediate currency for inter-bank payments and thus reduce friction in (cross-border/foreign exchange) payments.

@wstrametz Thank you, sent you a message on Linkedin to schedule a call!

Yes indeed - this is a big difference; hyperfridge is basically a bidirectional trustless bridge to real-world-assets like FIAT sitting on banking ledgers. Your idea I guess is inter-bank communication and settlement similar like R3 consortium ideas or as JP Morgan did with Quorum (now Consensys) as alternative to SWIFT. The biggest challenge for adoption I guess is not techniclal but getting (many) banks on a shared ledger and protocol. Also you need to consider that banks report (sync) their own ledgers to national banks for international transfers, which do the clearing with the "other" national banks - thus they probably need to support DOT as well.

@pifragile
Copy link
Contributor Author

@wstrametz Thanks for your thoughts and inputs!

@wstrametz
Copy link
Contributor

@wstrametz Thanks for your thoughts and inputs!

happy to jump on a call anyway: https://www.linkedin.com/in/strametz/

A note: the whitepaper is not accurate any more, I learned quite a bit while implementing it. Its simpler and much more generic E.g. no merkle tree needed any more, "composition" (Risc0 feature) will do the trick, transactions and previous states can be chained without keeping a state. Not started yet, but I will create a new version which includes learnings.

@pifragile
Copy link
Contributor Author

happy to jump on a call anyway: https://www.linkedin.com/in/strametz/

Sent you a contact request.

@keeganquigley keeganquigley added the ready for review The project is ready to be reviewed by the committee members. label Mar 4, 2024
@keeganquigley
Copy link
Contributor

Sorry for the delay @pifragile I marked the application as ready for review and pinged the committee.

@pifragile
Copy link
Contributor Author

Thank you @keeganquigley. I updated the description to include the comparison with Hyperfridge.

@takahser takahser self-requested a review March 5, 2024 08:14
@github-actions github-actions bot added the stale label Mar 20, 2024
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the long radio silence, @pifragile. My main question would be what your incentive is to build this. Are you planning to use this client yourself? In the Future Plans section, you write that this project "can be extended", but not whether you are actually planning to do any of this.


### Ecosystem Fit

Many competing blockchain ecosystems are already ISO20022 compliant (see above). If Polkadot as well wants to become compatible with the traditional finance industry, an ISO20022 integration will be the right place to start.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you give some examples which blockchains are ISO20022 compatible and how they achieved that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blockchains that claim to be ISO20022 compliant are for example Ripple and Cardano. How they actually achieve this is pretty vague in my eyes. For example Ripple writes in their ISO20022 one pager:

"To help enable this next step in global interoperability and meet the evolving needs of our customers, Ripple is now part of the ISO 20022 Standards Body-the first member focused on Distributed Ledger Technology (DLT)."

What this means on a technical level does not seem very transparent. The way I see it, it is not even totally clear what it means for a blockchain to be ISO20022 compliant, as ISO20022 is a messaging protocol intended to simplify and standardize communication about financial transactions between trusted entities.

So, I see this proposal as an experiment to bring more clarity to this question by building an ISO20022 integration that is simple and sound and can be used and tested in practice.

@pifragile
Copy link
Contributor Author

Sorry for the long radio silence, @pifragile. My main question would be what your incentive is to build this. Are you planning to use this client yourself? In the Future Plans section, you write that this project "can be extended", but not whether you are actually planning to do any of this.

No worries @semuelle! My incentive is to find opportunities in the Polkadot ecosystem. I know my way around Substrate and like to design protocols and build stuff. So I wanted to create a grant application for a project that is actually needed in the ecosystem and thus I replied to an RFP. I am not planning to use this client myself.

- Functionality to derive client balance from onchain hashes
8. Hashmap-like storage of all ISO messages and salts

We will use NodeJs to build this MVP client.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you be open to a Java or C#-implementation? Personally, I'd prefer to develop on Node as as well, but I know that banks (at least in Switzerland) are usually quite hesitant to adopt Node and their devs mostly deal with C# and Java. Also, they tend to be more stable when compared to Node w.r.t. potential dependencies, although that can be mitigated by not using any npm dependencies (but that's a quite strong limitation which makes it suitable only for a minority of use cases).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand, yes I would be open for that.

applications/ISO20022-Implementation-POC.md Outdated Show resolved Hide resolved
applications/ISO20022-Implementation-POC.md Outdated Show resolved Hide resolved
applications/ISO20022-Implementation-POC.md Outdated Show resolved Hide resolved
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I wanted to create a grant application for a project that is actually needed in the ecosystem and thus I replied to an RFP. I am not planning to use this client myself.

Thanks for the clarification. I really appreciate your interest in building this and in finding opportunities to improve the ecosystem. My concern is that many projects, especially ones targeting a niche, are often outdated before they are picked up again. We have funded many such projects, and therefore are now more thorough with evaluating the medium- and long-term prospects of projects. If someone were to, for example, pair this with six months of maintenance and outreach activities, it would make a great fit for the Decentralized Futures Program.

@semuelle
Copy link
Member

Would you consider applying with the Decentralized Futures Program, @pifragile?

@pifragile
Copy link
Contributor Author

Would you consider applying with the Decentralized Futures Program, @pifragile?

Haha, I'm scared that if I say yes, you will reject this proposal😂 No, I mean sure, I could consider that.

@keeganquigley
Copy link
Contributor

Hi @pifragile yes basically that is what would happen, but you could always re-apply if DF funding were not approved. There might be some benefits to that as well, if your aim is to eventually be a self-sustainable entity. Up to $50k is able to be fast-tracked to get it in front of the committee faster, and the DF program also has a broader scope, allowing you to fund additional areas such as audits, marketing, partnerships, etc. as a few examples.

@semuelle
Copy link
Member

Hi @pifragile yes basically that is what would happen, but you could always re-apply if DF funding were not approved.

We could even reopen this PR if necessary, so you wouldn't even have to submit a new application.

@pifragile
Copy link
Contributor Author

@keeganquigley @semuelle Thanks for your clarifications! The way I understand the requirements for the DF program, I am not sure if my project in it's current form - which is intended to be a POC - is already mature enough for DF. Would be grateful to hear your thoughts on that.

@semuelle
Copy link
Member

Would be grateful to hear your thoughts on that.

We wouldn't have suggested it if we thought it wouldn't be a fit. :) "Kickstarting teams and initiatives" doesn't mean that you need to be self-sufficient at the end of the grant. It just means there should be potential and plans for beyond the grant.

@pifragile
Copy link
Contributor Author

Ok, thanks @semuelle :) And thanks a lot to everyone for taking the time to consider my proposal @keeganquigley @takahser.

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the effort you put into this application. As pointed out above, feel free to apply for DF funding. I'm closing this PR for now.

@Noc2 Noc2 closed this Apr 17, 2024
@Polkadot-Forum
Copy link

This pull request has been mentioned on Polkadot Forum. There might be relevant details there:

https://forum.polkadot.network/t/polkadot-iso-20022-integration/8483/1

@semuelle semuelle reopened this Jul 9, 2024
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Welcome back, @pifragile. To restart the discussion, I'll summarize the points that were raised so far:

  • @takahser suggested an implementation in C# or Java. Any new insights/opinion on this?
  • I asked about your concrete Future Plans. I also noticed that there is no mention of future funding. It would be interesting to hear how you are planning to fund further development.

I also have two more requests:

  • As you said, most projects claiming to be ISO20022 compatible are pretty vague about how they achieve that. In that case, I think it would be interesting to spend some time researching what it could mean and the differences in how they approach the topic.
  • Could you denominate the milestone costs in USD? We can pay in CHF, but it would be converted at the time of payment.

@semuelle
Copy link
Member

pinging @pifragile

@pifragile
Copy link
Contributor Author

@semuelle

  • Java/C# is possible.
  • We do not have any specific plans for this project. This was intended to be an early stage exploration of a complex topic.
  • I agree that it would make sense to take a step back to figure out the best way to build this, but the time that I am willing to put into those proposals is quite saturated now. Would you be willing to accept a 5k grant for a report on the current state of ISO2002 integrations of other blockchains and more concrete technical architecture/design proposals on different ways to achieve ISO compatibility?
  • Sure, can do as soon as we come to an agreement on how to proceed best.

@semuelle
Copy link
Member

  • Would you be willing to accept a 5k grant for a report on the current state of ISO2002 integrations of other blockchains and more concrete technical architecture/design proposals on different ways to achieve ISO compatibility?

Sounds very good to me. If you reduce the scope accordingly, I'll happily approve. It'll also only take two votes and we can revisit the implementation afterwards, if you're still up for it then!

@pifragile
Copy link
Contributor Author

  • Would you be willing to accept a 5k grant for a report on the current state of ISO2002 integrations of other blockchains and more concrete technical architecture/design proposals on different ways to achieve ISO compatibility?

Sounds very good to me. If you reduce the scope accordingly, I'll happily approve. It'll also only take two votes and we can revisit the implementation afterwards, if you're still up for it then!

Ok great. Should I use this proposal or open a new one?

@semuelle
Copy link
Member

You can use this one, that's probably the easiest.

@pifragile pifragile changed the title ISO20022 Implementation POC ISO20022 Ecosystem Research and Technical Design Jul 20, 2024
@pifragile
Copy link
Contributor Author

You can use this one, that's probably the easiest.

Ok @semuelle, done!

@semuelle
Copy link
Member

You should have just received an email from our KYB provider, @pifragile. Could you check?

@takahser takahser merged commit 0c69938 into w3f:master Jul 26, 2024
7 of 8 checks passed
Copy link
Contributor

Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions.

Before you start, take a moment to read through our announcement guidelines for all communications related to the grant or make them known to the right person in your organisation. In particular, please don't announce the grant publicly before at least the first milestone of your project has been approved. At that point or shortly before, you can get in touch with us at [email protected] and we'll be happy to collaborate on an announcement about the work you’re doing.

Also, if you haven't yet, consider signing up for the Polkadot Alpha Program. The program offers plenty of resources for people building on Polkadot. Lastly, please remember to let us know in case you run into any delays or deviate from the deliverables in your application. You can either leave a comment here or directly request to amend your application via PR. We wish you luck with your project! 🚀

@w3f w3f deleted a comment from takahser Jul 26, 2024
@pifragile
Copy link
Contributor Author

You should have just received an email from our KYB provider, @pifragile. Could you check?

Yep got it, and submitted again. I remember submitting this already last time, but somehow one document was not accepted and I couldn't figure out which document they actually needed (I have a LLC (GmbH) registered in Switzerland). I tried a couple of times with different documents but no success. Hope it will work this time :)

@semuelle
Copy link
Member

Can confirm, check was successful.

@keeganquigley keeganquigley removed the admin-review This application requires a review from an admin. label Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review The project is ready to be reviewed by the committee members.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants