-
Notifications
You must be signed in to change notification settings - Fork 70
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
Add Entitlement verifications #68
Comments
Just to go over the exact landing pages for the BSQ burn process. |
That is not easily doable as the users Bisq installation might vary and it would need to check if Bisq 1 is open... |
For the social trading features we use entitlements.
An entitlement is the right to execute certain roles.
Here the enum entries and descriptions (provided numbers are TBD):
There are 2 types for providing proofs: Burned BSQ and bonded roles.
For adding an entitled role to a user profile one need to fulfill the requirements of the role.
Process for burned BSQ is:
User starts to create new user profile. They get displayed the pubkey hash when they have choosen a robo hash icon.
Next they copy that pubkey hash, open Bisq1 DAO section at proof of burn and paste it as pre-image for the proof of burn tx.
They need to burn at least the required amount.
They publish the tx wait until the tx is confirmed.
After that they copy the tx ID and move back to Bisq 2 to paste it into the
proof
input text field and click theVerify
button.This triggers a request to BSQ explorer(s) and returns the tx data. If its a valid BSQ tx and the opReturn data matches the pubkey hash everything is correct and the txId gets attachted to the entitlement data and the entitlement role added to the user profile.
The user could add multiple different entitled roles.
After having created the user profile the entitled role is part of the profile and can be verified by other users.
Verification of proof of burn based entitlement:
Request the tx ID taken from the peers public user profile data from a BSQ explorer.
Check the opReturn data if it matches the pubkey hash. If so the linkage of the pub key to the burned BSQ is correct.
Any interaction with the peer is based on the key pair from which the pub key is derived, so any relevant interaction will only work if the pubkey was not fake. Such interactions are private signed and encrypted messages and data added to the P2P network like offers or chat messages. It must not be possible to use a foreign pubkey hash and publish data to other users.
For entitlements based on bonded roles the process is as follows:
Before creating a new user profile the user need to do a DAO request for a bonded role. We will likely re-use existing roles like Forum admin for the channel admin role or the current mediator role for mediators in the social trading area (there can be overlap of mediators who cover both areas).
We need to add a signing and verification tool for the bonded roles similar as we provide it for proof of burn.
With that tool the bonded role owner can sign their Bisq 2 pubkey hash and use the signature as provided proof next to the tx ID of the bond request tx.
For verifying the user can request the tx data from a BSQ explorer, take the EC pub key from the first BSQ input and verify the provided signature with that pub key hash of the user profile.
Once the DAO is integrated into Bisq 2 those explorer requests are not required anymore.
Here a screenshot of the WIP screen:
The text was updated successfully, but these errors were encountered: