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

Signing documents #6

Open
pwhipp opened this issue Mar 15, 2018 · 5 comments
Open

Signing documents #6

pwhipp opened this issue Mar 15, 2018 · 5 comments
Labels
discussion-needed long-term for items that aren't urgent and require substantial thought / discussion

Comments

@pwhipp
Copy link
Contributor

pwhipp commented Mar 15, 2018

Any document in this repo may be referenced using a specific commit as was done for the ACT constitution (but not the other constitutions btw).

In the source constitutions file we had:
CONSTITUTION.ACT.md is accepted and ratified as the opening constitution of Flux ACT as defined in commit c37c68126e3c9d354d8bb66496d8efd6d9b35caa which is verified (and provided) at the following URL: https://github.com/voteflux/flux/blob/c37c68126e3c9d354d8bb66496d8efd6d9b35caa/CONSTITUTION.ACT.md (note the commit hash - the long string of randomish letters and numbers - matches the commit hash in the URL, indicating the document is correct and not tampered with).

As the constitutions file itself was not hashed, this text has been removed for the time being making ACT the same as the other constitutions.

I'm unsure of the legal requirements here but the entire constitution folder could be hashed and we could have another special (signed) document containing the hashes.

Signing a document means taking its hash and encrypting it with a key such that the document cannot be changed without invalidating the signature. The signature can easily be checked but cannot be 'forged'. We would be better signing the constitutions and storing the signature. If necessary code could be added to present a 'signature valid' badge.

Once we've finalised a signing process, the constitutions will need to be updated to reflect this.

@XertroV XertroV added long-term for items that aren't urgent and require substantial thought / discussion discussion-needed labels Mar 16, 2018
@XertroV
Copy link
Member

XertroV commented Mar 16, 2018

I agree that ultimately signing the constitutions would be better. However we also need to maintain key infrastructures and things like that. I've added some labels to help indicate this'll take a bit to figure out.

In terms of constitutions stuff - please don't remove anything. For most docs that's okay but constitutions are their own special thing. There's some legacy like this we'll need to just live with.

ACT was the first state/territory constitution we did and the commit hash thing was actually a PITA when revisions were made, so keeping it out is good, but if we can reference the hash of a constitution as the initial hash I think that'd still be good.

In terms of signing I think we can integrate PGP signatures/keys with git so that could fulfil some element of the signing process. Not sure if it works on merges though.

@pwhipp
Copy link
Contributor Author

pwhipp commented Mar 16, 2018

Sorry. I'll avoid editing the constitutions. We can probably do the signatures quite quickly and I think I can get them to present clearly on the website presentation. They are correctly invalidated by any edit or change to the relevant document. For infrastructure in this regard, the signature can be made by any valid entity so a group of people can have the same signing capability as needed.

Merges have no effect. If the signed rst file (or folder plus all its content) changes, the signature will be invalidated which is correct behaviour.

I agree pgp will be the best engine for this.

@XertroV
Copy link
Member

XertroV commented Mar 21, 2018

All sounds good, and no worries re constitutions. Had a play with the makefile today so I could use python3 - feels easy to use bash + wget + pandoc to download constituitions on build

@pwhipp
Copy link
Contributor Author

pwhipp commented Mar 21, 2018

All sounds good, and no worries re constitutions. Had a play with the makefile today so I could use python3 - feels easy to use bash + wget + pandoc to download constituitions on build

I think it will scale well and give us the potential to do cool stuff with the signatures too in the long term. While I'm not sure how to effectively define signing requirements, we could allow alternative signatories and integrate delegation and a web of trust, enforced by githooks in the POT (and forks) so that the pull requests can be automated - sorta Signature Based Democratic Documentation ;)

@XertroV
Copy link
Member

XertroV commented Mar 22, 2018

I think it will scale well and give us the potential to do cool stuff with the signatures too in the long term.

In the near term we could just use GitHub + PGP + Require Signatures (note: this isn't actually that great as it can prevent ppl from making PRs easily, which isn't really the goal)

In the long term it'll be blockchain based (which comes with signatures and all the other good crypto for free)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion-needed long-term for items that aren't urgent and require substantial thought / discussion
Projects
None yet
Development

No branches or pull requests

2 participants