在类似 webserver 这种无法保证安全的环境中运行的钱包程序,可以被设计为只发布公钥(包括 P2PKH 或者 P2SH 地址),然后其他什么都不做。有两种常用的方式来设计这种极简的钱包:
- 提前生成一个包含一定数目公钥或地址的数据库,然后使用数据库内的一条记录发布一个请求脚本或地址。为了避免重复使用密钥,webserver 应该持续跟踪已使用的密钥并确保不会使公钥用完。这会比第二种方式中使用父公钥的方式简单不少。
- 使用一个父公钥来创建子公钥。为了避免密钥的重复,需要一个方法来确保一个公钥不会被发布两次。这可以是数据库中每个已发布密钥的记录或者一个递增的数字来作为密钥的索引值。
任何一个方法都产生了不少值得注意的问题,尤其是数据库被用于关联每笔单独公钥的进账跟踪时。查看支付流程章节获得更多细节。