Smart contracts can be extended for use in the property sector, this concept is known as smart property. Smart property is made by embedding a smart contract into a real object (Szabo, Smart Contracts: Building Block For Digital Market, 1996). The embedded smart contract protocol makes the property able to share access to the real owner in terms of contract conventions that have been made. The sale and purchase transaction that is attempted is to cause automatic transfer of ownership, as well as lease transactions.
An example of this implementation is a house automatically distributing access to a person who has carried out the convention with the old owner. The access is in the form of a cryptographic key, which will automatically be generated after the convention is implemented. If the convention being tried is a sale and purchase, then the old cryptographic key is about to be hashed into a new form, so that the old cryptographic key is not valid. If the rental convention is renting, until after the lease expires, the cryptographic key will return to its original form so that it can be accessed by the owner.
Ethereum is a blockchain that gives anyone the opportunity to build decentralized applications. This matter is intertwined because Ethereum has an account which is called a contract account which has an algorithm code in it. The execution of the code was tried on a compiler machine that was pronounced the Ethereum Virtual Machine (EVM).
The code is executed on the blockchain in Ethereum-specific binary (EVM bytecode) format. However, the compilation of the code was tried to use a high-level language, which was compiled by the EVM compiler, and uploaded to the blockchain using the Ethereum client so that the code could be used by other nodes.
One of the high-level languages ​​used by Ethereum is Solidity, where Solidity is a programming language similar to Javascript for use in enhancing contracts.
Ethereum provides a human-level language for creating smart contracts. There are several such languages. However, the very well-known language used today is solidity. Solidity is a high-level contract-oriented programming language with a syntax similar to javascript
The main structure of solidity is a contract. Similar to classes in object-oriented programming, contracts contain fields, functions, function modifiers, struct types, and enum types and are inheritable.
Global variables in a smart contract will be put permanently in the storage of the contract account. There are several types of information that solidity provides, this type of information can be used to build more environmental struct types. The following are some of the types of information, namely:
1. Boolean, put the boolean value in the form of true or false.
2. Integer, in this type of information there are signed (int) and unsigned (uint) integers with different lengths of bytes.
3. Address, is a type of information that puts 20 bytes of the Ethereum account address. With this type of information, there are several uses that can be used.
4. Fixed-sized byte arrays, containing byte arrays ranging in length from 1 to 32.
5. Dynamic-sized arrays contain bytes type and string type.
Solidity provides multiple uses as well as special variables that are always there. These uses and variables are used to obtain data about the blockchain and contracts. One of the most significant variables is the "msg" object which provides data about the message sent to the contract for executing a use. With this variable, the sender's information, the ether value (if any) is sent, and the amount of gas released can be known.
Functions
Functions in the Solidity programming language are the same as functions in javascript. A function can return a value or not.
Events
Another concept of solidity is events. Events is an interface that allows users to use the EVM logging facility. This interface is used to determine the state of a contract without having to interact directly. Events are usually used for functions that are executed asynchronously. Functions that change the state of the contract will go through the mining process and finally generate a new state.
So from this, there will be an online repository where in general, the online repositories used at this stage are centralized, such as Dropbox, Google Drive, and YouTube. On the one hand, this central authority mechanism can provide optimal service. However, if there is authority, the files that have been saved will no longer be accessible.
This scarcity is the cause of the need for another storage mechanism, namely a distributed file system. There are already several technologies that provide this service, such as DHTS and BitTorrent. But each of these technologies has advantages and disadvantages. By combining these technologies, the interplanetary file system (IPFS) provides more optimized distributed file system services.
In the world of centralization, accessing files is done using location-based addresses. In this way, communication with the hosting computer and the files inside can be done easily. This method is most commonly practiced today. However, in the case of disconnected and distributed scenarios, this method cannot be performed.
Therefore, the interplanetary file system (IPFS) uses a method called content-based addressing. To get the desired file, the user searches with the hashed result of the file object. Then, the nodes joined in the network, which has the file with the planned hash, make the request.
And finally about the need for a digital signature, where a digital signature is an electronic signature that authenticates data transmission and ensures that the data sent is not changed. The digital signature must be unique, so that imitation cannot be performed. In addition, the signature will be automatically marked as a function of time, so that future rejection of the sender can be avoided. Digital signatures have the same value as physical signatures, even if they are a different mechanism. Digital signatures use asymmetric cryptographic algorithms to encrypt transmitted data (Thangavel).
The digital hand uses an asymmetric cryptographic algorithm to encrypt data. This process is divided into two, namely signature creation and verification.
In the process, a digital signature can be used to check the sender. In addition, it can be used to ensure that the data sent does not change.
Every decentralized application requires more than one smart contract to work properly. There is no way to write secure, scalable smart contracts, except by distributing logic and data across multiple contracts. Five types of models assist the classification process for designing smart contract structures.
Source: