Problem: In the Rair protocol the method for distributing media decryption keys from media owners to decryption nodes relies on a centralized service. A decentralized protocol would allow keys to be distributed in the case that this centralized service fails.
Signature based Witness Encryption (SWE) as defined in the McFLY paper allows for an encryptor to encrypt data with respect to a public tag to a set of signing keys. The data can be decrypted by anyone with access to a threshold number of signatures by the signers (e.g. m-of-n) of the public tag.
Unlike MPC based key sharding this has the advantage that there is no private channel required with the signers and no direct communication. The protocol can be coordinated using public persistant data (e.g. a blockchain).
SWE can be instantiated using BLS signatures and is tractable in terms of encryption/decryption times and ciphertext size. All 3 scale linearly with the number of signers.
Unfortuantely a production grade implementation of SWE does not exist at this time but could likely be built on top of arkworks or a similar library.
The entire protocol is basically SWE with encrypted signatures.
As described there is no incentivisation for the signers who do the work securing the protocol. Adding this would require an addional proof that the encrypted signature publised by a signer is correct. Given this the protocol could automatically pay out to signers when the participate. For example:
This is simple and could be implemented in a single contract assuming the proof verification is cheap.
An addional consideration is for misbehaving signers. This could be addressed by having them bonded and if a encrypted signature is submitted for a non-approved recipient this could be used as proof to slash them. Keys could then have some notion of economic security.
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing