-
Notifications
You must be signed in to change notification settings - Fork 85
Grin Open Research Problems
NB: This document is a draft.
| Number | Name |
|---|---|
| 1 | BLS Signatures |
| 2 | More Efficient Accumulator |
| 3 | Kernel Aggregation |
| 4 | Scriptless Script |
| 5 | FlyClient Implementation |
| 6 | Asynchronous Transaction Setup |
| 7 | Reducing Linkability of Outputs On Chain |
Introduced in 2001 by Boneh, Lynn and Shacham, BLS signatures introduces non-interactive kernel aggregation and potentially simpler multisignature schemes.
While it is not for certain that such signatures are well suited for Grin it is still interesting to explore this design.
-
D. Boneh, B. Lynn, and H. Shacham. Short signatures from the weil pairing. In Proceedings of the 7th International Conference on the Theory and Application of Cryptology and Information Security: Advances in Cryptology, ASIACRYPT '01, pages 514–532, Berlin, Heidelberg, 2001. Springer-Verlag. https://www.iacr.org/archive/asiacrypt2001/22480516.pdf
-
D. Boneh, M. Drijvers, and G. Neven. Compact multi-signatures for smaller blockchains. Cryptology ePrint Archive, Report 2018/483, 2018. https://eprint.iacr.org/2018/483
In Grin, kernels, outputs and range proofs are stored in a type of accumulator called a Merkle Mountain Range. While efficient, there have been several improvements to this kind of data structure, for example RSA Accumulators. The goal of this research problem is to identify whether or not Grin can leverage more advanced or faster cryptographic accumulators.
- D. Boneh, B. Bünz, and B. Fisch. Batching techniques for accumulators with applications to IOPs and stateless blockchains. Cryptology ePrint Archive. 2018 https://eprint.iacr.org/2018/1188.pdf
Grin blockchain implements the mimblewimble protocol. This design allows the blockchain to be massively prunable. However, while inputs/outputs can be thrown away once spent, there is another piece of data called the kernel that must stay. For each transaction a kernel is created, this piece of information cannot currently be aggregated or discarded as it is needed to verify the current chain state.
The goal of this research problem is to identify potential ways to aggregate transaction kernels and/or possibly discard them if not needed.
One potential construct is BLS signature. Introduced in 2001 by Boneh, Lynn and Shacham, BLS signatures introduce non-interactive kernel aggregation and potentially simpler multisignature schemes. While it is not for certain that such signatures are well suited for Grin it is still interesting to explore this design.
-
D. Boneh, B. Lynn, and H. Shacham. Short signatures from the weil pairing. In Proceedings of the 7th International Conference on the Theory and Application of Cryptology and Information Security: Advances in Cryptology, ASIACRYPT '01, pages 514–532, Berlin, Heidelberg, 2001. Springer-Verlag. https://www.iacr.org/archive/asiacrypt2001/22480516.pdf
-
D. Boneh, M. Drijvers, and G. Neven. Compact multi-signatures for smaller blockchains. Cryptology ePrint Archive, Report 2018/483, 2018. https://eprint.iacr.org/2018/483
https://github.com/mimblewimble/grin/issues/2504
Mimblewimble does not support any kind of script. In 2017, Andrew Poelstra introduced a way to add smart contracts ability to this type of blockchain: scriptless scripts.
While a significant research effort has been done on the subject there are very few concrete implementations of such cryptographic structure.
The goal of this research problems is to investigate scriptless scripts in Grin and potentially implement basic contracts features on a second layer.
"To validate transactions, cryptocurrencies such as Bitcoin and Ethereum require nodes to verify that a blockchain is valid. This entails downloading and verifying all blocks, taking hours and requiring gigabytes of bandwidth and storage. Hence, clients with limited resources cannot verify transactions independently without trusting full nodes.[...] FlyClient is a novel transaction verification light client for chains of variable difficulty. FlyClient is efficient both asymptotically and practically and requires downloading only a logarithmic number of block headers while storing only a single block header between executions."
The goal of this research problems is to investigate/implement the necessaries prerequisites for the introduction of a FlyClient in Grin.
- B. Bünz, L. Kiffer, L. Luu, and M. Zamani. Flyclient: Super-light clients for cryptocurrencies. IACR Cryptology ePrint Archive, 2019:226, 2019. https://eprint.iacr.org/2019/226.pdf
One of the trade off of the Mimblewimble type blockchain is that it requires a round trip between the payer and payee to construct a valid transaction. Meaning that the sender and receiver must be online to transact.
Several research attempts have been made in that direction. For example, relying on trusted relays or Beam shared bulletin board system.
The goal is this research problem is to investigate and develop an asynchronous, robust and private way of sending Grins to a third party.
Mimblewimble/Grin leverage confidential transactions to hide the identity of the sender and recipients. As such, there are no public amounts or addresses.
However, it is possible for someone listening on the network to build a transaction graph and possibly clustering entities together.
Techniques like Dandelion++ mitigate this issue but are insufficient for a privacy coin.
The goal of this research is to investigate ways to obfuscate the Grin transaction and implement such design.
- Ian Miers - Blockchain Privacy: Equal Parts Theory and Practice (especially Flashlight Attack part) https://www.zfnd.org/blog/blockchain-privacy/#flashlight
Basics
- Getting Started
- User Documentation
- MimbleWimble
- FAQ
- Planned releases (Roadmap)
- Code of Conduct
Contributing
- Contributing Guide
- Code Structure
- Code coverage and metrics
- Code Reviews and Audits
- Adding repos to /mimblewimble
Development
Mining
Infrastructure
Exchange integrations
R&D
Grin Community
Grin Governance
Risk Management
Grin Internals
- Block Header Data Structure
- Detailed validation logic
- P2P Protocol
Misc