作者:SHINOBI
来源:https://bitcoinmagazine.com/technical/cashu-a-vision-for-a-bitcoin-powered-ecash-ecosystem
最近,ecash 正渐渐成为一个无法回避的话题。在新出现的几乎每一个提议都饱受争议的大背景下,ecash 作为一个今天就可以利用起来、无需替换和变更比特币协议的方案,显得特立独行。
在现在这个气候下,不必改变比特币就能部署应用,是非常有价值的事。所以,毫不意外,Cashu ecash 协议迅速在边缘地带站稳脚跟。Nostr 这样的平台上也开始有应用采纳它;而且,铸币厂之间通过闪电网络来结算的特性,也让 Cashu 钱包成了对 Wallet of Satoshi 这样的易用型闪电钱包的可用替代品。
Ecash 很可能会成为比特币生态系统的一个日益热门的部分,而(尤其是)Cashu,在鼓励多种兼容性实现上已经做得非常成功了。
Cashu 的开发者们,对于围绕这套协议去开发一个生态系统、解决 ecash 的一些根本性的信任模式问题、以及多种使用场景的具体需要,有一套全面的计划。我们就来看看这种愿景。
盲化的 Token
所有 ecash 协议的核心都是盲签名方案。正是这种机制,让一个中心化的实体可以处理 ecash 支付而不牺牲用户的隐私。
在一开始,用户铸造一个 token 时,必须生成一个随机数。这个随机数就是一个真实的 ecash token。自己生成这个随机数,就保证了这个 token 是安全地保管在自己手里的,而不是保管在别人手里的。但这还不够,因为每个人都能生成随机数。一个 ecash 铸币厂需要用签名来给这个 token 作公证。
问题在于,要是铸币厂在签名的时候就看到了这个 token,那么他们就将能够知晓自己是给谁签名了 token,并且也可以在有人赎回这个 token 的时候,知道谁在给谁支付。为了解决这个问题,用户需要生成第二个随机数,称为 “盲化因子”。本质上,盲化因子就是将 token 乘以一个用于盲化的数值。
然后,用户将这个盲化之后的数交给铸币厂,由后者签名(公证)。这时候你肯定要问了,铸币厂签名的是这个盲化之后的 token,而不是明文的 token,那这个签名是对明文的 token 有效的吗?答案是肯定的。因为盲化协议和底层的密码学,你可以作跟盲化 token 相反的操作,来解除签名的盲化。
最后,你得到是对明文的 token 有效的签名,而且能够保证,有人要拿着它跟铸币厂赎回比特币的时候,铸币厂不会知道自己是在什么时候、为谁签名了它,也不知道自己到底签了什么。这就是 ecash 的原理(你学会了吗?)。
(译者注:考虑到 Cashu 铸币厂是存在于闪电网络上的,可以将这里的 “铸造” 理解成 “铸币厂接受用户的闪电支付/ token 支付,放出同等价值的 token”,而 “赎回/兑付” 则是 “用户使用 token,要求铸币厂发起闪电支付”。)
小型的个人铸币厂
Cashu 的目标是成为一套有有倾向性的轻量协议,要易于实现、易于集成,并且易于在上面开发。Cashu 的愿景是让许许多多非常小的个人铸币厂全部通过闪电网络连接在一起,共同形成一个生态系统。因此,开发者们不那么关注具有网络效应、让用户可以彼此直接转移 token 的大铸币厂(这会让大量的比特币汇集到少数几个被信任的人手上),更关注小体量的个人运营者。
这让用户可以将信任放置在自己有朋友关系的人身上,从而每个用户都依赖于更接近自身社交圈子的运营者。闪电网络让这一切成为可能,因为你不需要说服每个人都接受来自你的铸币厂的 token,他们可以接受来自自己的铸币厂的 token,而且每个人都能赎回。
这种策略是希望尊重 “邓巴数” 的现实:一个人可以产生有意义关联、愿意投注信任的人数是有上限的。
通过 Nostr 发现铸币厂
为这种鼓励人们基于信任圈设立铸币厂的想法注入活力的是新型的 Nostr 发现协议,它是 Cashu 生态系统长久运行的一个重要部分。Nostr 建立在让用户的身份绑定在自主保管的密钥之上,这使得只有他们自己才能使用自己的身份 —— 广播属于这个身份的消息。
当前,Nostr 的主要应用场景是社交媒体,它跟基于公钥的身份方案的结合为密码学中一个非常古老的概念提供了强大的基础:新人网络。Cashu 正在利用这一点,帮助用户发现可以使用的铸币厂。
使用 Nostr 公钥,任何人都可以使用一款支持定位铸币厂的 Cashu 钱包,而且还可以看到人们知道、信任哪些铸币厂,还可以集成这些铸币厂。这可以形成一个声誉系统,让用户在选择 Cashu 铸币厂时作出更加明智的决定,而不是盲目猜测、祈祷铸币厂不要跑路。
随着时间推移,越多铸币厂出现,就将有越多拥有 Nostr 身份的人使用它们,这个带有声誉的信任网络就越强大。这也许能自然驱逐恶意的、不知名的铸币厂,并给用户一群值得信任的、诚实的铸币厂。
使用多个铸币厂
鼓励多样的铸币厂的生态系统、允许用户自己选择的基本概念,是让市场发挥开放竞争功能的一个坚实基础。但还可以更进一步。一个用户可以使用多个铸币厂。
用户可以在多个铸币厂都存放资金,而且,利用多路径支付的变种,可以将来自不同铸币厂的资金聚合起来、在闪电网络上对单个目的地发起一笔支付。这让资金托管的对手方风险分散到了多个对手方身上,又无需牺牲向使用不同铸币厂的用户发送平滑支付的能力。
这是通过让铸币厂运行定制化的软件来实现的,这样的软件可以让一个铸币厂仅支付一个闪电发票的一部分、其它铸币厂支付其余的部分。只要每个铸币厂都成功路由支付到最终目标,支付就成功。
甚至可以进一步定制他们的闪电节点,从而允许用户 收取 一笔发给多个铸币厂的支付。如果铸币厂们支持用户的钱包通过生成原像来完成支付(而不是由铸币厂来完成),那么每个用来接收资金的铸币厂都可以发行自己的发票,让收款用户来控制什么时候释放原像。只要每个参与的铸币厂都收到了路由过来的 HTLC,那么用户就可以放出所有原像,并成功在多个铸币厂之间分散收到的资金。
这个方案可以显著降低因为某一个铸币厂而丢失资金的风险,再结合 Nostr 的发现协议以及相关的信任网络,可以大大提高用户的安全性。
给货币编程
Cashu 最有用的特性之一是,你可以给一个 ecash token 编写脚本功能,就跟使用比特币脚本来编写程序、锁定比特币 UTXO 一摸一样。Cashu token 可以在盲化 token、交给铸币厂公证之前编码脚本条件,日后,当这些 token 要赎回的时候,铸币厂可以检查其中的脚本条件是否得到了满足,如不满足就拒绝兑付。
当前,Cashu 已经实现了一种公钥脚本锁,也就是被锁定的 token 需要提供来自某个公钥的签名才能赎回。这让铸造出来的 token 被锁定、只能被某个私钥的主人赎回。一旦带有这样的公钥锁的 token 被铸造出来,别人就没法拿它兑换成比特币。
这可以用来实现收款人离线时候的安全支付。即使没有互联网连接,他们也可以通过验证铸币厂的签名来,确保自己收到的资金是没有别人可以花费的。他们可以安全地接受这种支付,因为他们知道自己可以在方便的时候赎回它。
这会带来一些复杂性,因为发送者必须提前锁定 token 给某一个收款人,如果收款人在收款时没有互联网连接的话。考虑到人们的花费有随机性,这就产生了一个问题,他们可能会花出去许多钱,但在没有被收款人接收时,也无法追回。
但脚本可以添加更多功能:创建出来的 token 要求来自某个公钥的签名才能赎回,或者,在一段时间过后,任何人都可以赎回。这就类似于 HTLC。Cashu 的规范也定义了一种真正的 HTLC token 脚本。
随着时间推移、人们需要更多应用场景,人们可以用来锁定 Cashu token 的脚本可以基于用户和铸币厂的需要任意扩展。我预期,这会成为这套协议在未来的一个非常强大的方面。它可以支持保管服务、多签名 token 以及大量的巧妙智能合约。Cashu 铸币厂可以强制执行比特币可以支持的任何脚本条件,而且还可以支持更多。
未来
人们在使用托管商,人们一直在使用托管商,而且可能还会继续使用托管商,无论非托管的解决方案提供了何等的灵活性。这只是一个生活的真相:有些人无力,或不愿意承担责任、处理自主保管的复杂性。
Cashu 致力于激进地提升用户可得的托管服务。它可以给用户带来隐私性、审查抗性以及灵活性,这些都是传统的托管服务无法提供的。
Cashu 项目的目标不是使用托管商 “扩容比特币”,而是提供一套优化过的、具备隐私性的托管服务。我认为,这是一个值得称赞的目标,有望在未来给这些用户带来巨大的好处。
(完)