input: Write a function to create a basic blockchain in Python using only the core modules. The function should define a class called `Blockchain`. This class should have methods to initialize the blockchain, create a new block with a nonce and previous hash, provide the current timestamp, and hash a given block.
  
  def create_blockchain():
      import hashlib
      import json
      import time
  
      class Blockchain:
  
          def __init__(self):
              self.chain = []
              self.transactions = []
  
          def create_block(self, nonce, previous_hash):
              block = {
                  'block_number': len(self.chain) + 1,
                  'timestamp': self._current_timestamp(),
                  'nonce': nonce,
                  'previous_hash': previous_hash
              }
              self.chain.append(block)
              return block
  
          def _current_timestamp(self):
              return round(time.time() * 1000)
  
          def hash_block(self, block):
              string_object = json.dumps(block, sort_keys=True)
              block_string = string_object.encode()
              raw_hash = hashlib.sha256(block_string)
              hex_hash = raw_hash.hexdigest()
              return hex_hash
  
      return Blockchain()
  
  # Example test cases
  blockchain = create_blockchain()
  block1 = blockchain.create_block(123, "0")
  assert blockchain.hash_block(block1) != None
  assert blockchain.chain[0]['block_number'] == 1
  assert blockchain._current_timestamp() > 0
output: def create_blockchain():
      import hashlib
      import json
      import time
  
      class Blockchain:
  
          def __init__(self):
              self.chain = []
              self.transactions = []
  
          def create_block(self, nonce, previous_hash):
              block = {
                  'block_number': len(self.chain) + 1,
                  'timestamp': self._current_timestamp(),
                  'nonce': nonce,
                  'previous_hash': previous_hash
              }
              self.chain.append(block)
              return block
  
          def _current_timestamp(self):
              return round(time.time() * 1000)
  
          def hash_block(self, block):
              string_object = json.dumps(block, sort_keys=True)
              block_string = string_object.encode()
              raw_hash = hashlib.sha256(block_string)
              hex_hash = raw_hash.hexdigest()
              return hex_hash
  
      return Blockchain()