input: from typing import List
  
  
  def blockchain_check(transactions: List[dict], blockchain: List[Block]) -> bool:
      """ Check if the blockchain is valid by ensuring each block's hash is correct and the previous hash matches.
      >>> transactions = [{"from": "A", "to": "B", "amount": 10}, {"from": "B", "to": "C", "amount": 5}]
      >>> blockchain = create_blockchain()  # Assuming create_blockchain is defined and creates a valid blockchain
      >>> blockchain_check(transactions, blockchain)
      True
      >>> transactions = [{"from": "A", "to": "B", "amount": 10}, {"from": "B", "to": "D", "amount": 15}]
      >>> blockchain_check(transactions, blockchain)
      False
      """
output:     for i in range(1, len(blockchain)):
          current_block = blockchain[i]
          previous_block = blockchain[i - 1]
          if current_block['previous_hash'] != previous_block['hash']:
              return False
          if current_block['hash'] != calculate_hash(current_block):
              return False
      return True