本文讲解一下BitCoin的技术原理及技术挑战(一)

资讯 9个月前 manoon
0

本文解释了比特币技术原理。了解了原理,自然就会清楚比特币可以解决哪些问题,还存在哪些不足。剩下的问题是讨论比特币的发展会有什么机会。

我们不妨把比特币系统分成四个问题来讨论,1.交易(transaction),2.支付(payment),3.审计(audit),4.币铸币(Mintage)。

【1】交易

交易的基本要求是付款人(payer)向收款人(payee)汇款。技术挑战是加密(cryptography),旨在防止第三方拦截甚至篡改汇款金额。

比特币的交易加密方式继续使用现成的基于公钥和私钥的非对称密码学。这里没有创新。

[1] 在第二部分的图例中,最左边的方框说明了 Owner0 向 Owner1 汇款的交易机制。截图如下。

1. Owner0 首先找到 Owner1 的公钥。使用 Owner1 的公钥对汇款明细进行加密。这样,只有Owner1可以用自己的私钥打开加密后的汇款明细。图例中没有绘制汇款明细。但是这个小故事的疏忽是好的。

本文讲解一下BitCoin的技术原理及技术挑战(一)

2. 为了方便Owner1验证汇款确实来自Owner0而不是其他人,除了加密的汇款明细外,Owner0发送的汇款单还包含Owner0的数字签名。当Owner1收到汇款后,为了验证汇款确实来自Owner0,他可以使用Owner0的公钥来验证汇款单中Owner0的数字签名

3. 当Owner0发送汇款单时,该汇款单不仅送达给Owner1,而且还宣传任何愿意参与比特币审计的人都可以收到全世界所有人的所有汇款单。

4. 按照1、2、3的原则,Owner1汇款给Owner2,Owner2汇款给Owner3。比特币通过哈希机制将所有涉及同一个比特币的汇款交易(Tranaction)连接起来,目的是追踪双重支付的欺诈行为。

【2】付款

当付款人(payer)向收款人(payee)发送汇款交易(transaction)时,还没有完成支付过程(payment)。直到收款人签署并接受汇款后,付款过程才会正式结束。

收款人在接受汇款前,必须确认汇款人没有双花。这类似于我们在接受钞票之前,最好验证一下钞票是否是假的。

比特币验证重复支付的方法是依靠公众报告。收款人收到汇款后,张贴汇款单。审核站点收到广告的汇款单后,会检查该汇款单所涉及的比特币是否出现在其他汇款单中,是否已经重复支付。如出现此类重复付款,审核现场将予以报告并通知收款人拒绝签收。

比特币保证重复支付可以上报,但不能保证当场抓到。[2] 假设一个场景,

本文讲解一下BitCoin的技术原理及技术挑战(一)

1. 骗子开设了A和B两个账户,他先从A账户向B账户转账一个比特币,B账户立即签收。B账户在签收汇款前未公示汇款单。

2. 然后骗子去C的网店买东西,他把同一个比特币从A账户转到C账户,C收到汇款指令后等了几秒。如果审核现场没有报告,C将同时签收A的汇款并发货。

3. 但是就在C等待的时候,骗子把A到B的汇款单打广告了,而且是B签的汇款单,因为A到B的汇票是合法的,所以这个汇票被各家接受审核站点。

4. 当C签收A发送的汇款单并进行广告宣传时,各审计网站会报告A到C的汇款单为重复支付,无效。虽然骗子被举报了,但C已经发货了,C被骗了。

为了防止重复支付,目前的比特币支付方式还有很多可以改进的地方。例如,可以在向收款人发送汇款单时,强制付款人公布汇款单。目前,汇款单尚未签署。那么,收款人签收汇款的时候,就必须再做广告,但是和第一次不同的是,第二次是已经签好的汇款单。

但目前似乎还没有一种数学上严谨的方法可以完全杜绝重复支付的发生。

【3】审计

为了防止重复支付的欺诈,一个简单的方法是在世界各地的人每次汇款时,将汇款订单提交给权威机构,例如支付宝。支付宝收到付款人发送的比特币,然后再向实际收款人发送另一个比特币。这样做可以保证收款人收到的比特币不会被骗,但不能保证支付宝和汇款人收到的比特币不会被偿还。

本文讲解一下BitCoin的技术原理及技术挑战(一)

例如,如果权威机构除了支付宝之外还有Paypal,付款人使用同一个比特币向两个收款人汇款,汇款分别通过支付宝和Paypal。如果重复支付成功,两个收款人都没有损失,但支付宝和支付宝中的一个肯定是欺诈。

这种防欺诈机制,除了技术漏洞外,还依赖权威机构,与比特币的大众线设计理念背道而驰。

比特币的做法是记录任何比特币从诞生到现在的每一笔交易,并按时间顺序连接起来。这就像一件古董,通常伴随着历史记录。从生产和销售开始,每一次转手,都会有记录比特币交易流程,这有助于防止假冒更换。

比特币的每一条记录都被广告、记录并连接成一个字符串。这样,对于每一笔比特币交易,不仅有付款人和收款人参与比特币交易流程,还有第三方审计师。审计员可以是全职机构或任何计算机。审计不仅可以及时发现违规操作,如重复付款,而且即使当时错过了,也可以事后追查。

[1] 第八节图例解释了比特币交易记录的串行数据结构。截图如下。

有两点值得注意,

1. 为了提高审计效率,比特币将多笔交易(Transaction)组合成一个区块(Block),并使用默克尔树(也称为哈希树)[3]来组织这些交易细节。

本文讲解一下BitCoin的技术原理及技术挑战(一)

如果要检查某个区块中是否包含某笔交易,最简单的方法是找到相应的私钥,将区块和其中包含的交易解密,然后一一检查。显然,这种方法既耗时又不安全。

使用 Merkle Tree 的好处是不需要解密和打开包。您只需要对交易进行哈希处理,然后将哈希结果与默克尔树中每个中间节点的哈希值进行比较。您可以轻松确定默克尔树。, 是否包含指定的Transaction,如果包含,是哪个叶子节点。

2. 如果每笔交易只包含一个比特币,那么每个比特币的历史记录就是一行。但实际上,每笔交易都可能涉及多个比特币。因此,交易的历史记录不仅包括单行,还包括多条单行合并为一行的情况。

不仅有合并,还有分叉。这种情况发生在 A 向 B 汇款多个比特币时,B 签署并接收汇款交易后,将多个比特币转移并分发给多个收款人。

比特币的历史不仅有多行合并为单行,也有单行拆分为多行的。并且一个比特币也可以拆分成多个小币。

【4】铸币

在比特币系统中,任何参与审计的人都会自动参与货币的生产。货币的生产,即铸币的过程,在比特币系统中称为金矿开采。

从技术上讲,审计和铸币是完全分开的事情。参与审计的绑定造币权是游戏规则的设定。目的是动员群众,共同维护比特币的诚信体系。

本文讲解一下BitCoin的技术原理及技术挑战(一)

此外,比特币的总储备量已经预先设定了上限。这样做的目的是通过限制货币流通来抑制通货膨胀。

从技术角度来看,完全可以将比特币系统作为一个工具箱,利用这些工具配置不同的规则来创建另一个货币系统。

例如,

1. 可以设置只有政府才有资格开采黄金,从而将铸造权归还给政府。

2. 无需设置货币流通上限,可根据新财富增加货币发行量。

3. 可以进行身份​​验证并为每个付款人设置一个信用值,用于加快付款签名。

4. 还可以使用保险,让每笔汇款交易的收款人立即签收汇款。如果有双重赔付,保险公司会赔付。

5. 尽管理论上每个人(实际上是每台计算机)都有资格成为审计师,但实际上,大型组织必然会以强大的计算和存储能力出现成为专业的审计机构。

版权声明:manoon 发表于 2021-09-28 5:58:46。
转载请注明:本文讲解一下BitCoin的技术原理及技术挑战(一) | 198区块链导航

暂无评论

暂无评论...