MIMD-014: Permission Program & Privacy Improvements via TEE #751
jonasXchen
started this conversation in
MIMD
Replies: 1 comment
-
|
Quick feedbacks:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
MIMD-014: Permission Program & Privacy Improvements via TEE
Summary
This MIMD proposes a set of breaking changes and design considerations to improve the MagicBlock Permission Program and privacy guarantees when used with Trusted Execution Environments (TEE). The proposals are based on direct user feedback and aim to strengthen security, improve privacy semantics, clarify naming, and ensure sufficient flexibility for legal and regulatory compliance, while acknowledging trade-offs in developer experience, tooling, and observability.
Motivation
Users adopting MagicBlock for privacy-sensitive use cases (private state, private payments, hidden execution) have raised concerns around:
As MagicBlock positions the Permission Program as a privacy-enabling primitive when combined with TEE execution, these issues must be addressed at the protocol and API level — even if this requires breaking changes.
Proposed Changes
1. Authentication Token Handling
Type: 🟡 Backward-Compatible Change
Current state:
authTokenis passed via URL query parameters.Issues:
Proposed change:
authTokento HTTP headersImpact:
2. Transaction Visibility & Privacy Guarantees
Type: 🔴 Breaking Change
Current state:
Issue:
Proposed change (directional):
Suggestion to remove (https://solana.com/docs/rpc/http/gettransaction):
Trade-offs:
Design note:
3. Account Naming Semantics
Type: 🔴 Breaking Change
Current naming:
delegated_accountIssue:
Proposed rename:
permissioned_accountImpact:
4. Permission Visibility & Closure Semantics
Type: 🔴 Breaking Change
Current state:
Issues:
Proposed Change: Optional
groupas Visibility Signalgroup == Pubkey::default()→ Public permissiongroup != Pubkey::default()→ Private permissionImpact:
Beta Was this translation helpful? Give feedback.
All reactions