稍微了解过比特币的用户应该都知道,比特币设计的是每10分钟产出一个区块。如果把比特币系统当作是一个完整的账本的话,那么一个区块就相当于这个账本的一页,把这个账本的每一页都链接起来形成一个链条,就称之为“区块链”。这也就是区块链(BlockChain)这个名词的来历。

所以在比特币之前的相当长一段时间,大众对于比特币转账速度的错误认知都是至少需要10分钟才能到账,也就是必须等到一个区块确认,收款方才能确定支付方已经支付成功。10分钟的转账速度,对于跨国转账、跨行交易这类交易需求当然是足够高效的,但是对于日常消费,却成为难以逾越的鸿沟,你很难想象,在你付款购买一件商品之后,过了10分钟店家才确定收到你的付款。

这种10分钟的等待在某些时候是可以接受的,例如:您可以在付款购买一杯咖啡之后,坐下来品尝咖啡,等到10分钟后店家收到区块确认之后再走人。但是对于微支付来说,10分钟的等待是致命的,共享wifi使用者从您家门口经过使用了10秒钟的网络,却要等待超过10分钟,这简直让人难以忍受。所以基于比特币的“即时到账”就成为微支付的一个刚性需求,这里就需要引入一个中本聪提出的概念:零确认支付。

比特币基础概念

在讲解零确认支付及简易支付模型之前,我们先普及一下比特币的基础知识,可以让完全没有接触比特币的用户也可以很容易的理解。

UTXO:可以理解为“钱“;类似于现实生活中的”借条“,可以在其上描述:”张三“给”李四“转账XXX元。

SPV:可以理解为“钱包“;SPV可以用于构建UTXO进行支付,也可以用于接收UTXO进行收款。SPV仅保存与个人相关的交易账本,而不必关心所有人的账本。SPV具有基础的接受UTXO、广播UTXO、构建UTXO的能力。

全节点:可以理解为“总账本“或常称为的”矿池“;如果说SPV仅记录与个人相关的交易行为,那么全节点就会记录所有人相关的交易行为。显然,某笔UTXO是否被”双花“,全节点一目了然。包含所有人交易行为的”总账本“将成为这个系统中最”权威“的存在。

交易池:可以理解为“账本的纸质单页“;加入交易池意味者全节点将这笔转账已经记录在区块中,但是这个单页还没有写完,一旦写完,就可以盖上全节点的印章,表示这一个单页已经完成,可以进行下一个单页的书写。

零确认支付

零确认支付,顾名思义,就是不需要区块确认就能够满足完成支付的所有条件。我们来还原现金模式下生活中一笔交易产生需要哪些条件:

1.您走进商店,挑选商品——建立信任。

2.您拿到商品,到收银台付款——询价及确认交易内容。

3.您掏出100元支付给店家,支付手中商品的5元——构建转账行为。

4.店家拿到100元,要确认这100块不是假钞或残次钞票——支付介质的鉴定。

5.店家将100元收下,给您找零95元——支付过程结束。

众所周知,不同于传统支付,比特币交易一个很重要的过程就是“支付介质的鉴定”,也就是常说的“双花“,店家需要确定您所构建的这笔UTXO是合法的,并且没有被”重复花费“。在传统的比特币模型中,如果需要等待10分钟才能确定UTXO是合法的并且没有被”双花“将是难以接受的。

基于中本聪愿景实现的BitcoinSV采用的方法是,UTXO构建之后发送到交易池中,并且根据UTXO是否合法、是否有被”双花“的结果决定是否加入交易池,店家拿到全节点返回的加入交易池结果后来决定是否给予商品,至此,零确认支付行为完成。

经过以上的步骤,很多人都有一个疑问,如何确定零确认支付一定是可靠的?难道不担心全节点在把UTXO加入交易池之后,再把UTXO拿出来修改或删除吗?BitcoinSV给出了很好的解决方案:

  1. 全节点与全节点之间,采用“小世界网络“进行连接,使得任意节点与任意节点之间的平均跳转次数为1.3次。也就是说,当这笔交易加入某个全节点的交易池之后,几乎同时加入了所有全节点的交易池。关于”小世界网络“,后面会有更详尽的阐述。

  2. 所有全节点都需要声明自己的“MinerID“并且与现实公司或团体进行绑定。当全节点进行”作恶“后,其会被诚实的节点进行孤立,其后期所有产出的区块将不会被其他全节点所接受,也就意味者该全节点前期的投入成为泡影。恶意修改账本会让全节点陷入不利的局面,并且有可能会招来法律的制裁。

  3. “作恶“是需要付款方和全节点一起配合的,而作恶的成本又很高,在这种博弈关系中,”作恶“的相当不划算的。举个现实生活中的例子:记得某个新闻说,某假币制造者造出16万一元硬币,其成本高达18万元。造假币的成本(制作、运输、使用以及其背后的法律风险)导致了造假币者几乎不太可能去制做小额的假币。

  4. 收款方同样也会权衡利弊。现实生活中,店家如果收到1元或5元纸币,其实是不会主动去进行验钞的,但是收到50元或100元,就会主动验证一下钞票的真伪。同样,在BitcoinSV中,远低于全节点运营成本(至少高达数千万)的交易,也几乎不太可能全节点配合作恶。也就是说,日常生活中几千块的交易转账,完全不用担心会出现恶意篡改的情况,对于较大的转账,完全可以等到一个或多个区块确认后,再完成实际的交易行为。现实生活中,向银行存入100万,可能光点钞就需要一两个小时,对应于比特币系统,完全够出6个区块而做到完全无法篡改。

简易支付模型

上面阐述了零确认支付的原理和可行性,下面开始描述简易支付模型。

现实生活中,对于交易双方来说,谁更关心转账是否到账?是付款方还是收款方?当然是收款方,收款方更关心是否是假钞、是否是残次钞票、转账是否到账;付款方才不管你是否到账呢,付完钱就可以走了。

同样在比特币系统中,由收款方来广播交易,并获得交易结果才是正确的途径。付款方构建一笔交易的UTXO,通过NFC将UTXO发送给收款方,收款方广播交易,并且得到交易合法性的结果以及加入交易池的结果来决定是否达成该笔交易。由于零确认支付的存在,交易双方可以快速完成该笔交易,而不用等待10分钟。

简易支付模型让比特币系统的支付速度远高于传统的微信、支付宝等支付方式。而比特币系统有一个长期被人误解的逻辑,那就是:在系统内的转账行为,比特币系统效率低于微信、支付宝;而在跨系统的转账行为,其效率高于微信、支付宝,尤其是跨行跨国转账。通过上述简易支付模型,我们可以看到,无论是系统内,还是系统外,比特币系统的转账效率,都可以完爆传统支付系统。

上文《微支付:基于比特币的颠覆式创新》一文中,我们曾讨论过支付宝这类传统支付模式的支付过程。我们可以明显看到,在交易完成之前,信任建立、账户查询、检索等过程,都需要中央服务器的参与,访问服务器的次数在5次以上。而在比特币的简易支付模型中,只有在最终交易完成时会广播交易到全节点,其访问服务器的次数仅为1次。

更低频率的服务器访问、尽可能多的减少服务器消耗,使得比特币系统可以支撑全球海量微支付,让微支付成为可能。

对于微支付的解读,后期会继续进行更新,感兴趣的读者可以持续关注该栏目。

注:该文中所指的比特币仅指代根据中本聪愿景实现的BitcoinSV,简称BSV。

本文作者:一聪微付创始人-晓天

一聪微付:全球首家微支付产品与解决方案供应商。

微支付基础:零确认支付及简易支付模型相关推荐

  1. 微支付基础:为什么支付宝、微信不可能支持微支付?

    在科普微支付的过程中,有一个问题同样被问及较多,而且大部分提问者都是工程技术人员,那就是:要支持微支付的功能,为什么一定要使用BitcoinSV,我不能使用支付宝.微信提供的支付接口?更或者,我自己开 ...

  2. 简易支付验证:即时支付、签名的有效性和交易的完整性

    发表时间:2020年8月25日 作者:张伟 / Wei Zhang 信息来源:https://medium.com/nchain/simplified-payment-verification-48a ...

  3. 简易支付平台(已对接微信支付)

    序 最近H5开发的app需要对接微信支付,我想的是公司貌似开没有支付平台,听说了另一个项目也要对接支付.为了宇宙的和平,我想就提出来单做,所以说干就干,不考虑那么多,只要自己认可自己就行. 一.支付平 ...

  4. 算法分析与设计:贪心算法实现最少硬币找钱问题(支付+找零共花费硬币数最少)

    硬币找钱问题 Problem Description 设有六种不同面值的硬币,各硬币的面值分别为 5分,1角,2角,5角,1元,2元.现要用这些面值的硬币来购物和找钱.购物时可以使用的各面值的硬币个数 ...

  5. Vue.js-Day08【项目实战(附带 完整项目源码)-day03:订单确认页面、美团支付页面、flex弹性盒子布局】

    Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 实战项目源码[链接:https://pan.baidu.com/s/1r0Mje3Xnh8x4F1HyG4aQTA   提 ...

  6. 微擎支付返回商户单号_聚合支付系统设计(二)

    支付网关与异步通知设计 支付网关 用户下单成功后,要经过收银台发起支付流程,支付网关就是用户发起支付流程的入口地址.支付网关需要接收订单的部分数据(订单号.待支付金额.商品描述信息等)和交易数据(支付 ...

  7. Vue3电商项目实战-结算支付 4【08-支付-支付页面-基础布局、10-支付-支付页面-信息展示、11-支付-支付流程】

    文章目录 08-支付-支付页面-基础布局 10-支付-支付页面-信息展示 11-支付-支付流程 08-支付-支付页面-基础布局 目的:配置路由和支付页面基础布局. src/views/member/p ...

  8. 闪聚支付 第3章-C扫B支付

    需求分析 C扫B的概念 C扫B,即顾客(Customer)扫描商户(Business)提供的二维码来完成支付.下图是支付宝提供的C扫B业务流程: 商家出示付款二维码 客户打开支付宝或微信的扫一扫,扫描 ...

  9. BCH双花成功率极低——零确认交易安全性高达99.9%

    11月28日,双重花费测试网站doublespend.cash的创建者公布了比特币现金网络上的双重花费测试结果.他表示,在第一笔交易之后的一秒钟内,1,105次双重花费中只有1次成功.该网站的创建者强 ...

最新文章

  1. Qt / 动态的切换控件样式的方法
  2. [深度学习] 自然语言处理---Transformer实现(二)
  3. 第5章 Python 数字图像处理(DIP) - 图像复原与重建15 - 最小均方误差(维纳)滤波
  4. android点击加号,Android仿微信朋友圈点击加号添加图片功能
  5. 北京焦灼?上海颓废?看大数据如何解读城市性格
  6. SpringMVC系列一
  7. 电子商务系统的设计与实现(五):账务系统的功能接口设计
  8. 8086的总线操作顺序
  9. 你使用过哪些数据分析的方法?
  10. 博客迁移说明 : )
  11. CyanogenMod - All the source code for CyanogenMod
  12. 《上瘾:让用户养成使用习惯的四大产品逻辑》读书笔记
  13. 零基础入门小程序,实战经验分享
  14. mysql断网_MYSQL主从断网恢复复制的问题(1)
  15. java 指针定义_JAVA与指针
  16. 教妹学Java:接口,抽象的另一种表现方式
  17. 异步FIFO格雷码及同步相关问题?
  18. java实现redis工具类及其调用
  19. 小学计算机课画小鸡,小学信息技术电子工业版 (安徽)第二册第10课 小鸡叽叽把虫啄教学设计及反思...
  20. bp神经网络时间序列预测,bp神经网络有几个阶段

热门文章

  1. 数控技术复习(一):数控技术概述
  2. can总线配置读入是什么意思_我用一晚上时间给女朋友讲懂CAN总线的AUTOSAR网络管理...
  3. 摩尔斯电码---学习软件
  4. 关于connet by的学习
  5. 9.23浩鲸科技java开发校招电话一面
  6. 【转载】转计算机大牛-崔添翼
  7. win 10更新后 ArcGIS 启动错误:Runtime Error !R6025
  8. 艾默生变频器维修_变频器存在这些通病你是否知晓!老电工分享变频器通病大揭秘...
  9. 阿里云安骑士性能特点与使用场景!
  10. pdf插入页码方法介绍