input: 
  def verify_blockchain(chain: Blockchain) -> bool:
      """ Verify the integrity of the blockchain by ensuring that each block's hash is 
      correctly calculated based on its data and the previous block's hash.
      >>> chain = Blockchain()
      >>> chain.add_block({"timestamp": "2023-10-01 12:00:00", "data": "Block 1"})
      >>> chain.add_block({"timestamp": "2023-10-01 12:05:00", "data": "Block 2"})
      >>> verify_blockchain(chain)
      True
      >>> chain.chain[1].data = "Modified Data"
      >>> verify_blockchain(chain)
      False
      """
  
output:     for i in range(1, len(chain.chain)):
          current_block = chain.chain[i]
          previous_block = chain.chain[i - 1]
          if current_block.hash != current_block.calculate_hash():
              return False
          if current_block.previous_hash != previous_block.hash:
              return False
      return True