Introduction To Smart Contract
What is a Smart Contract?
A "smart contract" is simply a program that runs on the Zenith Chain. It's a collection of code (its functions) and data (its state) that resides at a specific address on the Zenith Chian.
Smart contracts are a type of Zenith account. This means they have a balance and they can send transactions over the network. However they're not controlled by a user, instead they are deployed to the network and run as programmed. User accounts can then interact with a smart contract by submitting transactions that execute a function defined on the smart contract. Smart contracts can define rules, like a regular contract, and automatically enforce them via the code.
A Digital Vending Machine
Perhaps the best metaphor for a smart contract is a vending machine, as described by Nick Szabo. With the right inputs, a certain output is guaranteed.
To get a snack from a vending machine: money + snack selection = snack dispensed
This logic is programmed into the vending machine.
A smart contract, like a vending machine, has logic programmed into it.
Like how a vending machine removes the need for a vendor employee, smart contracts can replace intermediaries in many industries.
Permissionless
Anyone can write a smart contract and deploy it to the network. You just need to learn how to code in a smart contract language, and have enough ZC to deploy your contract. Deploying a smart contract is technically a transaction, so you need to pay your Gas in the same way that you need to pay gas for a simple ZC transfer. Gas costs for contract deployment are far higher, however.
Zenith Chian has developer-friendly languages for writing smart contracts:
Solidity
Vyper
However, they must be compiled before they can be deployed so that Zenith's virtual machine can interpret and store the contract.
Composability
Smart contracts are public on Zenith Chian and can be thought of as open APIs. That means you can call other smart contracts in your own smart contract to greatly extend what's possible. Contracts can even deploy other contracts.
Limitations
Smart contracts alone cannot get information about "real-world" events because they can't send HTTP requests. This is by design. Relying on external information could jeopardise consensus, which is important for security and decentralization.
Last updated
Was this helpful?