Announcing ICPP - A protocol for P2P privacy-enabled transactions on the Internet Computer

very clever :clap: to brute force this would be ridiculously expensive.

Even if you were to brute force, that attack is moot in this setup. The reason? You have a limited time to break it. It’s not as if you can exfiltrate the data and then sit down to crack it up. This is the issue that gets people some in crypto awake at night (or rather: it’s a useful narrative of what is unlikely to happen in the near future). Data persistence. Blockchains are meant to leave a permanent record. What ICPP does (demonstrably, as you can see) is bombing out those records so there is nothing an attacker can use within any feasible time window,

.Your method has the ICPWizard Seal of approval… this is amazing stuff, incredible work.

Nothing to be found? It’s good to have a third party confirming it. Thanks a lot for your cooperation. Really grateful.

not a trace. well, there are traces but my tool doesnt dig randomly generated sub accounts doing so would be too expensive computationally. (but you already knew that :wink: )

There will always be some small dust, but as I mentioned in one of the earlier posts, that’s just stuff that has zero value as breadcrumbs to trail anything, and even if someone can find a value by some stroke of cleverness (in cryptography, you never know who’s the next-smart-kid that’s going to catch you with your trousers down) that data is encrypted. So it will be tough to piece anything together. And even by the time that “someone” is somehow able to crack it open, most likely you and I will be dead, ditto our descendants, so the data has no practical value whatsoever.

TBH what really boils my urine a bit is that ICP now becomes the fourth coin that can offer privacy features (ZEC, Monero, and Dash of all places are the three best known; you then have FIRO and Pirate Chain, which are more testimonial than anything else). And doing so without creating any new token.

Criticize it all you want, everyone is entitled to do so and in fact I welcome people that have a critical POV (as I’m not the owner of any truth) but privacy will become the next big battleground in crypto. I’m not saying that, but FWIW Balaji S.

The moat is there, quite open and still for grabs. But so far it seems only a few people care, not in terms of what it could bring to themselves (not everyone needs privacy) but the potential impact on the ICP ecosystem. In the meantime, it’s all about Caffeine and trying to break through a (by now) hugely competitive and already commoditized market. It just makes no sense. I’m not saying not trying it out with Caffeine, but it always seems that DFINITY’s game is to place all eggs in one basket.

The past November events happened for a reason.

Anyway…

This is a fantastic project, and I hope it gets a lot of promotion. Privacy projects carry significant weight in the crypto world, so you’re really amazing! However, could you clarify the pricing? I think this is definitely what users care about. They’ll be concerned about two things: security and privacy, and cost; they’ll compare prices from different vendors. Hopefully, this great project can rise to the top and break through the competition! :+1:

I think I posted some info in the OP but basically… the protocol takes 0.5% and the rest are the costs of spawning the infrastructure and ledger fees.

  • Send 10 ICP → Cost 3.80 ICP (38%)
  • Send 100 ICP → Cost 4.34 ICP (4.34%)
  • Send 1000 ICP → Cost 8.93 ICP (0.893%)
  • Send 2000 ICP → Cost 13.74 ICP (0.687%)

The platform tells you what the costs are before you commit.

I would still recommend people to make for now a first test transaction for a few ICP even if percentage-wise the costs are high. If it goes well (and there is no reason why it shouldn’t, but the infrastructure needs to be battle tested in production; that said, the amount of testing using a local NNS replica was off charts in terms of hours/transactions/permutations, but that will never fully replicate what Goerli or Sepolia could offer in Ethereum, say).

Stuff goes South in crypto all the time, hence it would be irresponsible for me not to tell people to proceed in steps. I take this very seriously.

Today after dinner had a discussion about ICPP with a good friend who suggested that I create a visual roadmap of how a transaction would look, end-to-end. Here is the result (now baked on the ICPP user guide) but to note:

  • It’s easy to get in and out - One move in (basically, a simple ICP transfer directed at your unique ICPP PID) and one move out at the other end.

  • Once you have your ICPP just top it up with ICP in the amounts you need plus fees. A trick to get the fees is to plug as recipient your own PID, that will make the fees calculator to pop up (it will take 1 or 2 sec to pop up as cycle costs are calculated in real time). Your ICPP balance can be zero at this point.

  • Ask the recipient to register on ICPP. Again, a 1 minute job, if at all.

  • Ask the recipient to send you his ICPP address: like you asking for an IBAN for a standard wire.

  • Move ICP from your NNS wallet to your ICPP account. Then go to the ICPP dashboard and hit refresh. You should see it popping up. NB: As fees are calculated in real time allow a small slippage to account for fluctuations (you can withdraw whatever dust is left afterwards).

  • With the recipient’s ICPP address in hand and your own ICPP account funded you can then make the transfer.

  • Wait until confirmation (be patient: it takes 10-15 min, and I recommend not closing the ICPP app or browser, or logging off… just leave it do its job) at which point you will see the deposit completed and a transactionID issued. Keep note of it.

  • Give a ring to your recipient to let her know it should be available for collection.

  • Wipe out any ICP dust back to your main ICP account using the withdraw tab.

  • At the recipients end: it’s as simple as accessing the ICPP dashboard, go to the RECEIVE tab, and scan. If the sender was not telling porkies :grinning_face_with_smiling_eyes: you should see the transaction popping up. Press CLAIM. Wait 10-15 min. If it completes you will see DONE at which point check your ICPP balance. The ICP you were meant to receive should be there.

  • Withdraw to your main ICP account. Tokens are ready to use.

  • The recipient will now have ICP that no-one can prove where they came from, as ICPP transactions leave no metadata or any other information that can link funds to their originator. I am grateful to Dan @WebTreeSoftwareSolut for verifying that independently (see earlier in this same thread, incl. my own presentation of the visibility of a real transaction).

  • ICPP is IMHO the closest you can get to be paid cash-in-hand.

This deserves serious attention and community support @Leadership

Lets get some proper 3rd party verification from reputable sources. And get behind this. This is a huge narrative for icp to be in if it gets the support it needs to be successful.

Just my 2 cents.

  • Leadership You should Take a Serious look at this project and Consider Foundation Support
0 voters

Yes, Dfinity should be marketing ICP, not Caffeine. At the moment, to the casual observer, it looks like ICP is an AI platform with a product called Caffeine AI. If and when the AI bubble bursts, ICP may also “burst.”

Btw, clicking the Access button on your site is not working for me (nothing happens).

Because you shouldn’t. When you get to the ICPP homepage you will be landed at the access page by default (the menu bar is a label rather than a button).

From there it’s simple.

Before choosing a PIN for the first time, or entering a PIN already set, the access button is disabled.

-

Choose (first entry) of enter (if you have set it up) a PIN. Has to be at least 6 digits. Then the button “glows” and prompts you to launch ICPP.

That will bring you to the Internet Identity page.

From where you will be redirected to ICPP’s main page.

If you press HELP you will access a PDF guide.

If you intend to test do a first transaction of of low denomination. You can do it to yourself if you have a second Internet Identity (use 2 separate browsers or 2 computers). You need to send to another ICPP PID: they are clearly indicated in the send page (in yellow-ish color). And you need to top-up your ICPP account with some ICP.

If in doubt and before doing anything, just give me a shout.

I thought that the entry box was only for returning users, but it’s doubling up for both?

Also, to test this, what’s the minimum amount of ICP I can try? Although presumably if I’m sending to myself (different browser with different Internet Identity) I can withdraw everything back to my own wallet(s)?

First of all, I genuinely think your work is outstanding. What you’ve built with ICPP is non-trivial, technically ambitious, and honestly one of the more interesting things happening around ICP right now.

It also made me think about a bigger picture: imagine if major assets like BTC, ETH, USDT, USDC were bridged onto ICP, and then ICPP was used as the privacy layer for those assets. That would be absolutely incredible

Yup, it’ doubling for both. Explained on that same page :wink:

You can try with 1 ICP (there is no min amount) but you will pay close to 5. That’s mostly the cost of spawning the canisters. Then you will get that 1 ICP on the other account, which you can withdraw.

Thank you. Speaking out loud, why couldn’t you use the bridged versions of BTC and whatnot on the network? You just need to add 1 step… ckBTC → ICP (in) → ICPP → ICP (out) → ckBTC

On the ICPP→ ICP(out) leg you effectively disconnect origin with destination (sort of “got some ICP in my hand” situation) but then the ICP→ ckBTC link sets you back a bit, although the exit from ICPP is where the music stops, shall we say.

In short: “here I got some money out of nowhere” in relation to on-chain records.

Thank you very much for your supporting words. I believe in the ICP tech and its possibilities, ICPP being one of them, although I am unsure many do care.

I also believe in the impact it could have on ICP price, by stimulating demand. From its current price point, at the margin that could be substantial. However, I’ve seen little if any amplification, and most KOLs are just playing around the B they are likely paid to promote. The only way to put ICP on the radar is to make the price blip. It’s not going to happen otherwise, frankly.

I’m also not too sure it’ll be Caffeine. I do get the idea, but think it my have come a bit late to the fray. The market is quite saturated, and the idea that the future is one where everyone will be coding seems far fetched. People have already busy and complicated lives as it stands (work, family, the dog, kids school, you name it) so not sure how much bandwidth there is for folks to Caffeinate their day to day, so to say. Maybe the young ones like my 12 yo son, but the teen/young adult age bracket is not one where income (earned or otherwise) is of any significance. And again, you may find the next Steve Jobs somewhere in the AI ocean, but it’s now very busy, very competitive, very contested, so the odds he’ll land on your ship are not great. Add into the picture the fact that AI economics don’t quite stack up.

Perhaps a sign is this marketing mantra of “self writing Internet” which pretty much everyone I spoke to, and I’m talking about seriously clever people, had difficulties either understanding (hearing “what the F is that?” 7 out of 10 times) or making sense of other than a short-legged gimmick to attempt at some differentiation (the other 3). I do hope it works, I really do, just that I can’t see how and numbers so far seem to confirm that trend. It hasn’t brought the “ooomph” many expected, and time is not on ICP’s side.

Privacy coins are neither new: ZEC, XMR, some would argue DASH (although it’ not) and a few minor testimonials. But if ICPP gains a place it’ll be 3 in the over 1 billion MarCap crypto segment. Compare that to the offering in the AI space. That’s my metric.

But for that DFINITY needs to play ball. I cannot do it on my own.

Just my 2c. At the very least, I hope it serves a purpose if anything to bring to ICP some of the essence of crypto, which is about preserving privacy.

Looks great. Maybe this will improve it a bit - introduce linkable ring signatures into the intermediaries and allow those intermediaries to live for a bounded epoch, rather than being strictly per-transfer.

For example, an intermediary could maintain a temporary set of deposits and verify ring-signature spends (with key images / nullifiers) during its lifetime, and only be destroyed when certain conditions are met (a fixed TTL - refunds depositors if no claims).

Instead of pooling funds, the canister could hold multiple deposit outputs and spend them in a UTXO-style model, similar to Bitcoin, avoiding a single global pool. Additionally, a transfer could optionally pass through multiple intermediaries to further reduce observability.

This approach would avoid a single global, perpetual anonymity set (which could be vulnerable to future cryptanalysis/quantum/AI) preserving many of ICPP’s architectural benefits (ephemeral infrastructure, bounded state, teardown) while also gaining cryptographic unlinkability similar to Monero in scenarios where the network or intermediaries are partially or fully compromised.