-
Notifications
You must be signed in to change notification settings - Fork 1
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
(draft) - GRIN CC security proofs (draft) #1
Comments
I think blockchair would be a good block explorer: They automatically show the decrypted OP_RETURN statement so also non-technical users can directly verify the message. See an an example this statement of a baby that was born on the blockchain: In order to make it publicly viable it should be hexadecimal I think. The alternative, a hash is also nice since it keeps things more private. |
We need to find a public Bitcoin Blockexplorer which can provide a JSON or CSV file for a certain transaction. |
You are right, that would best. I have script that downloads transactions by transaction Id from blockchain.info (as JSON), not sure how to parse the witness part though, I have to check if the API also provides it. python check_security_proof_transaction.py transaction ID
Alternatively I could just download all security proofs (OP_RETURN transactions to our address) so the user does not even need to enter the transaction Id: python check_security_proof_CC.py
I can make a start on that script, but it would be best to have a security proof transaction to test the code with. |
Lets start with your script and iterate over it for better performance and reliability. |
Cross Post to Bitcoin Talk: https://bitcointalk.org/index.php?topic=5353221.0 |
@MCM-Mike and @Anynomouss From the BitcoinTalk thread, the best solution is to make two transactions: One with keys 1,2,3,4 and another with keys 1,2,5,6. This would be the most simple way to prove that the commitee has access to all the keys. Credit to ETFbitcoin on BitcoinTalk: |
To give an exact update on the bottleneck: I found some information on how to build the raw transaction that is committed/signed to and how to do the signature checking in Python but did not manage yet to implement it yet: |
Thank you everyone for the help and work you put into solving this problem. Finding a correct solution might take another few more weeks or even months. Therefore I had a short meeting with John (@j01tz) about how we could solve this situation and proceed with the funding. We agreed on the following possibility to proof we, the GRIN community council (CC), still has full access to all keys. Signing transaction over a period of a year:
in Q2 any key from 1,2,3,4 might be used additionally to the keys not beeing used in Q1 We don't have to spend every 3 month a transaction, we can just incorporate the scheme into our monthly payment schedule for GRIN projects and users. We can always improve from this, but this is a start to get the CC funded in a timely manner. Lets please have a vote on this on grincc/agenda#9 @Anynomouss @davidtavarez @hendi, etc |
Description:
We the GRIN Community Council (CC) will provide on a quarterly basis a
security proof
.This
security proof
will provide a public statement, that we the CC are still in possession of all private key of the public Bitcoin address shown here https://github.com/grincc/finance/blob/main/addresses.mdSecurity proof process:
Every three (3) month we will send an OP_RETURN message with a predetermined message as a hash-value (SHA256).
In order to send the OP_RETURN, all members of the GRIN CC need to sign this transaction, not only the lower threshold of the Bitcoin multi-sig address.
This HASH value will be sent in the OP-RETURN message, which we then will publish every 3 month publicly on the Bitcoin blockchain for everyone to verify.
Message to be hashed for OP-RETURN:
"Date: dd.mm.yyyy GRIN CC"
How to publicly verify:
We will publish the transaction ID of the OP_RETURN message on our https://github.com/grincc/security repository every 3 month. In order to be verifiable for everyone we came up with the following process:
XXXX
The text was updated successfully, but these errors were encountered: