-
Notifications
You must be signed in to change notification settings - Fork 330
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
Smart Contract Software Licenses #185
Smart Contract Software Licenses #185
Conversation
Allows specifying, in transaction metadata, the license for some or all contracts in the transaction
Note: Just noticed there's already a 0034 in PR review. Since the CIP number is a moving target, let me know which CIP number I should assign it to; otherwise I'll update it to something unused right before merging. |
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.
This CIP is missing a Rationale section, which is important since it doesn't explain how the proposed change will satisfy the motivation, and indeed I'm not sure that it does.
In particular, there is nothing to:
- Enforce the presence of the metadata
- Enforce the correctness of the metadata
If I submit a transaction that uses a script I can claim whatever license I want with this system, and nobody can tell whether it's correct or not... unless there is some other way of confirming the license, in which case this is redundant.
I think a solution like https://github.com/cardano-foundation/CIPs/tree/master/CIP-0026 is more appropriate, since it would provide at least a hope of having trustworthy metadata.
|
||
``` | ||
{ | ||
"1998": { |
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.
Should register the label in CIP10 at the same time
``` | ||
{ | ||
"1998": { | ||
"<contract_address>": { |
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 we get a CDDL specification instead of a JSON specification? Transaction metadata is a subset of valid JSON so we should avoid JSON definitions
As discussed today:
|
|
||
## Motivation | ||
|
||
Smart contracts, specified in source code or compiled to raw bytecode as presented on the blockchain, are creative and often highly valuable works and are often subject to legal licensing concerns. It is important that companies building on Cardano have the ability to link their smart contracts unambiguously to the license. |
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 often subject to legal licensing concerns
Is this in fact the case? You put your smart contract on the blockchain, and now everyone has it. What happens if I take a random script from my local copy, and put it on my website? You could sue me, but I think in many jurisdictions, you'd have a hard time winning the suit, especially when this is what blockchain explorers etc. are already doing.
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.
Of course, this doesn't apply to the source form, but that's not relevant to this CIP, because that's not put on the chain, and if it is, the same concerns as above apply.
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.
I would assume that attaching the license only matters when you are providing/using the source code; for example, when you are submitting transactions and providing the source or using reference inputs. Would it make more sense then to attach the metadata to the Plutus script instead? There could be a standard for wrapping a Plutus script, which would encode a license without adding greatly to execution costs.
@Quantumplation without any response to the last editorial enquiries for some time now, we've marked this for closure. If you're still interested in pursuing this, can you address the suggestions above & update your code baseline? If continuing, note the CIP number 34 has already been officially adopted: https://github.com/cardano-foundation/CIPs/tree/master/CIP-0034 |
Allows specifying, in transaction metadata, the license for some or all contracts in the transaction