Skip to content
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

Conversation

Quantumplation
Copy link
Contributor

Allows specifying, in transaction metadata, the license for some or all contracts in the transaction

Allows specifying, in transaction metadata, the license for some or all contracts in the transaction
@Quantumplation
Copy link
Contributor Author

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.

Copy link
Contributor

@michaelpj michaelpj left a 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.

@KtorZ KtorZ changed the title Adds CIP-0034 Smart Contract Software Licenses CIP-0039? | Smart Contract Software Licenses Mar 17, 2022

```
{
"1998": {
Copy link
Contributor

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>": {
Copy link
Contributor

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

@KtorZ
Copy link
Member

KtorZ commented May 24, 2022

As discussed today:

  • This CIP lacks indeed a rationale section, at least explaining what are the legal implication of such a proposal and what happens in case of conflicting metadata submission.

  • A short CDDL specification of the on-chain format would make it unambiguous

  • Make sure to rename it as CIP-0039 and change the status as Proposed.

  • Also, do you know of any other entity beside SundaeSwap who's been adopting this (therefore, possibly moving it as active directly)?

@KtorZ KtorZ added the State: Waiting for Author Proposal showing lack of documented progress by authors. label Jun 29, 2022
@KtorZ KtorZ changed the title CIP-0039? | Smart Contract Software Licenses CIP-???? | Smart Contract Software Licenses Aug 2, 2022

## 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.
Copy link
Contributor

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.

Copy link
Contributor

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.

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.

@rphair rphair changed the title CIP-???? | Smart Contract Software Licenses Smart Contract Software Licenses Oct 25, 2022
@rphair rphair added State: Likely Deprecated Close if confirmed deprecated (or long waiting). and removed Candidate CIP labels Oct 25, 2022
@rphair
Copy link
Collaborator

rphair commented Oct 25, 2022

@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

@KtorZ KtorZ closed this Oct 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
State: Likely Deprecated Close if confirmed deprecated (or long waiting). State: Waiting for Author Proposal showing lack of documented progress by authors.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants