input: Write a function to create a basic blockchain implementation in Python using only the core modules. The implementation should include a class named `Blockchain` with methods to initialize the blockchain, create a new block, get the current timestamp, and hash a block. The function should return an instance of the `Blockchain` class. If no transactions are provided, the block should be created with an empty transaction list.
  assert create_blockchain()==Blockchain()
  assert create_blockchain().create_block('123', 'abcde').get('block_number')==1
  assert create_blockchain().hash_block({'block_number': 2, 'timestamp': 1635681276832, 'nonce': '456', 'previous_hash': 'fghij'})=='7d8be5059f4deffcce6c279a9cb3871efe017baeb058742b3d175c1e82047e23'
output: def create_blockchain():
      import time
      import hashlib
  
      class Blockchain:
          def __init__(self):
              self.chain = []
              self.create_block(previous_hash='0')
  
          def create_block(self, nonce='', previous_hash=''):
              block = {
                  'block_number': len(self.chain) + 1,
                  'timestamp': self.get_current_timestamp(),
                  'nonce': nonce,
                  'previous_hash': previous_hash,
                  'transactions': []
              }
              self.chain.append(block)
              return block
  
          def get_current_timestamp(self):
              return int(time.time() * 1000)
  
          def hash_block(self, block):
              block_string = str(block).encode()
              return hashlib.sha256(block_string).hexdigest()
  
      return Blockchain()