
先认识密码技术解决的问题
区块链中的密码技术主要帮助回答:数据有没有变化,操作是否获得授权,以及某条记录是否被纳入特定数据集合。入门时应把数据完整性、授权验证和内容保密分开理解;使用密码学,并不代表公开账本中的交易都经过加密。
哈希与默克尔树:校验数据的基础
比特币开发者指南介绍了区块的连接方式:区块头记录前一区块头的哈希,交易哈希则逐层组合形成默克尔根。修改交易会影响相关哈希;默克尔证明可用于核验交易是否包含在某个区块中。
可以把哈希理解为便于比对的数据摘要。它不负责把内容加密后再解密,也不能仅凭一个摘要还原原始交易。验证默克尔证明时,需要有可核验的区块头作为依据;证明交易被收录,与证明交易满足全部规则,是两个不同的问题。
公私钥与数字签名:验证授权
以太坊账户文档说明,外部账户通过私钥签署交易,签名机制支持验证发送方。此类账户的地址由公钥经哈希处理后截取得到;合约账户则由代码逻辑控制,没有对应的账户私钥。钱包是与账户交互的应用或界面。
理解时应区分三个角色:私钥用于签名,公钥参与验证,地址用于标识账户。签名提供的是与密钥相关的授权证据,并不直接证明现实身份。钱包访问密码与链上签名私钥也属于不同层次,不能混为一谈。
密码学为什么还需要共识规则
比特币开发者指南还说明,节点独立验证区块,工作量证明增加改写历史所需的计算成本。区块哈希的链接关系需要与这些规则共同发挥作用。
因此,发现数据变化与决定接受哪段历史,需要不同机制配合。签名验证通过,也不足以单独判定交易有效:节点仍需检查是否存在重复花费等情况。比特币的工作量证明实例不能直接套用于所有区块链。
常见问题与学习顺序
交易有签名,内容就保密了吗?签名主要解决授权验证问题,不能据此推断内容受到保密保护。记录进入区块后就绝对无法改变了吗?应结合共识机制和验证条件理解其安全性,避免把哈希连接等同于绝对不可修改。
入门可按哈希、公私钥、签名、默克尔证明、共识规则的顺序学习。每学一个概念,都明确它验证什么、依赖什么条件、还有哪些问题需要其他机制处理,这比单纯记住算法名称更有帮助。