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

StampNet #15

Open
orthecreedence opened this issue Feb 14, 2021 · 5 comments
Open

StampNet #15

orthecreedence opened this issue Feb 14, 2021 · 5 comments
Labels
discussion Needs discussion to become a feature project:stampnet

Comments

@orthecreedence
Copy link
Member

orthecreedence commented Feb 14, 2021

Throwing this here for ongoing discussion and ideas. So far, I have some preliminary thoughts, some of which are effectively lifted directly from Duniter but without using a blockchain.

StampNet is a p2p storage and syncing system for identities. There are three main components to the network:

  1. Public reading
  2. Private syncing
  3. Public writing/participation

Public reading

Anybody can join StampNet and run queries against the available identities that are published. This allows verification, even for non-members.

Private syncing

Private syncing allows anybody who has an identity to share that idenity between their devices in a p2p fashion. This is done via a request/approval mechanism in which one device asks another device to sync private data. This data would be the full (not public) identity, although it will have all private data encrypted (via the master key) and will be encrypted by the recipient's public key, meaning the private information is twice-protected (once at rest, once in flight).

The idea here is that anybody who wants to can share their identity between devices easily, removing a barrier for network participation.

Public writing/participation

The ability to publicly publish your identity into StampNet requires network membership. In essence, you need some mechanism for ongoing approval to retain membership, and other members will check your status before allowing you to store your identity (and will remove your identity if your approval lapses).

Details on approval is not decided yet, although here are some mechanisms:

  • Joining the network requires N stamps from existing members. The stamps expire after some period (two years) and must be re-requested on expiration.
  • A member can only have a limited amount of StampNet approval stamps (ie, 20 or so). They are returned when the stamp expires.
    • Need mechanism for returning stamps that are never accepted.
  • Member stamps are rate limited, such that they must wait N days between aproval stamps.
  • The N values may be adjustable by the network's self awareness
@orthecreedence orthecreedence added discussion Needs discussion to become a feature project:stampnet labels Feb 14, 2021
@kaichaosun
Copy link

Hi @orthecreedence, have been watching basis for a long time and now I'm glad to know stamp.
A few thoughts on the public writing/participation,

  • if the identity claim is published publicly, everyone can see it and stamp on it, which means the privacy if not protected at all. For some claim like national number or driver license, user want it not leaked, but still able to be stamped on something like "I have a driver license". Is this not in the scope of stamp protocol, or maybe there is plan to introduce such functions with fancy techs like zero knowledge proof?
  • I like the idea to use DHT or small world network to replace the inefficient blockchain. But I think there lack a working framework to build such function, which provides storing, validation and host renting. Let me know if you happen to know a working one.
  • Network membership works more like a spamming layer to avoid too many bad transactions, user referral is less efficient and probably introduce another form of renting. Before we reach a currency free world, it's still worth to integrate the idea of cryptocurrency, the distribution do matter though between network maintainer and users. The bridge to existing currency world is also valuable since not anyone wants to put focus in the underlying economics but just want to use a service.

@orthecreedence
Copy link
Member Author

Hi, again! 😄

if the identity claim is published publicly, everyone can see it and stamp on it, which means the privacy if not protected at all. For some claim like national number or driver license, user want it not leaked, but still able to be stamped on something like "I have a driver license". Is this not in the scope of stamp protocol, or maybe there is plan to introduce such functions with fancy techs like zero knowledge proof?

Stamp has private claims!

image

The idea is that each private claim is encrypted with the identity's master key. When requesting a stamp on that claim, the identity owner re-encrypts the claim with a random key, appends the new key and the re-encrypted claim, then encrypts the object with the potential stamper's public key. This way, the person who is stamping can decrypt the object with their private key, open the claim, and create a stamp for it without anybody else being able to read the claim.

Also, when an identity is published, data from private claims is removed so even the encrypted form isn't accessible.

I like the idea to use DHT or small world network to replace the inefficient blockchain. But I think there lack a working framework to build such function, which provides storing, validation and host renting. Let me know if you happen to know a working one.

I think something close to what bittorrent has. What's missing would be the rules governing who can publish to the network. I think something like Holochain might be helpful for the storage/validation.

That said, I haven't actually built anything useful on Holochain yet. I like the trade-offs it makes, but it's use-cases are different than blockchains.

Network membership works more like a spamming layer to avoid too many bad transactions, user referral is less efficient and probably introduce another form of renting. Before we reach a currency free world, it's still worth to integrate the idea of cryptocurrency, the distribution do matter though between network maintainer and users. The bridge to existing currency world is also valuable since not anyone wants to put focus in the underlying economics but just want to use a service.

Honestly I haven't put a lot of thought into how network membership will work. I'm not entirely opposed to blockchains/cryptocurrency here, but I want to make sure there aren't other options first. I've been more focused on building the protocol/implementation (working on a GUI now) than with StampNet, although Stamp will not be particularly useful without StampNet so maybe now is a good time to start figuring this out.

The reason I like the referral/sponsor method is because it can exist outside a monetary system and from my viewpoint it encourages person-to-person interactions. That said, I think it would be hard to scale properly. It would effectively end up being kind of like a social credit system, which is a currency in itself (granted, more akin to a gift economy than a monetary economy).

I'm not entirely opposed to people just buying membership, but that in itself would put us in the blockchain boat, which I'm trying to avoid because of all the things that come with it (endless append-only data, a requirement for constant connectivity, bundled economics systems, etc etc). P2P systems are easier to come into and out of, and with something like Stamp just about everything will be cryptographically verified so the guarantees a blockchain provides will already be distributed into the protocol/implementations themselves.

I'll put some more thought into this and see what I come up with. In the meantime, if you know of any incentives systems that could work for StampNet membership in blockchain systems, I'd be interested to read about them!

@kaichaosun
Copy link

I'm actually building on Holochain, I also like the tech balance it provides. But it doesn't provide the hosting inherently, you need Holo network for the hosting. Holo has its own metrics to incentivize host providers, and such metrics/constraints could be hard to fit all the use cases. Actually I'm not quite sure how is Holo hosting metrics going to be.
A highly customizable hosting layer, plus the DHT validation provides by Holochain, I think it would be perfect for stamp or similar use cases.

any incentives systems that could work for StampNet membership in blockchain systems

An interesting membership has been performed in urbit, but seems not quite work out yet. Basically you need to make a one-time identity purchase and following with hosting costs.
Also there are off the shelf hardware to meet the self hosting, like holo port and https://getumbrel.com/.

@orthecreedence
Copy link
Member Author

A highly customizable hosting layer, plus the DHT validation provides by Holochain, I think it would be perfect for stamp or similar use cases.

One could use Holo, or I believe it's possible to run your own servers that interface with the p2p network holochain creates, like a traditional server setup. That said, I am hoping to build the StampNet implementation into the client so it would eliminate any servers/hosting altogether. In other words, in the stamp CLI/GUI you would have interfaces that allow you to find published identities, sync your private identity across your devices, store your public identity, etc.

It mightn eventually make sense to build APIs around Stamp/StampNet for people who want to interact with the network without a full implementation, and then the server approach would definitely make sense. The caveat is that you're trusting the servers to not censor/modify the data they handle.

An interesting membership has been performed in urbit, but seems not quite work out yet. Basically you need to make a one-time identity purchase and following with hosting costs.

I've been following the Urbit project for a while now. I do like their approach in a lot of ways. However I haven't heard of any actual usable apps coming from it. It has been a while since I looked though.

I'll take another look, especially at their built-in identity system. They are using Ethereum, right?

@kaichaosun
Copy link

They are using Ethereum, right?

Yeah, urbit has its identity build on NFT spec and using Ethereum initially, and now switch to their own layer2 to reduce the cost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Needs discussion to become a feature project:stampnet
Projects
None yet
Development

No branches or pull requests

2 participants