
账户算法是一组协作机制
区块链账户的算法涉及哪些技术概念,可以从三个问题理解:谁有权发起操作,操作涉及哪份资产,账本如何确认操作有效。密钥与签名解决授权问题,地址与哈希帮助标识数据,状态模型和验证规则决定资产如何更新。不同区块链的实现不能直接互套。
公私钥与数字签名
公钥密码学建立私钥与公钥之间的数学关系。私钥用于生成签名,验证方利用相关公钥和被签署的数据检查授权。比特币传统P2PKH使用基于secp256k1曲线的ECDSA签名,以太坊普通外部账户也涉及椭圆曲线密钥与签名。

签名并非把交易内容加密隐藏。它证明签署者控制相应密钥,并约束被签署的数据;公开可验证与内容保密属于不同目标。密钥控制权也不等于现实身份认证。

哈希与地址编码
哈希函数把数据映射为固定长度的摘要。以太坊外部账户地址由公钥的Keccak-256哈希末20字节形成;比特币传统P2PKH地址则编码公钥哈希,并带有版本信息和校验和。这里的比特币说明限于该地址类型。
地址是识别接收目标的表示形式,不能代替私钥。地址校验有助于发现输入错误,却不能证明接收方身份;哈希也不是可以用密码解开的加密文本。
账户状态与UTXO
以太坊账户状态包含余额、nonce、代码哈希和存储根等信息。外部账户的nonce参与交易顺序检查,防止同一交易在相应账户历史中反复执行。比特币采用UTXO模型,普通交易输入引用此前尚未花费的输出,输出规定后续花费条件。
两种模型的区别在于记录单位:一种直接更新账户状态,另一种消耗旧输出并创建新输出。因此,钱包显示的“余额”不能说明底层一定存在同样形式的余额字段。
程序执行与状态摘要
以太坊合约账户由代码逻辑控制,存储根通过Merkle Patricia Trie概括其存储状态。比特币P2PKH则通过脚本检查公钥哈希与签名是否满足花费条件。
这些机制各有分工:程序规定允许执行的操作,哈希结构帮助校验数据,签名提供授权证据。仅有有效签名仍不足以保证交易有效,还需要满足相应账本的状态与执行规则。
常见问题与适用边界
账户与钱包有什么区别?账户属于链上的状态或控制关系,钱包是管理密钥、展示资产并与网络交互的软件界面。钱包里的资产显示不意味着资产存放在软件文件中。
所有账户都对应一把私钥吗?不能这样概括。外部账户与合约账户的控制方式不同,UTXO的花费条件也应按具体脚本理解。分析某条链时,需要分别确认密钥方案、地址类型、状态模型与验证规则。