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

NIP-76: Private Channels - Draft 2 - Includes Client Implementation and Tool kit library #116

Draft
wants to merge 42 commits into
base: main
Choose a base branch
from

Conversation

d-krause
Copy link

@d-krause d-krause commented Apr 6, 2023

Overview

  • Each Private Channel message is encrypted with a unique key, signed with another unique key, and reveals no identifying information about the author or the intended recipient.
  • Event signatures are verified through channel chainCode key derivation.
  • Channel Keys are exchanged via event pointer strings, encrypted (by password or computed secret), which are the keys to a single nostrEvent called an Invitation.

First Client Demo at https://nostr-nip76.web.app/private-channels

For those of you not familiar with blockcore-notes, just login with a private key (demo keys provided in the link), or create an entirely new profile. blockcore-notes prompts you for a password on each signing event. If you did not enter a password during account creation, just leave the password blank, and click OK.
image

Links

… listen for events from the component or service where they are subscribed.
…ow done with brwoser subtle - so all relevant methods became async
…enting relay service from altering 17761 events
…nneeded fields, removing chain codes from the nprivatechan and FollowDocument
…e post document work into the model, hdkIndex keeps track of documents
…evel concept,changing ContentDocument serialization. getting ready for invitations and rsvps
Copy link
Member

@sondreb sondreb left a comment

Choose a reason for hiding this comment

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

Great work, thanks for this PR! Please fix the nip-76 reference and I'll test it locally.

package.json Show resolved Hide resolved
@d-krause d-krause requested a review from sondreb April 6, 2023 22:36
@sondreb
Copy link
Member

sondreb commented Apr 13, 2023

This is all great work!

Can this be adopted to also support extension and not private key in the app? The initPrivateChannels method is constructed to have access to private key and I mostly use Notes using extension.

We can extend the Blockcore Wallet extension with additional features that might be needed to improve the private channel user experience.

@d-krause
Copy link
Author

d-krause commented Apr 14, 2023

@sondreb

Can this be adopted to also support extension and not private key in the app?

Sure. I will look into this. I need about a week to make the necessary changes.

@d-krause d-krause marked this pull request as draft April 26, 2023 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants