Author

Topic: 【深度好文】Craig Wright:在Bitcoin Cash用简单的方式进行消费 (Read 146 times)

member
Activity: 252
Merit: 12
多洗洗脑,自然也就有信仰了,数字货币,玩儿的就是一个信仰
member
Activity: 379
Merit: 10
Buy, sell and store real cryptocurrencies
中国人其实都该支持下BCH,
member
Activity: 495
Merit: 15
又来了,每天一篇,雷打不动!!!
full member
Activity: 210
Merit: 100

似乎很多人认为我们需要修复“比特币现金”(Bitcoin Cash)的延展性。当从商业用途角度思考真正的原因时,他们最多想到我们要能在10分钟内花掉零钱,而忽视了链式支付是一种二级交易,任何不了解各方参与者的商家都不愿意接受这种没有外部信任链接的交易。

这是为什么?


原因是,任何系统,甚至连Schnorr都没有解决第一方的延展性。一个交易在被包含到区块之前是可以更改的。这实际上是双重消费。在比特币现金中,这是一个低概率事件,但随着交易被链接起来,风险变得越来越大。链上的每一个环节都增加了双重消费的可能性。

需要简单时的复杂性

在讨论更复杂或更曲折的方法之前,我要指出,简单的答案往往是最好的。比特币的设计理念是拆分和重组。这一概念被纳入了比特币白皮书的第9节。本文的这一部分注意到了重组的使用,即拆分和重新结合交易。正如本节所述:

“应该指出的是,一个交易依赖于数个交易,而这数个交易依赖于更多交易,这种扇出在这里并不是问题。从来不需要提取交易历史记录的完整独立副本。”

组合和拆分的价值

比特币被设计为拆分和重组。这个概念由来已久,其实就是我们现在处理现金的方式。我们编制钞票和硬币来支付款项。我们可以收集很多小额硬币,或者只递出一张大额钞票而找零。

这一概念的麻烦只在于有可能通过限制区块体积来人为地给比特币制造上限。在限制签名操作数量和区块大小的情况下,拆分和组合硬币的能力变得非常昂贵。最终的结果是,比特币的本质开始发生改变。让这种情况成为现状时,我们已经忘记了比特币是如何衍生出基本的可替代性的。

将比特币限制在少量的输入和输出上,比特币会成为一种简单的顶级交易,许多网站和公司的成立都只是为了提供这种交易。当然,这并不是什么新鲜事。

在维护未花费输出的一个变量集而不是单个大地址时,您的安全性和隐私性将自动增加。单个地址总是比许多可能相关或可能不相关的小地址更像一个目标。即使是划分新地址这种简单行为也会使所有权跟踪变得更加困难。

是的,硬币重组时你可以把这个事件中的一些信息链接起来,但如果这是一件理所当然的事情而不是一个异常事件,那么将未花费输出(硬币)关联起来就变得更加困难了。

事实上,只有那些硬币可以被链接起来。如果你想确保隐私,那么当你的钱包里有“随机”付款时,你也可以把它们分开发送。这样就不需要使用在web上跟踪cookie的那种方式。

一个好的、专注于隐私的钱包将允许用户分离和隔离输入,亦可以划分这些输入。这是限制区块大小的最阴险后果之一。在这种情况下,试图将未花费硬币组合为更少输入所带来的限制会导致系统的隐私大幅度减少。当所有支付只有一两个输入时,很容易追踪硬币的去向。

当我们开始让钱包拆分硬币,不使用相同的地址(即为了避免地址重用),我们发现我们能更多而不是更少地控制我们的钱。它变得更容易互换,更难以追踪我们所做的一切。这就是比特币在慢慢侵蚀的东西,现金的隐私和可用性。说它将会有多难使用是谬论,说货币主权要求对区块链所有交易进行单独检查是谎言。

事实是,保持对我们私钥的控制并允许系统对输入进行拆分和重组,创造了可替代性并增加了隐私。

最佳现金面额

当我们开始把比特币视为现金时,我们就可以开始把现有的消费与消费者的购买习惯联系起来。我们想花钱时,通常不会带着一大堆500欧元钞票出门。如果我们这样做,可能会发现很难花出这笔钱。我们需要花时间寻找愿意接受用这些钞票进行交易的卖主。许多人并不会。

比特币也一样。如果我们希望走进一家商店,花100个比特币现金进行一个交易,然后在10分钟内又走进第二家甚至可能第三家商店进行交易,把交易链接起来,我们并没有花时间去了解比特币是如何设计的。

现金划分

可以使用基于现有现金分配系统的自动分配规则来创建消费钱包。这样的钱包可以让消费者在购物前将价值载入手机或移动钱包。其结果是,他们不需要随身携带所有的比特币,允许消费者限制他们愿意携带的金额。这甚至可以链接到自动规则,这些自动规则可用于在确定的事件或限制下或有远程人员参与时对钱包进行远程充值。

这也是赌博行业的一个知名场景。在赌场桌子上交换筹码的机会是有限的。因此,为了能够提高水平和发挥好,筹码组合也很重要。这个概念不仅仅来自于现金的使用,它还与将功能扑克筹码组放在一起的概念有关。

金库与保险箱

在现实世界中,我们有金库、保险箱和现金箱。在日本和瑞士这样的社会中,这将是一个更简单的概念。在日本,储蓄现金的想法仍然是常态。这个社会没有像西班牙那样受到压制。这一概念与人们曾经享有的自由已经慢慢地侵蚀掉了。我说压制是因为在西班牙连取出或者消费适量的现金都是非法的。这一限额在2016年为2500欧元,现已下降到1000欧元。

如果我们重新把比特币视为一个现金系统,我们就可以开始考虑把它当作现金使用,以及现金如何继续在像日本这样现金仍然常见并且没有被抑制的国家使用。

比特币:一种点对点的电子现金系统

当我们使用现金时,我们把钱从现金箱里取出来,把我们想要的东西放在钱包里。这也是比特币的设计理念。我们可以把大量的资金锁在一个安全的地方。你可以把这个更安全的储物箱看作是你家里可能有的现金箱或保险箱。

比特币白皮书第9节规定:

通常一个较大的先前交易有一个单个输入,或者组合了较小金额的多个输入,最多两个输出:一个用于支付,另一个把交易物(如果有的话)返回给发送方。

通过这种方式,我们将存储的价值发送到我们可以用来购物的钱包里。从这一点来看,我们可以在商家那里消费或者给我们的钱包充值(甚至可以远程进行)。

如果…

另一个不考虑这个问题和不了解比特币的例子是,如果你想为另一个人购买商品,那该怎么办呢?这也是修复延展性被吹捧的一个原因。在这个(做作的)场景中,你在一家商店,一个朋友给你打电话说你能也给我买X吗?(或许他们在社交媒体上看到了你刚刚买的东西…)

有一种说法是你需要把你朋友的钱接收到你的钱包里,然后把它花在购买上(在10分钟内)。

我说这个原因是人为猜测的。在这种情况下,很明显,提出这种说法的那些人不了解比特币的本质和威力。

不需要第三方

我们看到,这绝不是比特币白皮书第10节里面的比特币设计。

如果我们退后一步想想这个场景,我们知道我们的朋友可以看到我们并与我们互动。这意味着他们不需要我们在这个交易中充当受信任的第三方。那要怎么办?很容易,朋友可以直接付钱。

如果朋友已经愿意让我们为他们收集货物,他们也可以这么做去直接付款,事实上,他们不需要在这件事情上对我们这么信任。

比特币让我们可以直接付款给商店或商家,而不是将交易链接起来。我们可以作为我们朋友的代理,向他们发送付款请求。这类似于Gavin和Mike在BIP 70中的提案。

这样一来,商家会立即收到付款,而且不需要任何链接。在你等待的时候(大约1到3秒),这个朋友甚至可以在地球的另一端付款,商家在几秒钟内将会收到付款,并可通过一个标准的0–conf(零确认)进行验证。

所以,我要问一下,明明现在就有一种更优越的方法,并且它从一开始就被纳入比特币,我们为什么还要寻求更困难的“解决方案”?

这不是一个真实场景。不需要修复延展性来阻止它的发生。比特币的本质是不需要使用第三方,那么为什么这么多人尽其最大努力让第三方成为比特币的一部分呢?

UTXO集

除了区块大小以外,我希望能从这个概念中得到一个清晰的观点:限制未花费交易输出(UTXO)的大小是一个虚假需求。

在拆分比特币的过程中,我们增加了UTXO大小。这被错误地认为是一个问题。这就是比特币的设计方式。那些试图限制区块大小的人实际上是在向你兜售隐私的概念,因为他们让你的隐私更容易被颠覆和移除。

一旦你接受采矿将成为企业活动,通过经济和竞争进行管理和保障,你就会越快地看到这是一个经济系统,而且它在经济上是有安全保障的。它注定要扩大规模。

始终注定要数据中心

运行节点的负担越重,节点就越少。这几个节点将是大型服务器场,其余的将是只执行交易但不生成交易的客户端节点。

随着UTXO集的增长,从来没有一个真正的长期问题,认为所有人都需要运行一个节点是一个错误的想法。一旦我们承认这不是比特币的设计方式,我们就可以开始发展这个系统,使它开始为数十亿人提供价值。

解决方案

一旦我们脱离了毫无根据的FUD(恐惧、不确定性、怀疑),FUD已经被过度兜售为一个扩容问题(似乎更像是一种从比特币提取价值到ALT硬币的方法),我们开始看到比特币是被设计为现金的。把它当作现金使用时,效果最好。

因此,对于我们需要修复延展性然后进行链式交易的想法,在任何情况下都是一个稻草人。商家永远不会信任把不确定的交易链接到同等水平,因为他们可以通过0-conf在一秒钟内监测和了解风险。

链式交易有一个目的。处理付款渠道时,可以把一系列交易链接起来。对于这种情况,可以引入一些解决方案,使得风险级别非常低。

使用基于(R,S)和(R,-S)对的多个TXID交换,加上SIGHASH_NONE/SIGHASH_ANYONECANPAY(及相关)选项,我们能创建出可以链接的复杂脚本。

这点将在后面的一篇文章中讨论。

把钱退回到金库

在购物结束时,我们当然把我们的钱退回金库以备日后使用。如果我们不太关心隐私,可以把它重新组合起来,也可以进一步拆分和分离它。这就是开发好钱包的机会所在。如果使用nLocktime,这甚至可以自动化。

基于nLocktime的交易在创建和签名交易时设置的时间之前无效。我们可以把它作为一个特性来使用。任何已被花费现已失效的交易都不能被网络视为有效。

因此,当我们在购物前为我们的钱包提供资金时,我们也可以创建出将资金安全地返还到仓库的交易。举个例子,我们可以在早上把资金转移到一个移动钱包里。为了便于解释,我们创建了10枚硬币,每枚面值为5 mBit。

与此同时,我们还创建了一组已签名交易,其nLocktime值设置为本地时间21:00(晚上九点)。这10个独立的已签名交易在晚上9点以后才生效。

在这一天,我们花费了以下的金额:
5 mBits — 咖啡
27 mBits — 午餐
13 mBits — 给妻子买的花


在此之后,我们的移动钱包还有以下剩余:
5 mBits:买咖啡时找的零钱
3 mBits:买午餐时找的零钱


结果只会是以下两种情况之一:
1 mBit 零钱,如果我们用之前零钱金额的两倍去买花(A)。或
7 mBits零钱,用一个10 mBit硬币买花时找的(B)。

两种情况(分别)是,60 mBit = 6 x 10 mBit / 硬币(A)或40 mBit = 4 x 10 mBit / 硬币(B)。

在其中任何一种情况下,未花费的硬币会在晚上9点自动从金库应用程序中返回到我们的钱包。到时会为所有硬币发送一条广播(或者甚至可以监视那些已花费的硬币不再持有签名交易)。钱包尝试为已花费硬币发送签名交易时会被拒绝。

其结果是我们的移动钱包中有1 mBit或15 mBit的零钱(取决于我们个人的消费偏好)。

我们没有必要要求商家信任我们。他们在几秒钟之内就可以验证他们拥有的0-conf交易是网络上唯一的交易,我们可以走到下一个商店并在瞬间消费。

现在比特币世界里,许多人的问题是为简单的问题寻找复杂的解决方案。

在这一点上,我们根本不需要担心延展性。尽管这个需求受到了吹捧,但它并没有产生任何影响。当我们开始研究这个问题时,我们发现许多所谓的比特币问题根本不是问题,它们是“专家”为捍卫和巩固他们的立场而创造的问题,并非源于现实。

Jump to: