Update 09 November, 2023

I am sure that Jim has designed a beautiful box :package: :slightly_smiling_face:

8 Likes

This is an important point. If you have these encrypted bytes then you can copy them. Nobody else can read them or spend them. The network is designed to maintain copies via replication etc. but it cannot do anything with the copies, it cannot edit or delete them, only keep them alive.

Then we have archive nodes, some folks may want to even keep local copies for themselves and so on. The trick we have is data availability really when you boil it down. Like a huge open hard disk full of stuff only owners can read and all it needs to do is make sure it keeps copies or accepts copies from elsewhere like archive nodes etc.

So for Data it’s harder, we want folk to pay for data and we enforce that. We allow replicant copies to be made from nodes within the replicant group, this is how we achieve pay one replicate to all.

cc @joshuef @Anselme
However, PAYMENTS are something else, extra sensitive and also auditable. So somebody can say, hey thee is a payment here and

  • It has a parent that is spent to it
  • it is signed by the owner

Now then we check

  • Is the parent unique
  • Is this payment unique

If either is wrong, we still store, but they create doublespend attempts (very important we store this).

Therefore we don’t pay for transfers and thank God. They are free and this means ANYONE from ANYWHERE can upload such a transfer (either valid or a doublespend attempt). This way we get the added security of chaos. No black hat can know where the store will come from, if anyone sees a transfer they can store it and so on.

tl;dr
It’s free to store valid transfers (i.e. transfers with valid history, or parent). So anyone can, folk can keep their own offline copy and store it again, DAG nodes can republish and so on. As transfers are free, we are not limited to republish only from close group nodes.

7 Likes

I said store them on the network and all you have to worry about it keeping your credentials secure.

3 Likes

Can you confirm that if you only keep your CN locally and lose it, you can’t recover the value from the network?

3 Likes

Earnestly trying to grok this so excuse me if I am off track.

Due to the size of a CashNote it is considered data and if I chose to upload it that would incur a SNT fee.

I can however send 100000 SNT to myself and that is free, it will also be stored indefinitely on the network as a CashNoteRedemption as long as I keep my MainSecretKey secure those funds are encrypted and stored on the network for as long as I like until such time that I choose to re-create a CashNote?

CashNoteRedemptions are replicated just as any other data and a perfectly safe place to keep my funds online?

Or… I am missing the :ship:

5 Likes

What is the penalty for creating a completely fake transaction attempt?

For example, could a hacker get free storage here by encoding data into a transaction, submitting it and even though it fails the data is still stored and retrievable to the hacker.

1 Like

Yes, this is correct. The redemption (CNR) is freely stored in a transaction, but the cash note itself is data. So you would pay for storage of cashnotes themselves. (thanks for clarifying that part, I was perhaps misleading a bit above)

It’s a small amount of data that the hacker could store that way, but he is required to provide a valid double spend transaction. So it’s the owner of the transaction only that can do this.

If we ever introduce pruning, then he has lost out. We could do this when we see transactions where the children are all spent for instance.

7 Likes

If the CN can be recovered with the information from the CNR, I suppose it would be sufficient for a wallet to store this information, which would also be free of charge.

2 Likes

Thanks David, I think that I am nearly there.

What happens to the CNR once used to create a CN?
Can I access it again with my SecretKey and recreate the CN?

Seems that it should be possible to recover a lost CN which from past conversations had me thinking that we couldn’t.

1 Like

I need to check with @Anselme but AFAIK it’s a one way operation. I don’t think you can create a CN from a CNR. I will check the code

EDIT → See below this is not the case, we can recreate the Cashnote from the CNR with our secret key.

5 Likes

Ahh ok thanks, I was going off of this.

3 Likes

Yea we need @Anselme here. I think you are right though

The recipient of the Transfer can then decrypt it using their MainSecretKey , verify and rebuild the CashNote s, before adding them to their wallet. At that point, the transfer is complete!

4 Likes

@Anselme can you confirm that:

  • if you only keep your CN or CNR locally and lose both, you can’t recover the value from the network?

  • or does the network automatically store information (perhaps the CNR?) which ensures the wallet holdings can be retrieved so long as you have the private key and wallet address (i.e. Main Public Key)?

4 Likes

Currently if you loose them and didn’t store them on the Network, you can’t recover them.

The Network does not store this information automatically as of now. On the other hand, a good wallet implementation in my opinion should backup those on the Network as you suggest, so you only have to keep your secret key (from which you can generate your MainPublicKey).

This would take a while to explain but to make it simple, the CNR contains a NetworkAddress and a secret DerivationIndex. With both this secret and the data found at the NetworkAddress (address of a SignedSpend), the owner can re-create the CN.

The size depends on the size of a Tx: cf here for a practical example.

Yes we can re-create CN from a CNR + secret key! Without the secret key the CNR is indeed useless.

11 Likes

I know it has been said yes, but I would like to reconfirm one last thing (possibly it is @dirvine who should answer):
Will the storage of the CNR be free of charge?

I think it’s just data to us and the network. So it will be charged, but I feel that should not be an issue really.

One area we have not resurfaced yet, but will, is the SAFE, your SAFE on the network. I feel that can be some kind of storage that is totally open to you. So you can delete etc. in it, but it will not be secure from concurrent writes. So this is more like a small bit of space for keys, wallets, directory roots and so on. This flexible space could do an awful lot for folk, but again NOT CONCURRENT writes.

9 Likes

You imply a small amount of reusable storage at no extra cost? → DDoS?

3 Likes

Me at work right now…

6 Likes

Yes it’s reusable but paid for. So something like 10Mb (or 10 chunks worth of payment)

9 Likes

If I calculate correctly, each CNR will require about 288bytes (NetworkAddress + DerivationIndex). This means that self_encryption would not be used.
Having a specific space to store CNRs, along with other information, seems to be the right approach.

5 Likes