Skip to content
This repository has been archived by the owner on Jul 18, 2024. It is now read-only.

Implement Asset Securitization on a Blockchain Ledger

Kalonji Bankole edited this page Jul 2, 2018 · 3 revisions

Short Name

Implement Asset Securitization on a Blockchain Ledger

Short Description

Deploy a React UI that has the ability to submit blockchain transactions and view the state of a blockchain ledger as it is updated

Offering Type

Emerging Tech (Blockchain + FinTech)

Introduction

Securitization is a financial process that can be used to consolidate a set of illquid assets into a set of tradable securities. A common example of an illquid asset would be a home mortgage, as they cannot be readily bought and sold. An example of a tradable asset can be a stock or bond. This process can be useful for financial institutions that are looking to increase the liquidity of their assets and free up capital. This application provides a dashboard that'll allow users to create and view Assets, Investors, Securities, and Asset Pools.

Author

Kalonji Bankole

Code

https://github.com/IBM/securitization_blockchain

Demo

https://youtu.be/P1e1vFDMwaA

Video

Overview

In this code pattern, we will demonstrate a financial process called "Securitization", and show how this particular process can be tracked using a blockchain ledger. We'll present an application using React.js, Express.js, and the Hyperledger Fabric SDK. This integration allows users to simulate a Securitization process and understand how the various transactions can be handled on the blockchain

When the reader has completed this code pattern, they will understand how to:

  • Deploy a Hyperledger Blockchain network on IBM Cloud
  • Create and enroll a administrative client using the Hyperledger Node SDK
  • Deploy and Instantiate a smart contract to register Assets, Asset Pools, Securities, and Investors

Flow

  1. A homebuyer leverages the services of a Loan Originator to secure financing for a home mortgage

  2. The Loan Originator loads the application, and submits requests to update the Blockchain ledger state with a new Asset

This request is handled by the node.js Express backend formats CRUD request into a jsonrpc object like below, and submits it to a Hyperledger peer as a transaction proposal. The request below would register a mortgage with a value of $540000, an interest rate of 3.3%, and a credit score of 720. The credit score is used to calculate risk for potential investors.

{
    jsonrpc: '2.0',
    method: 'invoke',
    params: {
        type: 1,
        chaincodeID: {
            name: 'securitization_contracts'
        },
        ctorMsg: {
            function: 'init_asset',
            args: '["asset1" , "540000", "0.033", "720"]'
        },
        secureContext: 'kkbankol@us.ibm.com'
    },
    id: 5
}
  1. Peer uses an "endorsement" service to simulate the proposed transaction against the relevant smart contracts. This endorsement service is used to confirm that the transaction is possible given the current state of the ledger. Examples of invalid proposals might be creating an asset that already exists, querying the state of an asset that does not exist, etc.
  1. If the simulation is successful, the proposal is then "signed" by the peer's endorser.

  2. The signed transaction is forwarded to an ordering service, which executes the transaction. In this case, the newly created "Asset" would be placed in an "Asset Pool"

  3. The updated state is commited to the blockchain ledger

  4. The Securitization UI queries the updated ledger state and renders tables with the updated information

  5. If the Asset Pool has been split up into "Securities", an investor has the ability to buy and sell them. The security price should be updated every time there is a change to the ledger state

  6. A creditor checks the ledger state to determine the risk of losses by late payments or mortgages going into default. If a significant change is found, the security credit rating will be recalculated by the creditor and updated in the ledger.

Included components

Featured technologies

Blog

Blog Title

Implement a Securitization process on a Hyperledger Blockchain

Blog Author

Kalonji Bankole

Blog Content

Securitization is a financing tool that has been rapidly gaining popularity among financial institutions for several reasons.

  • Provides a method to add liquidity to assets that can not be readily bought or sold.
  • Lowers investment risk
  • Frees up regulatory capital in financial institutions

This works by pooling illiquid Assets together, and creating a set of "Securities" for each pool, which can be easily bought and sold by investors. Each security has an associated coupon rate that determines the total return on investment. The return is provided by the expected cash flow plus interest. This estimated return determines the value of each security.

Although securitization does offer many benefits, there is quite a bit of processing such as underwriting, validating payments, etc.. Blockchain along with "smart contracts" have the ability to standardize and automate these processes, which has the potential to greatly improve efficiency and drastically reducing the amount of time and effort required in maintaining a set of Securities.

In this code pattern, we'll demonstrate an application that can automate many of these processes using a Hyperledger blockchain service. This pattern includes smart contracts that'll allow the to register/pool assets, create associated securities, and pay out returns all using the Hyperledger service.

Links

Blockchain Securitization articles