本文将指导您使用OKX的开源储备证明文件和验证工具,逐步完成钱包地址所有权及其余额的验证流程,帮助您确认资产透明度与安全性。
准备工作
在开始验证前,请先完成以下准备工作:
- 访问OKX官方网站,下载最新的储备证明(Proof of Reserves)压缩文件。
解压后,您将获得两个核心工具:
- VerifyAddress:用于验证储备地址的所有权。
- CheckBalance:用于验证储备地址的余额(注意:使用前需在
rpc.json
文件中配置RPC节点或OKLink开放API等信息)。
- 将下载的储备证明文件与验证工具放置在同一文件夹内,以便后续操作。
理解验证原理
OKX的储备快照数据包含了地址、特定的所有权声明信息(如“I am an OKX address”)及其对应的签名,以及多签BTC的赎回脚本。验证的核心在于通过密码学方法确认这些签名确实由OKX控制的私钥生成。
BTC钱包:
- 单签地址:通过验证其消息和签名结果来证明所有权。
- 多签地址:采用2/3多签模式。快照文件中提供的两个签名,由OKX持有的三把私钥中的两把生成。验证这两个签名即可证明OKX至少控制着两把私钥,从而拥有该多签地址的控制权。
- ETH、USDT及其他EVM链地址:同样通过验证其消息和签名结果来证明所有权。
验证地址所有权
您可以使用OKX提供的开源工具或第三方工具来验证地址所有权。
使用OKX开源工具验证
此方法可批量验证快照文件中所有地址的所有权。
打开终端程序:
- Mac用户:打开“终端”(Terminal)。
- Windows用户:打开“命令提示符”(Command Prompt)。
- 使用
cd
命令导航至存放验证工具和证明文件的目录。例如:cd ~/Downloads/proof-of-reserves
。 在终端中输入以下命令(可将文件名替换为您实际下载的文件名):
- Mac:
./VerifyAddress --por_csv_filename=okx_por_20221122.csv
- Windows:
VerifyAddress.exe --por_csv_filename=okx_por_20221122.csv
- Mac:
- 注意:若在Mac上遇到“无法打开,因为无法验证开发者”的提示,请进入“系统偏好设置 > 安全性与隐私 > 通用”,点击锁图标解锁后,选择“仍要打开”。
- 验证成功后,终端将显示“Verify address signature end, all address passed”的提示,表明所有地址的所有权均验证通过。
使用第三方工具验证(示例)
对于单签BTC、EVM链(如ETH)和TRX链地址,您也可以使用区块链浏览器等第三方工具手动验证。
以单签BTC地址为例:
- 从OKX提供的CSV文件中,复制目标地址、对应的消息(Message)和签名(Signature)。
- 访问支持消息签名验证的BTC区块链浏览器(如blockchain.com/explorer)。
- 找到“验证消息”(Verify Message)功能模块。
- 分别粘贴地址、签名和消息内容。
- 点击验证,若显示“验证成功”,则证明该地址由OKX控制。
对于ETH质押资产,需使用第三方信标链浏览器(如beaconcha.in)验证验证者公钥的所有权:
- 从OKX提供的ETH质押证明文件中复制有效的验证者公钥。
- 访问信标链浏览器,搜索该公钥。
- 检查浏览器显示的“提款凭证”和“手续费接收地址”是否与OKX证明文件中提供的相应地址一致。这些地址信息均由OKX签名,可按上述方法验证其所有权。
验证地址余额
验证余额的目的是确认在快照生成的那个区块高度,链上地址的实际余额与OKX公布的快照文件中的记录完全一致。
验证分为两个层面:
- 验证单个地址的余额:对比特定链上某个地址在快照时的余额与文件记录是否一致。
- 验证所有地址的总余额:对比特定加密货币所有储备地址在快照时的余额总和与文件记录的总和是否一致。
配置RPC节点或API
要获取链上地址在历史快照时刻的余额,您需要配置相应的数据源。OKX工具支持三种方式:
- 使用默认公共RPC:无需修改
rpc.json
文件,工具会尝试连接公共节点(可能较慢或不稳定)。 - 使用第三方RPC节点(如Infura, Alchemy):需在
rpc.json
文件中配置相应链的归档节点URL。 - 使用OKLink开放API:需在OKLink官网申请API Key,并在
rpc.json
文件中配置。
附录部分提供了详细的RPC和OKLink API配置示例。
执行余额验证
配置好数据源后,即可使用CheckBalance
工具进行验证。
- 打开终端程序并导航至工具所在目录(同上)。
验证单个地址余额(以BTC地址为例):
在终端中输入命令(请替换为您要验证的地址和文件名):
- Mac:
./CheckBalance --mode="single_address" --coin_name="btc" --address="3A1JRKqfGGxoq2qSHLv85u4zn935VR9ToL" --por_csv_filename=okx_por_20221122.csv
- Windows:
CheckBalance.exe --mode="single_address" --coin_name="btc" --address="3A1JRKqfGGxoq2qSHLv85u4zn935VR9ToL" --por_csv_filename=okx_por_20221122.csv
- Mac:
- 终端将返回该地址在快照时刻的链上余额。
- 将此余额与快照文件中记录的余额对比,确认是否一致。
验证所有地址总余额(以ETH为例):
在终端中输入命令:
- Mac:
./CheckBalance --mode="single_coin_total_balance" --coin_name="eth" --por_csv_filename=okx_por_20221122.csv
- Windows:
CheckBalance.exe --mode="single_coin_total_balance" --coin_name="eth" --por_csv_filename=okx_por_20221122.csv
- Mac:
- 终端将返回所有ETH地址在快照时刻的链上余额总和。
- 将此总和与快照文件中记录的总余额对比,确认是否一致。
注意:
coin_name
参数支持:btc
,eth
,eth-arbitrum
,eth-optimism
,usdt-erc20
,usdt-trc20
,usdt-poly
,usdt-avaxc
,usdt-arbitrum
,usdt-optimism
等。- Mac系统如遇开发者验证提示,处理方法同前。
常见问题
Q1: 验证过程中遇到“RPC连接失败”或“查询超时”错误怎么办?
A: 这通常是由于使用的公共RPC节点不稳定或受限所致。建议配置第三方付费RPC服务(如Infura、Alchemy)或使用OKLink的API,以获得更稳定、快速的数据查询服务。请参考附录中的配置方法。
Q2: 为什么需要验证地址所有权和余额?
A: 验证所有权证明OKX确实控制着公布的那些地址,防止伪造地址清单。验证余额则证明在快照那一刻,这些地址上确实存在足够的资产覆盖用户负债。两者结合是审计交易所偿付能力的关键。
Q3: 除了BTC和ETH,还支持哪些加密货币的验证?
A: OKX的验证工具支持多条主流公链及其上的资产,包括但不限于Optimism、Arbitrum、Polygon、Avalanche等网络的ETH和USDT。具体可通过coin_name
参数查看支持列表。
Q4: 验证工具是否安全?会泄露我的隐私吗?
A: 该工具为开源软件,代码公开可查。所有验证操作均在您的本地电脑上完成,工具不会将任何隐私数据发送到外部服务器,请放心使用。
Q5: 如果验证结果不一致怎么办?
A: 首先请确认您配置的RPC节点或API是否支持归档数据查询,以及是否准确回滚到了快照所在的区块高度。如果问题持续,建议通过OKX官方渠道反馈具体地址和异常信息。
Q6: 快照文件的更新频率是多久?
A: OKX定期发布最新的储备证明快照,通常频率为每月一次。建议始终使用最新日期的快照文件进行验证,以获取最新的资产状况。