What is a Smart Contract?

Smart Contracts, in general, is a piece of software that runs on a blockchain on a specific address, that contains the code & the state.  Smart Contracts have a balance of their own and can process any transactions in the blockchain network but they are not controlled by any user. There are two popular languages to program Smart Contracts 1. Solidity 2. Vyper Thanks for reading.