-
Notifications
You must be signed in to change notification settings - Fork 31
Proposal to move the Compact programming language under LFDT #27
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
base: gh-pages
Are you sure you want to change the base?
Proposal to move the Compact programming language under LFDT #27
Conversation
Signed-off-by: Matti Blecher <[email protected]>
Initial technical content
Co-authored-by: Parisa Ataei <[email protected]> Signed-off-by: Kevin Millikin <[email protected]>
Fill out the technical section
| @@ -1 +1 @@ | |||
| * @LF-Decentralized-Trust/tac | |||
| * @midnightntwrk/mn-codeowners-project-proposals | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Obviously we don't intend to merge this :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please undo the changes and update this PR so that we can merge when appropriate.
tkuhrt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the proposal. As we discussed today, we will be formally reviewing this at the July 24 TAC meeting. Here are some initial comments.
proposals/XXXX-compact.md
Outdated
| version. | ||
| </mark> | ||
|
|
||
| # Sponsor(s) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are there any sponsors outside of Shielded? See Project Incubation Entry Considerations for sponsorship expectations and who might be a sponsor.
proposals/XXXX-compact.md
Outdated
| - the Midnight Network's blockchain is used to verify ZK proofs and execute the public part of the contract on chain. | ||
|
|
||
| However, this is merely the specific implementation of Compact in the Midnight Network. | ||
| The language itself is designed to be generically used in any privacy-preserving smart contract system that is sufficiently similar, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you provide characteristics that would define what a "sufficiently similar" smart contract system would be?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it's the characteristics described just above (off-chain code has access to private data, on-chain code does not, a ZK proof is constructed off chain and verified on chain).
I'll try to make that clear.
| Compact is a language that is designed to support a range of privacy-preserving smart contract systems. | ||
| It has both an informal language reference and a formal specification in Agda. | ||
| Both of these specifications are in progress and evolving as the language changes. | ||
| There is also an official implementation in the form of the Compact compiler, and a suite of developer tools forming a Compact software development kit (SDK). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are both of these implementations (compiler and SDK) being proposed for inclusion in this project?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. They are both part of the Compact open-source (not yet public) repository that we are preparing.
Address review comments from tkuhrt and Hart Montgomery.
Add some more sponsors
petermetz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kmillikin Quick question: Is there any sort of interoperability/transpilation possible between EVM chains and Compact compiled contracts? For example if I wanted to use Compact to develop more secure contracts deployed on the Ethereum mainnet, would there be a path for that? Totally fine if the answer is no, I'm just trying to get a handle of the scope of the project. In general the proposal looks good to me so far.
One more quick question: what project lifecycle are you targeting? Incubation or ?
|
@petermetz that's an interesting question about EVM! Much of the work in the Compact programming model happens off chain. On chain there is "only" verfication of a proof (a zkSNARK on Midnight) and execution of public state updates. So that suggests to me that the answer is "possibly yes". You would have to implement the proof verification at the contract level rather than in the blockchain itself. We're proposing incubation, I've added some more text to the proposal about that. |
Fix Pi's affiliation
arsulegai
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for addressing the majority of open questions during the recent TAC meeting. I’d like to capture and reiterate a few key points here for continued clarity and action:
- Could you specify which components of the project will be open sourced? Additionally, how do you plan to position each open-sourced repository—as a code contribution, a specification contribution, or otherwise? This clarification will help the community understand the intended scope and encourage the right type of engagement.
- Please outline the “lego” or modular components that will enable adaptation of compact programming languages to various blockchain protocols.
- I encourage the team to define clear, strategic goals for the project, including both a 3-year and a 5-year plan. Taking a longer-term perspective will help ensure sustained progress, effective tracking, and alignment of the community’s expectations regarding project milestones and future development.
- Providing example implementations and reference cases will help guide contributors and kickstart development.
- Sharing real-world examples and past success stories will help build credibility and increase engagement.
- Consider organizing technology sessions or workshops to deepen knowledge sharing and foster a stronger sense of community.
| ## Major Areas of Focus | ||
| - Cross-blockchain abstraction layer | ||
| - Multi-target compiler backends | ||
| - Cross-chain security |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please provide additional context, what does cross-chain security mean per the project proposal?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're not proposing anything specific because we don't know the details of the multiple chains and how they will interact. We will consider if there are cross-chain security issues and what they are and if there are mitigations we can implement.
|
Thanks for the questions and suggestions, @arsulegai. I'll work on addressing them in the proposal but in the mean time, here are some responses:
|
|
please rebase on the tip of gh_pages |
Signed-off-by: Bob Blessing-Hartley <[email protected]>
Signed-off-by: Bob Blessing-Hartley <[email protected]>
Update birkhoffproposal.md
Signed-off-by: Bob Blessing-Hartley <[email protected]>
Update and rename birkhoffproposal.md to TBNproposal.md
move to TBN Signed-off-by: Bob Blessing-Hartley <[email protected]>
Update TBNproposal.md
Signed-off-by: Bob Blessing-Hartley <[email protected]>
Update TBNproposal.md
Signed-off-by: Bob Blessing-Hartley <[email protected]>
Changes from Dan
Signed-off-by: Bob Blessing-Hartley <[email protected]>
added Dan's github
Signed-off-by: Nico <[email protected]>
Update TBNproposal.md
Changed naming to NightStream Signed-off-by: Bob Blessing-Hartley <[email protected]>
Update TBNproposal.md
Signed-off-by: Aggelos Kiayias <[email protected]>
some edits and adjustments
adjustments to contributors. Signed-off-by: Bob Blessing-Hartley <[email protected]>
|
@kmillikin @bobblessinghartley please rebase and squash to important commits and rebase that on the tip of |
Signed-off-by: Aggelos Kiayias <[email protected]>
edits in the performance section
aligned committer descriptons Signed-off-by: Bob Blessing-Hartley <[email protected]>
Update TBNproposal.md
added Nicolas Signed-off-by: Bob Blessing-Hartley <[email protected]>
Update TBNproposal.md
adding DJ github / affiliation + arithmetization information
petermetz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but I'll wait for final review once the rebase has been done, please re-request review once that's finished!
ab64683 to
6c2f28e
Compare
This is a first revision of a proposal to move the Compact programming language into LFDT. We have already received some feedback which we are still to address.