Hedera Technical Insights: Code is law, but what if the law… | Hedera Hedera Network Services Token Service Mint and configure tokens and accounts. Consensus Service Verifiable timestamps and ordering of events. Smart Contracts Run Solidity smart contracts. HBAR The Hedera network's native cryptocurrency. Insights How It Works Learn about Hedera from end to end. Explorers View live and historical data on Hedera. Dashboards Analyze network activity and metrics. Network Nodes Understand networks and node types. Devs Start Building Get Started Learn core concepts and build the future. Documentation Review the API and build using your favorite language. Developer Resources Integrations Plugins and microservices for Hedera. Fee Estimator Understand and estimate transaction costs. Open Source Hedera is committed to open, transparent code. Learning Center Learn about web3 and blockchain technologies. Grants Grants & accelerators for your project. Bounties Find bugs. Submit a report. Earn rewards. Ecosystem ECOSYSTEM Hedera Ecosystem Applications, developer tools, network explorers, and more. NFT Ecosystem Metrics Analyze on-chain and market NFT ecosystem metrics. CATEGORIES Web3 Applications Connect into the innovative startups decentralizing the web on Hedera. Enterprise Applications Learn about the Fortune 500 companies decentralizing the web on Hedera. Wallets & Custodians Create a Hedera account to manage HBAR, fungible tokens, and NFTs. Network Explorers Hedera mainnet and testnet graphical network explorers. Developer Tooling Third-party APIs, integrations, and plugins to build apps on Hedera. Grants & Accelerators Boost your project with support from the Hedera ecosystem. Partner Program Explore our partners to bring your vision into reality. Hedera Council Over 30 highly diversified organizations govern Hedera. Use Cases Hedera Solutions Asset Tokenization Studio Open source toolkit for tokenizing assets securely. Stablecoin Studio All-in-one toolkit for stablecoin solutions. Hedera Guardian Auditable carbon markets and traceability. Functional Use Cases Data Integrity & AI Reliable, secure, and ethically governed insights. Sustainability Enabling fair carbon markets with trust. Real-World Asset Tokenization Seamless tokenization of real-world assets and digital at scale. Consumer Engagement & Loyalty Mint, distribute, and redeem loyalty rewards. Decentralized Identity Maintain the lifecycle of credentials. Decentralized Logs Scalable, real-time timestamped events. DeFi Dapps built for the next-generation of finance. NFTs Low, fixed fees. Immutable royalties. Payments Scalable, real-time, and affordable crypto-payments. HBAR Overview Learn about Hedera's token, HBAR. Treasury Management Hedera’s report of the HBAR supply. Governance Decentralized Governance Hedera Council See the world's leading organizations that own Hedera. About Meet Hedera's Board of Directors and team. Journey Watch Hedera's journey to build an empowered digital future for all. Transparent Governance Public Policy Hedera's mission is to inform policy and regulation that impact the industry. Meeting Minutes Immutably recorded on Hedera. Roadmap Follow Hedera's roadmap in its journey to build the future. Resources Company What's New Partners Papers Careers Media Blog Technical Press Podcast Community Events Meetups Store Brand Navigation QUICKSTART Hedera Technical Insights: Code is law, but what if the law needs to change? technical Dec 05, 2018 by Paul Madsen Head of Identity, The HBAR Foundation Distributed Ledger Technologies (DLTs) commonly have simple and inflexible forms of immutability. Hedera supports a more flexible form of controlled mutability, which allows certain changes under certain circumstances, but prevents other types of changes. One area where this is particularly important is for smart contracts. In 1996, Nick Szabo, the cryptographer known for his research on digital currency, published in the magazine Extropy an article, “Smart Contracts,” in which he predicted many of the characteristics of distributed ledger applications. Szabo forecast that a DLT could be used to supervise the execution of computer code stored and replicated on the nodes of the DLT. Rather than a software program running on a single computer, it would run on all the nodes, creating transparency and decentralization. The first generation of DLTs only supported cryptocurrency, but the second generation added the ability to run smart contracts. Each smart contract would encode rules for performing operations such as the movement of digital currencies or assets between parties under certain conditions. Smart contracts promise to automate the exchange of money and other value, securely and with little friction. But they are ultimately just software programs, and so face the same challenges as all other software — including bugs, design flaws, and even their behavior in unanticipated situations. The normal development process for software, that of iterative refinement and improvement, acknowledges that the first version of a program is never perfect — there will be flaws. No human can write perfect code or anticipate every situation. However, in most implementations, the smart contracts are immutable. Once deployed, a smart contract can not be edited, either to fix a glaring bug that becomes apparent, or to refine the functionality and add a new feature. If the developer wants to make any such changes to the smart contract, their only option is to deploy a new version, and then endeavour to transfer token balances or other state from the old to the new. If another bug is discovered, they must repeat the process. Beyond simply fixing software bugs, immutability is hard to reconcile with the reality of changing technologies, regulations, and circumstances. As a concrete example, in 2016, hackers took advantage of flaws in the Distributed Autonomous Organization (The DAO) Ethereum smart contract to take millions of dollars. It was the Ethereum community’s inability to decide how to deal with these funds that led to the Ethereum Classic fork. Those Ethereum community members who strongly believed in the ‘code is law’ mantra argued that to give back the DAO funds would be to violate the fundamental value proposition of blockchain immutability — and so opted to fork the chain to maintain that guarantee. To better reflect the dynamic nature of software development and business, Hedera offers an optional mechanism that enables a model of “binding arbitration” for smart contracts. Specifically, a Hedera smart contract is immutable (in the same sense as other DLTs), unless several parties (designated by the smart contract developer) agree that it should change. On Hedera, when a developer deploys a smart contract (i.e., submits a transaction to the network with the compiled bytecode), they have a choice to make on the contract’s subsequent mutability. The default choice is that it will have the same guarantee of immutability as on other DLT’s, specifically that it will forever be impossible for anyone to change its programming code. With this choice, “the code is law” and that law won’t change. The other choice is for the developer to deploy the smart contract with a list of public keys of arbitrators. In that case, the arbitrators have the authorization to subsequently edit the contract code, and so to fix bugs or add features or reverse specific transactions. Once a contract’s bytecode is deployed with such a stipulation, if the designated arbitrators subsequently agree that the contract should change, then a transaction with the new contract bytecode, signed by the keys of those arbitrators, will be approved by the network, and the change will be implemented — the arbitrator’s decision is binding. It is common in some countries for legal contracts to include a clause that says disputes will be resolved by binding arbitration instead of by the (more expensive & time-consuming) court system. In that case, the parties must present their case to one or more arbitrators, who form a tribunal, and who then have the power to reach a decision that is legally binding for the parties involved. The same can be done for smart contracts. For example, a developer could set up a contract to require agreement from 8 out of 10 members of the dev team before the bytecode can be updated. More complex rules are possible — for example, saying the agreement must be by BOTH the president, AND either a majority of the house OR a majority of the senate. It would even be possible to use actual arbitrators who professionally provide binding arbitration for legal contracts. There may even arise a whole new industry of binding arbitration professionals who specialize in smart contracts. This mechanism is completely transparent. Anyone can see whether a given smart contract allows binding arbitration or not, and so whether the contract is mutable. Anyone can see which public keys have that ability, and the rules for the decision making. And anyone monitoring the transactions flowing through the ledger, will see when a smart contract is modified. Smart contracts need the same sort of flexibility as found in legal contracts. This ability to edit smart contracts through a transparent arbitration model is absolutely vital to the long-term success of a public smart contract platform. At Hedera, we support the immutable “code is law” model, for any developer of a smart contract that believes it is appropriate. But we also support a more flexibly mutable binding- arbitration model, which we believe will become more necessary and common as distributed ledgers begin to be used for more complex, real-world applications. Share This Back to blog What is gRPC, gRPC-Web, and Proxies? Ed Marquez Pragmatic Blockchain Design Patterns – Integrating Blockchain into Business Processes Michiel Mulders Zero Cost EthereumTransaction on Success: Hedera's New Fee Model for Relay Operators Oliver Thorn Hedera Adopts Chainlink Standard for Cross-Chain Interoperability To Accelerate Ecosystem Adoption Hedera Team Hedera Developer Highlights March 2025 Michiel Mulders Hedera Release Cycle Overview Ed Marquez View All Posts Sign up for the newsletter CONNECT WITH US Transparency Open Source Audits & Standards Sustainability Commitment Carbon Offsets Governance Hedera Council Public Policy Treasury Management Meeting Minutes LLC Agreement Node Requirements Community Events Meetups HBAR Telegram Developer Discord Twitter Community Support FAQ Network Status Developer Discord StackOverflow Brand Brand Guidelines Built on Hedera Logo Hedera Store About Team Partners Journey Roadmap Careers Contact General Inquiry Public Relations © 2018-2025 Hedera Hashgraph, LLC. All trademarks and company names are the property of their respective owners. All rights in the Deutsche Telekom mark are protected by Deutsche Telekom AG. All rights reserved. Hedera uses the third party marks with permission. Terms of Use  |  Privacy Policy