Blockchain Testing

Overview of Blockchain with Testing considerations

Of late we’ve been spending time reviewing Blockchain (a.k.a Distributed Ledger Technology) considering the hype we are witnessing in the global markets. To set some background, in the past we used to rely on the records shared by a person or an organization. We had to trust the person or the organization not to tamper shared information. For better understanding let us consider an example, if an accounting firm stored all the accounting records of its clients (various corporates and SME organizations) in their database system, in such case, everyone in the firm should be assured that data is in safe hands and chances of it being tampered are negligible. But a situation may arise when the concierge might alter the data or charge x amount of fees which clients may not pay willingly.

Blockchain tries to solve this problem by distributing the data to all the clients, thus removing/reducing the fee component, forging trust via consensus algorithms which would ensure that the known state of the transaction is valid for all the clients.

A blockchain is a peer-to-peer distributed ledger forged by ‘consensus’ combined with a system for ‘smart contracts’ and other assistive technologies. (Ref: hyperledger.org)

  • Consensus refers to a system of ensuring that parties agree to a certain state of the system as the true state
  • Smart Contracts are simple computer programs that execute predefined actions when certain conditions within the system are met

Key features of Blockchain

  • Distributed Database
    1. Each party has access to the entire database with history
    2. No single party controls the data or the information
    3. Every party can verify the records of its transaction partners directly, without an intermediary
  • Peer-to-Peer transmission
    1. Communication occurs directly between peers instead of a central node
    2. Each node stores and forwards information to all other nodes
  • Computational Logic (Smart Contracts)
    1. Digital nature of the ledger means that blockchain transactions can be tied to computational logic and in essence programmed
    2. Users can setup algorithms and rules that automatically trigger transactions between nodes
  • Irreversibility of Record
    1. Append-only database
    2. Once a transaction is entered in the database and the accounts are updated, the records cannot be altered because they’re linked to every transaction record that comes
  • Transparency with Pseudonymity
    1. Every transaction and its associated value is visible to anyone with access to the system
    2. Each node, or user, on a blockchain, has a unique 30+ character alphanumeric address that identifies it
    3. Users can choose to remain anonymous or provide proof of their identity to others as the transaction occur between blockchain addresses

Various Blockchain Technologies

Below listed blockchain platforms are being used to implement various used cases across the industries –

  • Etherium
  • Hyperledger Fabric
  • R3 Corda
  • Chain

Testing consideration

  • Blockchain is an append-only database; hence, any attempt to change existing block/transaction would invalidate the block and the subsequent block thus invalidating the node itself. Hence, it becomes extremely important that all the templates created to add transactions, blocks are thoroughly validated
  • Every block is defined by a set of attributes including size, number of transactions, etc. It is essential to validate the systems behavior to avoid hitting the boundaries with maximum transactions
  • With more number of users being added to blockchain ecosystems, transactions are expected to increase. Thus, conducting a performance test to valid response time at various load levels defined in terms of the number of transaction per second becomes really important with various types of acceptable data sets. However, not all the blockchain systems work the same way; thus, how we define the number of transaction per second (NTPS) is equally important. For Ethereum and Fabric, the transaction is measured from the submission of a contract to the network for consensus and adding the transaction to a block. In contrast, R3 Corda considers three characteristics Transaction building, Transaction finality, and Consensus algo.
  • While the data transmission inside the blockchain network is encrypted, data to be transferred to the block should also be are properly encrypted

Conclusion

Blockchain is an emerging technology with potential to disrupt several industries and provide cost-saving alternatives especially in areas where there is centralized record-keeping mechanism globally. Organization considering implementation of Blockchain platform and building smart contracts should consider using continuous testing approach and analyze feedback right from early stage of development life cycle.

At ZenQ Blockchain Testing labs, our engineers have setup various platforms and are actively validating apps developed on the platform against various testing heuristics.

To know more, please reach out to us at sales@zenq.com