
一、“秘密技术”通常指什么
“秘密技术”不是一个严格统一的区块链标准术语。在区块链语境中,它通常可以理解为围绕秘密信息、密码学证明和权限控制展开的一组技术概念,尤其包括私钥、公钥、数字签名和哈希函数。它们的共同作用,是让网络能够验证某项操作是否得到相应控制者授权,而不必让控制者公开私钥。
本文的解释范围主要依据以太坊账户资料和比特币交易资料。两者都使用公钥密码学,但账户组织方式不同:以太坊围绕账户及其状态运行,比特币则常通过交易输入、交易输出和未花费交易输出记录可支配的金额。因此,相关术语不能简单视为所有区块链都完全相同。

二、私钥、公钥与数字签名
私钥是由账户控制者保管的秘密数据,可用于生成数字签名。公钥则是由私钥推导出的公开数据,网络可以利用它验证签名。验证过程不需要公开私钥,因此私钥既承担授权作用,也构成资产控制的重要凭证。

数字签名不是账户余额本身,而是对交易或消息的授权证明。以比特币的常见交易流程为例,付款者创建交易后,使用私钥对规定的数据进行签名;网络节点再依据公钥和交易内容检查签名是否匹配。若交易内容被擅自修改,原签名通常就无法通过对应验证。
需要特别区分“知道地址”和“拥有控制权”。地址、公钥或公钥哈希通常可以公开,用于接收资产或识别验证对象;私钥则不能公开。仅凭公开地址,一般不能反推出对应私钥。
三、哈希与地址并不是私钥
哈希函数可以把输入数据转换为固定长度的摘要。它常用于标识数据、生成地址组成部分以及检查内容是否发生变化。哈希摘要不是原始数据的简单加密,也不等同于私钥;知道哈希结果,通常不能直接还原出原始私钥。
以太坊外部拥有账户的地址,是从公钥经过哈希处理后取其中一部分并加上特定前缀形成的表示。比特币常见的P2PKH流程,则会把公钥哈希编码为地址,地址还可以包含版本信息和校验信息,用于帮助识别输入错误。由此可见,“地址”更像是接收或定位条件的公开表示,不是秘密凭证。
不同网络的地址生成规则、编码形式和验证流程可能不同。因此,不能因为两个地址都由字母和数字组成,就认为它们可以互相通用,也不能把一个网络的地址规则直接套用到另一个网络。
四、账户、钱包和合约有什么区别
在以太坊中,账户可分为外部拥有账户和合约账户。外部拥有账户由私钥控制,可以发起交易;合约账户由部署在网络上的代码控制,本身没有私钥。两类账户都可以接收、持有或发送资产,并与已部署的智能合约交互,但具体行为受到各自模型限制。
钱包不是账户本身,而是帮助用户创建、保存密钥或与账户交互的界面和应用。钱包可以操作外部拥有账户,也可以帮助用户调用合约账户。把钱包、地址、账户和私钥混为一谈,容易误解资产归属:链上记录的是状态或交易结果,用户实际需要保管的是能够证明控制权的密钥材料。
以太坊账户状态还包含nonce、余额、代码哈希和存储根等字段。nonce可用于区分账户发出的交易或合约创建次数,并帮助防止同一交易被重复执行;代码哈希和存储根则分别用于反映合约代码及其存储状态。
五、比特币交易中的输入、输出和脚本
比特币并不直接用一个账户余额字段表达用户拥有多少可花费金额。交易输出会记录金额及其花费条件,尚未被后续交易使用的输出称为UTXO。钱包显示的余额,实质上可以理解为一个或多个仍可花费的UTXO之和。
当用户要花费某个UTXO时,交易输入会引用此前交易的交易标识和输出索引,并提供满足原有条件的数据。常见P2PKH流程中,花费者提供公钥和签名,脚本先检查公钥哈希是否与原输出中的条件一致,再检查签名是否对应规定的交易数据。两项检查都通过,交易才具备相应的授权基础。
比特币脚本采用基于栈的执行方式,并通过较为受限的脚本规则处理交易条件。这样的设计有助于让验证过程更可预测,但它与以太坊合约代码的账户模型并不相同。
六、这些术语分别适用于什么场景
私钥、公钥和数字签名适用于需要证明消息或交易由特定控制者授权的场景;哈希适用于数据摘要、标识和完整性校验;地址适用于公开收款标识或承载验证条件;账户适用于以太坊式的状态组织;UTXO和脚本则主要用于理解比特币式交易。
当资料只讨论一般区块链原理时,可以使用“密钥控制”和“签名验证”等概括说法。但如果要分析具体网络,必须进一步确认其地址格式、账户或UTXO模型、签名算法、脚本规则以及是否存在合约账户。不能仅凭术语相似,就推断不同网络的操作方式完全一致。
七、常见问题
问题一:私钥是不是密码?私钥是用于生成签名的秘密密钥材料,密码可能只是用于解锁或加密保存密钥的凭证,两者作用不同。
问题二:地址能否证明资产一定属于某个人?地址通常只能表示接收位置或控制条件。它可以帮助网络验证后续操作,但不必然揭示现实身份。
问题三:合约账户有没有私钥?以太坊合约账户由合约代码控制,资料所述的合约账户本身没有私钥;能够调用合约,并不等于拥有一个可直接替代合约逻辑的私钥。
问题四:把私钥交给别人会怎样?由于私钥可用于生成授权签名,泄露私钥可能使他人能够发起相应的资产操作。因此,理解这些术语的首要目的之一,就是明确哪些信息可以公开,哪些信息必须保密。