Blockchain is a fast-disruptive technology becoming a key instrument in share economy. In recent years, Blockchain has received considerable attention from many researchers and government institutions. This paper aims to present the Blockchain and smart contract for a specific domain which is real estate. A detailed design of smart contract is presented and then a use case for renting residential and business buildings is examined.
In the recent years, there has been an increasing interest in the Blockchain technology. The Blockchain is a novel disruptive technology based on cryptography. It has been known of the work of Nakamoto [
Globally, real estate is undergoing a major evolution and transformation towards smart cities. Smart cities are being developed and a plethora of network, services, and transactions are integrated into the city planning initially and daily use. It is anticipated that the evolution of technology, not only improves life, for example for tenants or office workers, but also enhances building performance and sustainable energy.
The Blockchain is known to be the distributed public ledger for all transactions, eliminating the need of trust between the users and the central administrator and the control is distributed among different computers/nodes in the peer-to-peer (P2P) network. Moreover, the Blockchain resolved the double-spend problem using P2P technology in combination with public/private key cryptography.
Zhao et al. [
Blockchain by definition is a chain of blocks of information that registers transactions with some characteristics. Each transaction conducted with Blockchain technology is registered, time-stamped, and consecutively widely published with a unique symbol. Transactions are inserted in the chain of blocks, and each block is composed by a unique hash function (alphanumeric string resulting from coding data with cryptographic private and public keys), a nonce (a unique number to the block) and by a hash function from the previous block. The first block is called genesis block. Therefore, an attempt to forge a block involves the need to forge preceding blocks. This makes the mechanism safe and secure from attempts to change a transaction.
Many people and researchers believe that blockchain applications in different vertical industries could lead to three generations of the Blockchain, namely Blockchain 1.0, Blockchain 2.0 and Blockchain 3.0. The Blockchain 1.0 is the decentralization of money and payments and is used for digital currency. Further, Blockchain 2.0 is used for smart contracts, assets, and properties. It is considered as the decentralization of finance. Moreover, Blockchain 3.0 is the decentralization of the digital society and is used for applications that relate to for example to the Internet of things (IoT), health and government entities.
This paper discussed the benefits of Blockchain technology applied in the smart contract for the real estate and smart cities domains. The paper is organized as follows. In Section 2, the key contribution of the work is presented and the general introduction of blockchain technology and related work is presented in Section 3. Blockchain layered approach is presented in Section 4. Section 5 has discussed the development phases of Blockchain applications. Smart contract and design methodology were described in Sections 6 and 7. Finally, a used case for smart cities is examined in Section 8.
We propose a design methodology for the smart contract which enables development of different use cases using Blockchain technology. A detailed state finite functions and processes are described for a specific use case providing noteworthy contributions to real estate domain. In this frame, the blockchain becomes the enabler for the development of paperless layer for all city transactions, in a secure fashion for the optimum management of the smart city’s assets. With this work, the smart contract provides a secure, distributed and shared decentralized ledger of all assets and transactions between landlord and tenants.
In its generic form, blockchain technology refers to a fully distributed cryptographically system that captures and stores a consistent, immutable and linear event log of transactions between networked actors. In such a network, blockchain technology enforces transparency and guaranteed eventual, system-wide consensus on the validity of an entire history of transactions. According to Tschorsch and Scheuermann [
Glaser [
Tschorsch and Scheuermann [
Such alternative approaches require a portion of a trust in some elements of the network, such as actors based on the resources they put at risk during validation (e.g., proof-of stake) or in the manufacturers of devices that are used to validate transactions (e.g., proof-of-elapsed time in Hyperledger Sawtooth Lake).
For the design and deployment of Blockchain implementations [
• Type of consensus mechanism
• Programming language
• Type of cryptocurrency used for mining
• Authorized participant in Blockchain network (who is allowed to participate in this network)
Tschorsch and Scheuermann [
Glaser [
Several studies investigate Blockchain technology as a disruptive way for entirely new business models and organization allowing financial transactions with trustless partners without any additional measures of security.
A number of authors have promoted the vision of a trust-free economy with truly virtual organizations and automatic business transactions of IoT devices [
Some researchers have attempted to improve the efficiency of the Blockchain. Zyskind et al. [
Precisely, the authors implemented a protocol that turns a blockchain into an automated access-control manager that does not require trust in the third party.
Paul et al. [
Blockchain technology platforms can be programmed into two types public and private as depicted in the following
• Public (Permissionless) fully public blockchain where anyone can read and write.
• Private (Permissioned) blockchain which allows defining different permissions on different users on the network. There can be different permissions for different operations on the blockchain.
• Blockchain with smart contracts enabled into it such as the capability of building business logic and business process mechanism into the chain. Typical examples are Ethereum or Hyperledger Fabric.
• Blockchain with cryptocurrency transactions. This is only being deployed for transaction capabilities transferring an amount of value from one account to another. Typical examples are Bitcoin or Multi-Chain.
It is apparent from
Public Blockchain | Private Blockchain | |
---|---|---|
With Smart Contract | Ethereum | Ethereum/Hyperledger |
With Cryptocurrency Transaction | Bitcoin | Multichain |
For the public Blockchain, the block validation/mining includes reward mechanisms to incentivize miners to verify and validate transactions. To date, the reward amount is about 0.25 BTC for each transaction. On the other hand, for the private group Blockchain implementations are more focus on permissioning mechanisms that allow for granting participation rights to accountable and identifiable participants while denying them access to others rather incentivize mining mechanisms.
The technological components underlying the Blockchain layers include transactions, block, consensus, applications and smart contract. All these components are separated into different layers which are equivalent to the blockchain ecosystem. The key aspects of blockchain can be divided into six layers listed as follows: network, transaction, the blockchain, trust, application and security layers. Each of these layers has different properties and characteristics as shown in the following
The transaction layer refers to transactions triggered by the users or smart contract. The Blockchain layer has used to refer to the block status containing all the necessary information whereas the trust layer refers to the consensus protocol for the block and transactions validation.
The application layer encompasses applications, state machine, and smart contract. This layer is always separated from the blockchain layer with the smart contract to be the most important component as will be discussed in the following section 6. The security layer is very vital for the Blockchain technology. The blockchain technology is vulnerable to many types of attacks such as eclipse, selfish mining and 51% attack. The 51% attack is the most cited attack on the blockchain.
A “51%” attack is still possible for an attacker that controls less than half of the network hash rate. But in this case, the probability of success depends on what percentage of the hash rate the attacker controls and the number of blocks. Only when the attacker controls > 50% of the network hash rate is possible of success 100% [
Yli-Humuto et al. [
For the design and implementation of the Blockchain applications the following phases such as analysis, design, and implementation are presented in the following
In the analysis phase, we collect and analyze the requirements of the blockchain application to be developed. Identify the entities/parties involved, their roles and relationships. The entities can be physical (assets or users) or virtual (such as concepts).
In the design phase, we model the entity attributes as state variables and interactions between them as functions. In addition, we captured the constraints and dependencies.
In the implementation phase, we implement the smart contract for the blockchain applications. The main components of the smart contract are state variables, functions, modifiers, and events in a high-level programming language such as Solidity. In the next sections, we described the smart contract in details. If a user interface friendly is required then the DApp implementation is mandatory as we described in the next section.
Decentralized Applications (DApps)A Decentralized Application (DApp) is an application that uses smart contracts providing a friendly user interface to smart contracts. A typical example of DApp is a cryptocurrency application that runs on a blockchain network. A Decentralized application structure is composed by a front-end interface (Web Browser, HTML, CSS) and a back-end interface (Web3 JavaScript). As described in
For the development of the Decentralized application (DApp) the following steps are required:
• Design and implement smart contract in a high-level language (Solidity).
• Compile the contract to generate a binary file.
• Deploy the contract on Ethereum Blockchain network using Ethereum clients (Geth, PyEthApp).
• Build a Web application (Front-end) that interact with the smart contracts.
For this use case, the blockchain technology requires two parts:
• An Ethereum smart contract using Solidity as the programming language which resides on the Ethereum Virtual Machine (EVM) block.
• A Distributed App (DApp) composed by front-end and back-end applications in which interacts with the smart contract and the users (landlord/real estate owner and tenants).
Back to 1997, Nick Szabo [
The smart contract code is written in high-level languages such as Solidity and Python for Ethereum applications. The code is compiled into bytecode using compilers as Solidity or Serpent. The contract code will be uploaded into the Blockchain network once the compiler is executed without any errors. Each contract will be assigned a unique address by the Blockchain network.
Any user in the Blockchain network can trigger the functions of sending any kind of transactions. The contract code is executed on each node member in the Blockchain network as a part of their verification of new blocks.
Smart contracts deployed on a Blockchain network can send messages to other contracts. The message is composed by the address of the sender, the address of recipient, value of transfer, and a data field which contains the input data to the recipient contract. There is a difference between message and transaction, in which transaction is produced by External Owned Account (EOA) while the message is produced by a smart contract as shown in
Ethereum is one of the preferred technologies for the development of the smart contracts. The main components for the transactions are based on state machine and functions. It is a Turing-complete contract processing and execution platform based of a Blockchain decentralized shared ledger. The design and the implementation of the Ethereum are totally independently from the cryptocurrency Bitcoin. A high-level programming language called Solidity is used to write smart contracts and decentralized applications (Dapps). The programmer can create their transactions formats, state transitions and events functions, and rules for ownership. The software code is executed on virtual machine referred to as the Ethereum Virtual Machine (EVM) [
The design methodology for the smart contract is composed by the following steps. First, for any users the setup of the Ethereum nodes is required; second, the business services/functions are defined and finally, the processes between the users are described. In the following sections, the above steps are presented in details.
The components of the Ethereum node are actors, roles, business services and processes as described in the following
For the definition of smart contract, we need to design the application template which is one-to-many users. The actors for the smart contract are as follows:
• The Contract Owner usually is landlord or real estate owner who is responsible for the development of the smart contract and external owned account (EOA).
• Users/Tenants who are responsible for the creation of their Ethereum Wallets in order to have access in the public/private blockchain P2P nodes.
The business services and functions that required for the smart contract are the following:
• Create transaction;
• Create smart contracts;
• Send messages;
• Mine Ether or BTC.
For the Ethereum platform, we have four processes which are:
• Block Validation: This process is for validating block.
• Network Discovery: This process is necessary for a new node to join the P2P Blockchain network.
• Transaction Creation: It allows users to create transactions and allows smart contracts to create events and messages.
• Mining: This process describes the mining process and broadcasting a new block to the network.
For this use case, the Ethereum Blockchain platform is selected. The real estate acts as landlord for the properties which requires renting a number of residential and business properties using blockchain technology as shown in
In the next sections, we described the phases for the smart contract development in which consist of analysis, design, and implementation phases.
Type of Blockchain | Private Blockchain Network |
---|---|
Services offering | Renting Residential/Business Properties |
During the analysis phase, a collection of requirements from different personas into the organization are required. Then a set of workshops are developed to understand how the blockchain technology and smart contracts can provide benefits in the organization and identify the actors, roles, and responsibilities.
Actors/RolesExternally Owned Accounts (EOA): The Landlord and Tenants as considered as external owned accounts. These accounts are controlled by private keys. This actor can create transactions to transfer value, create smart-contracts or call contract functions.
Contract Accounts (CA): These accounts are controlled by their own code. Every time it receives a message, its code executes, allowing it to read and write to internal storage and send messages to other contracts or create contracts in return.
Miners: They validate the transactions and blocks. The transactions are wrapped into a block and a proof-of-work will be provided for this block. After validating the transaction into the block, an amount is provided to miners as a reward. For the specific use case, we have selected private Blockchain then the mining is not required since the parties are already known and trusted.
After identifying the entities and set up the accounts, the design of the smart contract will be developed. The main components of the smart contract as we had described in the previous Section 6 are functions, processes, state variables, events, and transactions.
The smart contract is between a landlord/real estate owner and tenants. The purpose of the contract is to make sure that the rental agreement is signed, the rental amount is paid on time, and the termination of the contract is executed correctly. The following describes the smart contract functions:
Functions-Created: The Landlord initiates the contract by setting up the rental terms and the details of landlord and tenants. After that, the state of the contract is set to “CREATED”.
Functions-Started: Tenant signs the contract and rent begins and the state of the tenant is set to “STARTED” when the state is “STARTED”, the rental agreement cannot be confirmed again, thus eliminating the possibility of overwriting the current tenant.
Functions-Rent Collection: The smart contract collects rent from the tenants and sends it to the landlord. This is a powerful feature of this contract to makes it “SMART”.
Functions-Terminated: When the Landlord terminates the contract, the state set to “TERMINATED” and all balance deposit is sent to the tenant after checking the status of the property.
For this use case, the process is one-to-many parties and the definition of the processes is described as follows:
1) Rent Contract Signature Process
In this process, as shown in
2) Rental Payments Process
This process is based on terms and conditions of the rental agreement. The smart contract initiates the lease payments from the tenants to landlord and FM contractors using different mode of payments as depicted in
3) Termination Rent Contract Process
This process is on the termination rental as shown in
In the implementation phase, the code programming for the smart contract is started using Solidity. Functions and processes are defined in the design phase and translated into code program. The content of the smart contract is shown in the following
This paper has presented an overview of the Blockchain technology as a disruptive technology for real estate industry. This study was designed to determine the effect of smart contract with the various components for the implementation. Real Estate development should assess whether and when Blockchain can be used as a technology in their organization. For the adoption of Blockchain into the organization, it is important to meet certain requirements in order to improve the efficiency of the current processes. Perhaps Blockchain technology did not cover the whole process in their organization, however, the cost/benefits analysis should be prepared once the smart cities owner identifies a process that is ready for Blockchain technology.
The benefits of using smart contract and blockchain technology for real estate are as follows:
• Different parties can modify database: In the real estate ecosystem, multiple parties such as owners, tenants, and financial management (FM) operators involve the management of real estate properties. They have access to modify a variety of information with the Blockchain. This eliminates the modification between the parties.
• Trustless among entities and parties: During the real estate development, different entities might not have any business relationships previously. Thus, this might increase the lack of trust.
• Advantage of Disintermediation: With the Blockchain, trusted intermediators such as notary and brokers are not required since the transactions can be independently verified and automatically validated.
• Transactions advantage: In real estate companies, different transactions related to different parties (such as landlords, tenants and FM services) are part of the same database. The real estate companies face difficulties to separate the number of invoices. With the Blockchain technology, we can separate transactions between the parties seeking to improve the efficiency of the invoicing process. As an example, in the net rent lease structure, the tenant pays the facility services (such as cooling and maintenance services) directly to the FM companies and the base rent amount directly to the landlord.
A state finite function and process work is presented in details. Future work needs to assess the impact of the different platform such as Hyperledger Fabric for the specific use case presented in this paper.
Karamitsos, I., Papadaki, M. and Al Barghuthi, N.B. (2018) Design of the Blockchain Smart Contract: A Use Case for Real Estate. Journal of Information Security, 9, 177-190. https://doi.org/10.4236/jis.2018.93013