Data Integrity

A business wants to be assured about the data integrity (accuracy and authenticity) of their user account balances (or any other data) in their database. To achieve that, the business wants to easily verify the user account balances.

This is part of Data Integrity. The solution includes these steps:

  • Item registration – the user account balance is hidden but registered on the blockchain

  • Item verification – the user account balance is compared with the blockchain to determine validity

Please be aware that verification always requires the original item.

We will use this class wrapper around the Independent Record REST API (described here):

Class Event(aUrl, aApiKey) {

  write(record, salt) // write a fingerprint on the blockchain and return location

  verify(record, salt, location) // verify on blockchain, return match/mismatch/error

}

Item Registration

Every time that the user account balance is updated in the application's database, this procedure is performed to register a fingerprint of the new balance on the blockchain:

  aRecord = "get the user account balance for the userId"

  aSalt = time.now()

  aLocation = event.write(aRecord, aSalt) // Register the record on the blockchain

  // ensure that you persist aSalt, aLocation for the userId

"aRecord" contains whatever fields you want to register, e.g. a single field, a set of fields such as id, balance, dates, indices, a complete record, a set of records, or even complete tables or datasets.

Item Verification

At any arbitrary time later, the business can verify the original user account balance with this procedure:

  aRecord = "get the user account balance for the userId"

  aSalt, aLocation = "load the stored salt and location for the userId"

  result = event.verify(aRecord, aSalt, aLocation) // Compare with the blockchain

  if result = match // aRecord is verified as valid
  if result = mismatch // aRecord is verified as invalid
  if result = error // try again later

"aRecord" must contain identical fields to those that were originally registered to the blockchain.

Benefits

  • Provides high confidence of the validity of verified data for the business.

  • Provides high confidence to data auditors/users who have access to the original data of its validity.