<100 subscribers

一文读懂零知识证明背后的简单逻辑
零知识证明的工程实现是一件极具挑战性的工作,但这并不意味着理解零知识证明这件事也同样困难,它背后的逻辑是简单的。 为什么需要去了解它?隐私问题自不用提,另一个重要原因则在于,随着对区块链探索的深入,我们发现通过密码学的方法来实现信任是对共识算法信任的有效补充,这两种信任可以更低摩擦地结合在一起,因此也更易被实现和应用。这个趋势也可以从近期区块链技术的发展方向中察觉到。 而只有当我们知道这些密码学方法背后的逻辑,才不会迷失其中,才能理解它为何要这样去设计,它适用于什么样的应用场景。 那么现在,就让我们开始零知识证明之旅吧。它包含三段旅程:隐藏秘密之旅;证明秘密之旅;构建通用零知识证明之旅。一. 隐藏秘密:单向功能在《星际迷航》的宇宙中,P = NP,这对于计算界也许是件好事,它意味着所有可以在多项式时间内验证的问题,也可以在多项式时间内求解。但对于密码学界而言,这可能是一场灾难。 密码学需要存在一种「单向功能」,也就是说能够从 A 计算出 B,但从 B 计算出 A 存在着计算上的不可行性——计算从 A 到 B 是单向的,我们才有可能把 A 藏起来。而如果 P = NP,在多项式时间...

What Can Be Created Based on Decentralized Social Networks
When we talk about decentralized social, we usually refer to a class of products or protocols that have decentralized characteristics and are related to social media. When we discuss how to build such products, we often consider how to use decentralized technologies or even blockchain to create them, and how to bring the benefits of decentralization and blockchain to social users. While this perspective is not wrong, it resembles Maslow’s hammer: “If all you have is a hammer, everything looks...

Farcaster: A Brand-New Community Built on Top of Decentralized Social Networks
Every Friday, Farcaster is filled with a relaxed atmosphere. People greet each other with “Happy Friday” and “touch grass,” and even the cash cannon (a method for mass tipping) seems to be used more frequently on that day. It’s hard to sense this vibe on social media platforms on a Friday, but you can feel it in the office just before the end of the workday. I know some people come to Farcaster, take a quick look, and leave saying, “How is it different from Twitter?” Let me tell you, when you...

一文读懂零知识证明背后的简单逻辑
零知识证明的工程实现是一件极具挑战性的工作,但这并不意味着理解零知识证明这件事也同样困难,它背后的逻辑是简单的。 为什么需要去了解它?隐私问题自不用提,另一个重要原因则在于,随着对区块链探索的深入,我们发现通过密码学的方法来实现信任是对共识算法信任的有效补充,这两种信任可以更低摩擦地结合在一起,因此也更易被实现和应用。这个趋势也可以从近期区块链技术的发展方向中察觉到。 而只有当我们知道这些密码学方法背后的逻辑,才不会迷失其中,才能理解它为何要这样去设计,它适用于什么样的应用场景。 那么现在,就让我们开始零知识证明之旅吧。它包含三段旅程:隐藏秘密之旅;证明秘密之旅;构建通用零知识证明之旅。一. 隐藏秘密:单向功能在《星际迷航》的宇宙中,P = NP,这对于计算界也许是件好事,它意味着所有可以在多项式时间内验证的问题,也可以在多项式时间内求解。但对于密码学界而言,这可能是一场灾难。 密码学需要存在一种「单向功能」,也就是说能够从 A 计算出 B,但从 B 计算出 A 存在着计算上的不可行性——计算从 A 到 B 是单向的,我们才有可能把 A 藏起来。而如果 P = NP,在多项式时间...

What Can Be Created Based on Decentralized Social Networks
When we talk about decentralized social, we usually refer to a class of products or protocols that have decentralized characteristics and are related to social media. When we discuss how to build such products, we often consider how to use decentralized technologies or even blockchain to create them, and how to bring the benefits of decentralization and blockchain to social users. While this perspective is not wrong, it resembles Maslow’s hammer: “If all you have is a hammer, everything looks...

Farcaster: A Brand-New Community Built on Top of Decentralized Social Networks
Every Friday, Farcaster is filled with a relaxed atmosphere. People greet each other with “Happy Friday” and “touch grass,” and even the cash cannon (a method for mass tipping) seems to be used more frequently on that day. It’s hard to sense this vibe on social media platforms on a Friday, but you can feel it in the office just before the end of the workday. I know some people come to Farcaster, take a quick look, and leave saying, “How is it different from Twitter?” Let me tell you, when you...
Share Dialog
Share Dialog


我们希望把密码货币推广到日常支付,但实话实说,微信支付和银行转账已经能够很好地满足支付需求了,大众还有使用密码货币做支付的动力吗?或者问,密码货币能带来大众需要但非密码货币不能提供的支付上的优势吗?
答案或许是能,因为密码货币的可编程性。在过去一年,我们已经见证了可编程金融,也就是 DeFi 的创造力;也许在未来,我们能够看到可编程支付对支付方式的革新。
在这篇文章中,我们将从一款名叫 Sablier 的应用出发,讨论可编程支付的可能面貌和应用场景。Sablier 提供一种全新的支付方式:流支付。
一直以来,支付都是在某个确定的时间点上发生,在某一时刻,钱要么已经转移要么还未转移;流支付改变了这种情况,它发生在时间段中而不是时间点上,钱持续从一个账户转移到另一个账户,就像河水从一处流向另一处。
在这种新的支付方式中,钱是时间的函数:Y = a · X,其中 a 是单位时间被支付的钱,它是支付双方事先商定好的常量;X 是时间,是自变量;Y 是被转移的钱,它随着 X 的变化,也就是随着时间的流逝而不断变化。
实际上在很多支付场景中,支付的钱本就应该是时间的函数,比如薪酬,但因为技术上无法做到,所有的支付就都只能以时间上离散的方式完成,我们对于支付方式的想象力也被局限其中。可如今,在区块链和密码学的基础之上,以时间为变量、流式地传输金钱或者价值成为了一种可能,我们就可以试试看时间函数的方式是否更为合适。
Paul Ber 是最先开始尝试的人之一,他是 Sablier 的 CEO 和联合创始人。Sablier 是法文「沙漏」的意思,只不过在这个沙漏中,随时间落下的不是沙子,而是钱。
Sablier 实现了 Y = a · X 这一函数关系,用户只需要连接自己的钱包,填写与支付相关的常量信息,就可以创建出一个流支付。它有网页版和手机版,目前支持 MetaMask、Coinbase Wallet 等多款钱包以及接受 WalletConnect 协议的钱包,对于大多数区块链用户而言是友好的。
那么,流支付可能的应用场景会有哪些?Paul 大力推荐用它来发工资:如果一个人的月薪是一万,流支付意味着他不再是在某个发薪日收到一万,而是每天甚至每刻都能因已经付出的劳动而获得报酬。这种方式对提供劳动的人而言是友好的,相较于过去,他可以更早地使用这笔薪水。
除了用于支付薪酬,流支付还可以被应用于投资或资助,这有点类似于 DAICO 的作用,被投资者是逐步收到投资款的,而不是一次全部拿走;如果项目进展与预期不符,投资人可以收回未被支付的钱。这种方式对投资人是一种保护,对被投资对象也是一种约束,他们需要建设项目,而不是拿钱走人。
流媒体也可能成为流支付的应用场景。对于非订阅用户而言,流支付是一种合理的方式:被收取的费用取决于用户看视频的时间、听音乐或音频的时间、呆在直播室的时间,如果他不喜欢这个节目,就可以随时退出,不用为这个节目付全部的费用。
把流媒体扩展一步,就是数据流。数据是未来最重要的生产资料,一旦隐私计算为数据收费构造好基础之后,下一个要解决的问题就是如何收费,而流支付或许是可供选择的重要方法,用流动的金钱来支付流动的数据。除薪酬、投资、数据流这三个应用领域外,流支付还有其他想象空间,比如用于租赁、游戏、顾问服务等等,在此就不一一展开。
如果你不止是对使用这种支付方式感兴趣,还想设计或接入流支付,可以去关注 ERC-1620,它是一个以太坊上的流支付标准,Sablier 正是基于该标准实现的。
比特币闪电网络也有流支付应用,它的名字叫 Joule,被设计用于小额支付、自动支付、流支付。如果你更关注的是比特币网络,那么可以去了解它,其开发工作由 Grant.io 联合创始人 Willie O'Beirne 主导。
Sablier 的流支付是可编程支付的一种,但可编程支付远不止于此——毕竟 Sablier 仅仅使用了一个最简单的一次函数,Y = a · X。当钱或价值成为可编程对象后,理论上可以把它们放入任何的函数之中,来实现符合该函数模型的支付场景。
这会让支付与场景结合在一起,而在这个维度上的便捷性是我们从来也没设想过的,微信和手机银行始终是围绕单次的支付行动展开的,它们无视场景,当我们认为它们作为支付方式已经足够实用时,或许仅仅因为我们还没有打开新的维度,还没有想象过支付的其他可能。
可编程性还有另一个重要的意义:当可以对钱编程后,支付就不再是需要依靠外力才能触发的单个行动,它可以成为整个流程中自动执行的一部分。这种实现对于以机器为主要构成的自动化社会来说是至关重要的,它让支付不会成为需要干预的点或容易故障的点。
那么除了 Sablier 的流支付,支付方式还可以怎么去编程?
1. Y = a·X^2
Y =a·X 是一次函数,我们也可以使用二次函数,比如 Y = a·X^2 。在这种情况下,钱的流动不是均匀的而是加速的,随着时间的增长,单位时间需要支付的钱也越来越多。有这种支付场景吗?当然有。比如开源社区的开发者有些一个月只参与几个小时,有些一个月参与上百个小时,对于社区的发展,后者的重要性要高出很多,那么如果支付方式是参与时间越多单位时间的薪水越高,就能更好地鼓励后者。
与之相反的是二次方根,Y = m·√X,钱的流动是减速的,随着时间的增长,单位时间需要支付的钱越来越少。这似乎提供了一种更为灵活的会员制付费方式,参与的越多,收费越低,但用户不需要在事先做出承诺,也没有选择的压力,他是在使用服务的过程中被鼓励去更多地参与。
但二次方和二次方根都只是举例,对于一般的支付场景来说,这两个曲线随时间的变化都过于陡峭,实际中可能需要选择更接近于一次函数的曲线。
2.Z = a·X + b·Y + c
除了把时间作为自变量,还可以在函数中加入其他自变量或常量,因为在一些支付场景中,钱不仅是跟时间相关,比如它也可能跟工作量或工作质量相关。以 DAO 为例来讨论这种需求。
很多人相信自由职业会成为未来的一大趋势,而相比自由职业,DAO 可能又是一种更好的参与形式,因为在这种组织结构下,自由职业者可以在保持自由的同时,深度参与进一个组织的日常和发展;另一方面,创始人和管理者的工作也可以是一种自由职业,他们也能获得更高的自由度。
但如何为 DAO 的参与者分配收入会是一个棘手的问题,首先需要找出关键的指标,比如代码的数量、评定的分数等等,这当然很难,但假设指标已被确定后,就需要把这些指标放入函数中,通过代码来实现去中心化的自动支付,也就是可编程支付。这种支付方式对于 DAO 是至关重要的,不然 DAO 难以在支付这个环节贯彻其自组织、自动运行的属性。
可编程性意味着可以通过代码实现不同函数;可编程性同时也意味着可组合性。在 DeFi 领域,这种可组合性越来越能够给系统的发展提供强大的动力,或许在支付领域,可组合性也同样能够爆发潜力。
这种可组合性包括支付协议与支付协议的组合,比如形成支付链。在版权问题上,当用户以某种支付协议购买歌曲后,各参与方就能以约定的分款比例在另一支付协议下收到费用,避免平台方数据造假;在货款问题上,当商品在一个支付协议中被售卖后,供应商就能通过另一个支付协议收到钱,避免被恶意拖欠……
可组合性还包括与 DeFi、与 DAO、与其他应用或协议的组合。在与 DeFi 的组合中,支付协议的潜能可能是通过结合带来创新的产品;在与 DAO 的组合中,支付协议是与其他财务协议一起组成会计系统,相当于实现公司财务系统的外包,DAO 只用关注自己的核心业务。
不过,就如同 DeFi 的发展过程、甚至以太坊上生态发展的过程一样,可组合性是要在基础组件完备之后才能释放力量,而在此之前是既要潜心研发、又要发起挑战并可能遭遇挫败的成长期。Sablier 和 Joule 都只是最基础的流支付,可编程支付还有漫长的路要走,但一旦它取得突破,相信就会带来超越我们之前认知的某种变革。
改用许倬云先生的一句话:虽然未见,但它或是一种远见。
我们希望把密码货币推广到日常支付,但实话实说,微信支付和银行转账已经能够很好地满足支付需求了,大众还有使用密码货币做支付的动力吗?或者问,密码货币能带来大众需要但非密码货币不能提供的支付上的优势吗?
答案或许是能,因为密码货币的可编程性。在过去一年,我们已经见证了可编程金融,也就是 DeFi 的创造力;也许在未来,我们能够看到可编程支付对支付方式的革新。
在这篇文章中,我们将从一款名叫 Sablier 的应用出发,讨论可编程支付的可能面貌和应用场景。Sablier 提供一种全新的支付方式:流支付。
一直以来,支付都是在某个确定的时间点上发生,在某一时刻,钱要么已经转移要么还未转移;流支付改变了这种情况,它发生在时间段中而不是时间点上,钱持续从一个账户转移到另一个账户,就像河水从一处流向另一处。
在这种新的支付方式中,钱是时间的函数:Y = a · X,其中 a 是单位时间被支付的钱,它是支付双方事先商定好的常量;X 是时间,是自变量;Y 是被转移的钱,它随着 X 的变化,也就是随着时间的流逝而不断变化。
实际上在很多支付场景中,支付的钱本就应该是时间的函数,比如薪酬,但因为技术上无法做到,所有的支付就都只能以时间上离散的方式完成,我们对于支付方式的想象力也被局限其中。可如今,在区块链和密码学的基础之上,以时间为变量、流式地传输金钱或者价值成为了一种可能,我们就可以试试看时间函数的方式是否更为合适。
Paul Ber 是最先开始尝试的人之一,他是 Sablier 的 CEO 和联合创始人。Sablier 是法文「沙漏」的意思,只不过在这个沙漏中,随时间落下的不是沙子,而是钱。
Sablier 实现了 Y = a · X 这一函数关系,用户只需要连接自己的钱包,填写与支付相关的常量信息,就可以创建出一个流支付。它有网页版和手机版,目前支持 MetaMask、Coinbase Wallet 等多款钱包以及接受 WalletConnect 协议的钱包,对于大多数区块链用户而言是友好的。
那么,流支付可能的应用场景会有哪些?Paul 大力推荐用它来发工资:如果一个人的月薪是一万,流支付意味着他不再是在某个发薪日收到一万,而是每天甚至每刻都能因已经付出的劳动而获得报酬。这种方式对提供劳动的人而言是友好的,相较于过去,他可以更早地使用这笔薪水。
除了用于支付薪酬,流支付还可以被应用于投资或资助,这有点类似于 DAICO 的作用,被投资者是逐步收到投资款的,而不是一次全部拿走;如果项目进展与预期不符,投资人可以收回未被支付的钱。这种方式对投资人是一种保护,对被投资对象也是一种约束,他们需要建设项目,而不是拿钱走人。
流媒体也可能成为流支付的应用场景。对于非订阅用户而言,流支付是一种合理的方式:被收取的费用取决于用户看视频的时间、听音乐或音频的时间、呆在直播室的时间,如果他不喜欢这个节目,就可以随时退出,不用为这个节目付全部的费用。
把流媒体扩展一步,就是数据流。数据是未来最重要的生产资料,一旦隐私计算为数据收费构造好基础之后,下一个要解决的问题就是如何收费,而流支付或许是可供选择的重要方法,用流动的金钱来支付流动的数据。除薪酬、投资、数据流这三个应用领域外,流支付还有其他想象空间,比如用于租赁、游戏、顾问服务等等,在此就不一一展开。
如果你不止是对使用这种支付方式感兴趣,还想设计或接入流支付,可以去关注 ERC-1620,它是一个以太坊上的流支付标准,Sablier 正是基于该标准实现的。
比特币闪电网络也有流支付应用,它的名字叫 Joule,被设计用于小额支付、自动支付、流支付。如果你更关注的是比特币网络,那么可以去了解它,其开发工作由 Grant.io 联合创始人 Willie O'Beirne 主导。
Sablier 的流支付是可编程支付的一种,但可编程支付远不止于此——毕竟 Sablier 仅仅使用了一个最简单的一次函数,Y = a · X。当钱或价值成为可编程对象后,理论上可以把它们放入任何的函数之中,来实现符合该函数模型的支付场景。
这会让支付与场景结合在一起,而在这个维度上的便捷性是我们从来也没设想过的,微信和手机银行始终是围绕单次的支付行动展开的,它们无视场景,当我们认为它们作为支付方式已经足够实用时,或许仅仅因为我们还没有打开新的维度,还没有想象过支付的其他可能。
可编程性还有另一个重要的意义:当可以对钱编程后,支付就不再是需要依靠外力才能触发的单个行动,它可以成为整个流程中自动执行的一部分。这种实现对于以机器为主要构成的自动化社会来说是至关重要的,它让支付不会成为需要干预的点或容易故障的点。
那么除了 Sablier 的流支付,支付方式还可以怎么去编程?
1. Y = a·X^2
Y =a·X 是一次函数,我们也可以使用二次函数,比如 Y = a·X^2 。在这种情况下,钱的流动不是均匀的而是加速的,随着时间的增长,单位时间需要支付的钱也越来越多。有这种支付场景吗?当然有。比如开源社区的开发者有些一个月只参与几个小时,有些一个月参与上百个小时,对于社区的发展,后者的重要性要高出很多,那么如果支付方式是参与时间越多单位时间的薪水越高,就能更好地鼓励后者。
与之相反的是二次方根,Y = m·√X,钱的流动是减速的,随着时间的增长,单位时间需要支付的钱越来越少。这似乎提供了一种更为灵活的会员制付费方式,参与的越多,收费越低,但用户不需要在事先做出承诺,也没有选择的压力,他是在使用服务的过程中被鼓励去更多地参与。
但二次方和二次方根都只是举例,对于一般的支付场景来说,这两个曲线随时间的变化都过于陡峭,实际中可能需要选择更接近于一次函数的曲线。
2.Z = a·X + b·Y + c
除了把时间作为自变量,还可以在函数中加入其他自变量或常量,因为在一些支付场景中,钱不仅是跟时间相关,比如它也可能跟工作量或工作质量相关。以 DAO 为例来讨论这种需求。
很多人相信自由职业会成为未来的一大趋势,而相比自由职业,DAO 可能又是一种更好的参与形式,因为在这种组织结构下,自由职业者可以在保持自由的同时,深度参与进一个组织的日常和发展;另一方面,创始人和管理者的工作也可以是一种自由职业,他们也能获得更高的自由度。
但如何为 DAO 的参与者分配收入会是一个棘手的问题,首先需要找出关键的指标,比如代码的数量、评定的分数等等,这当然很难,但假设指标已被确定后,就需要把这些指标放入函数中,通过代码来实现去中心化的自动支付,也就是可编程支付。这种支付方式对于 DAO 是至关重要的,不然 DAO 难以在支付这个环节贯彻其自组织、自动运行的属性。
可编程性意味着可以通过代码实现不同函数;可编程性同时也意味着可组合性。在 DeFi 领域,这种可组合性越来越能够给系统的发展提供强大的动力,或许在支付领域,可组合性也同样能够爆发潜力。
这种可组合性包括支付协议与支付协议的组合,比如形成支付链。在版权问题上,当用户以某种支付协议购买歌曲后,各参与方就能以约定的分款比例在另一支付协议下收到费用,避免平台方数据造假;在货款问题上,当商品在一个支付协议中被售卖后,供应商就能通过另一个支付协议收到钱,避免被恶意拖欠……
可组合性还包括与 DeFi、与 DAO、与其他应用或协议的组合。在与 DeFi 的组合中,支付协议的潜能可能是通过结合带来创新的产品;在与 DAO 的组合中,支付协议是与其他财务协议一起组成会计系统,相当于实现公司财务系统的外包,DAO 只用关注自己的核心业务。
不过,就如同 DeFi 的发展过程、甚至以太坊上生态发展的过程一样,可组合性是要在基础组件完备之后才能释放力量,而在此之前是既要潜心研发、又要发起挑战并可能遭遇挫败的成长期。Sablier 和 Joule 都只是最基础的流支付,可编程支付还有漫长的路要走,但一旦它取得突破,相信就会带来超越我们之前认知的某种变革。
改用许倬云先生的一句话:虽然未见,但它或是一种远见。
No comments yet