```\nfunction _approve(address owner, address spender, uint256 amount) private {\n    require(owner != address(0), "ERC20: approve from the zero address");\n    require(spender != address(0), "ERC20: approve to the zero address");\n    _allowances[owner][spender] = amount;\n    emit Approval(owner, spender, amount);\n}\n```\n