Is it possible or interesting to use Hippocratic License for smart contracts?

Hi all!

1. Context of the question

  1. Recently I was reading about “The Great Open Source Divide: ICE, Hippocratic License and the Controversy”.
  2. Also, I was reading about smart contracts.I was reading about the positives and negatives of implementing smart contracts.
  3. I would like to know if it would be possible to have ethical license on so called “smart contracts” - I would like to specify “smart contracts” to follow ethical philosophy like the Hippocratic License
  4. I don’t want to do business with any company that violates any human right.

2. FAQ

2.1 What is Hippocratic License?

  • The term Hippocratic relates to ancient Greek physician Hippocrates. The Hippocratic oath is an ethical oath (historically taken by physicians) and one of the crucial part of the oath is “I will abstain from all intentional wrong-doing and harm”. This part of the oath is known as “Primum non nocere” or “First do no harm”.
  • The entire terminology is significant. The license is called Hippocratic license and is hosted on a domain called firstdonoharm.dev and the idea is to enable the developers to be not part of ‘intentional wrong-doing’.
  • The Hippocratic License is based on the popular MIT open source license. It adds this additional and crucial condition: The software may not be used by individuals, corporations, governments, or other groups for systems or activities that actively and knowingly endanger, harm, or otherwise threaten the physical, mental, economic, or general well-being of underprivileged individuals or groups.

2.2. What is smart contracts?

Smart contracts are contract systems used to automatically execute transactions without the need for a company, government or entity to intermediate.

2.3 What are the advantages of a smart contract?

There are many advantages to smart contracts including:

  • Permanence. Smart contracts can’t be deleted by default; any interaction with a smart contract is irreversible.
  • No trusted third parties. Smart contracts allow for credible transactions to occur without the requirement of a third party—whom both intermediaries trust—to review the transaction.
  • Public availability. Smart contracts are programs committed to the blockchain; they’re publicly available and verifiable to anyone with access to the chain.
  • Transparency. Anyone with read-access to the blockchain is able to watch the contract activity which makes it fully transparent and auditable.

2.4. What are the cons and/or dangers and/or disadvantages of using a smart contract?

  1. Smart contracts come with their own unique set of challenges compared to standard software development. Any smart contract deployed on a blockchain can’t be changed. If bugs are found post-deployment, a new smart contract has to be re-deployed to a new contract address. While there are some upgrade patterns—such as the proxy pattern—which could help alleviate this issue, they could also cause potential trust and security risks.
  2. Gas fees could also be called transaction fees; they facilitate cryptocurrency transfers and smart contract executions. Much like vehicles need gas to travel, transactions on a blockchain require fees to compensate miners for validating transactions. The higher the demand for a particular blockchain network, the greater the cost of a gas fee. Since all calls in a transaction cost gas to run, the code needs to be as efficient as possible. You pay gas when deploying a smart contract as well as when you invoke a function in a contract. There are gas limits for deploying contracts, so if your smart contract’s compiled size is too large, you won’t be able to deploy it.
  3. If your smart contract exists on a public network, anyone can call its functions; this availability poses some severe security risks including:
    • Reentrancy: Calling an external contract from your contract is dangerous because the external code can take over the control flow and make data changes that the calling function wasn’t expecting. The major DAO attack that led to the fork between Ethereum and Ethereum Classic was due to a reentrancy bug.
    • Integer overflow or underflow: If the smart contracting language uses units, like Solidity for Ethereum does, you must protect against arithmetic issues like integer overflow and underflow where the operation tries to create a value outside of the range that can be represented with a given number of digits. For example, a uint8 holds 8 digits. If you attempt to add 1 to the uint8 value 99999999, the number becomes 1, which is probably not the value you were expecting. Note: Solidity automatically protects against integer overflow/underflow in compiler version .8 and above.
    • Access control: Although this issue isn’t limited to smart contract development, controlling who’s able to call certain functions is an essential aspect of development on a public blockchain.

2.5. Are there any reports from people or the media or the newspapers or social media about any case that smart contracts were used inappropriately?

“Fraudsters employ a range of tactics to conduct a rug pull, including the use of scam services to create smart contracts, which are then issued a new token name and symbol before becoming public. The manipulation of functions to create hidden triggers to launch a rug pull may also be included”

2.6. Core questions or key questions

  • Would it be possible to avoid or create a secure system that prevents such ethically-infringing smart contracts from existing in our society?
  • Is it possible to create smart contracts that verify the suitability of a company?
  • Is it possible to verify any company with certain criteria, smart contracts?

2.7 Other interesting doubts

  • Is it possible to create smart contract templates that followed open source licenses like MIT, GPL?
  • For example, let’s say I’m creating a specific library for Wordpress that uses the MIT license. In this case, I want to verify that all the forked developers have this same license.
  • With smart contracts, I think… you could distribute the project’s individual grants to developers who continued the project under the MIT license. Would it be like a valid legal contract in this case?

3. Notes

  1. I’m reading several available sources about smart contracts and the legislation available about it
  2. I like open source and want to know - this would be an extra and out of scope question whether smart contracts are open source or not.
  3. I’m not a lawyer or judge or anything, just someone interested in computers.
  4. I found it interesting about how initially an ethical license was made in the case of Hippocratic License
  5. It’s just a question I would like to know - if there are control measures for companies or legal processes for this inside open-source, Blockchain, smart contracts
  6. For example, my idea would be to trigger certain government mechanisms if the smart contract does not comply with legal criteria.
  7. Some guesses
    • Could you create an article about the legal aspects of smart contracts - positives and negatives of smart contracts?
  8. I didn’t find much information about smart contracts, despite searching a lot

4. References

3 Likes

Hi all! Anyone who can clarify these doubts would be happy

First time I had come across this idea, thanks for sharing it and the links.
In principal think it’s a good system to follow, but I am not sure on real take up by industrial leaders.
I no longed write systems or programs so will not follow.
Was interested from a repair of computers front.

1 Like

thank you for feedback