主页 > imtoken国际版 > 区块链(二)交易记账过程文字说明

区块链(二)交易记账过程文字说明

imtoken国际版 2024-01-26 05:10:42

男人就应该这样

-- 比利

btc代付平台_第三方平台代收代付怎么做账_电商平台代收代付协议

在《巨人的陨落》这本书里,比利第一次下井,被嘲笑之后被同伴质问时说的话让我当时很感动,就以此为开头吧!

今天要写的是区块链中的交易。 本质上,区块链是一个分布式系统,因此它的交易列表可以记录任何内容。 现在大家都在积极讨论区块链在各个行业的落地。 解决方案,而且我支付行业关于区块链的讨论非常火热,因为区块链的技术最初是在比特币系统中应用的,是典型的金融应用。 顺便说一句,我会在这里谈论比特币。 理解一下,比特币狭义上是一种电子货币,广义上是一种协议栈,包括密码学、会计学、计算机科学等诸多技术。 在支付行业,从技术角度来看,有两个问题值得我们关注。 一是数据一致性问题。 从业务角度描述为多空流,属于清算结算功能范畴。 在我工作的支付公司,需要对账的内容按范围分为外部对账和内部对账。 对外对账是指我司与特约商户之间、我司与各支付渠道之间的对账。 和解; 内部对账包括业务系统与支付网关之间的对账、支付网关与账户之间的对账; 这些都对账好了,就会清账,清账后会计算手续费,交给清算商户的对账单,给转账支付系统出具转账单,把钱转给各个商户通过支付渠道。 你看,这还包括转账系统到支付通道的对账。 我司因业务需要导致支付渠道不限于交通银行。 如果一切都好,一切都会好起来的。 一旦商家的说法有误,查起来会很麻烦。 如果交易的各方都记在一个账户里,会省去很多麻烦,而且没有数据冗余,节省了大量的资源。 另一个问题是系统复杂性。 也可以避免软件工程实施过程中出现的系统负载、过度设计等一系列问题。 多渠道、支付网关、清算、清算等所有系统都将被淘汰。 换成统一的记账系统,管理成本会比现在低N倍! 以上是我这几天了解区块链好处的一些感想,当然好处远不止这些……

电商平台代收代付协议_第三方平台代收代付怎么做账_btc代付平台

言归正传,因为我们要实际操作一个区块链系统,写一个简单的设计概念,省略了太多细节和太多高明的想法,所以我们决定实现一个和比特币系统一模一样的系统。 当然,比特币协议在不断发展。 ,出于研究目的,它并不打算与所有比特币协议兼容,只实现了一个版本。 起初,在我读《精通比特币》这本书之前,我的比特币记账系统的概要设计还是和现在传统的设计一样。 一个账户表用来记录每个账户当前的余额,一个流表用来记录每个账户的变动流量,但是比特币系统不是这样工作的。 在详细解释比特币系统如何运作之前,我们先分析一下实际的支付场景。 实际支付场景有两种:一种是账户金额恰好等于支付金额,即10元可以用10元买一个苹果; 10元; 在比特币系统中,账户金额被抽象为一个概念,称为“交易输入”,找零被抽象为一个概念,称为“交易输出”。 这两个概念是相对于事务而言的,比较容易理解。 那么一笔交易的输入可以是上一笔交易的交易输出。 这样,我们就可以总结出几种常见的交易类型,如下图所示(图片来自《精通比特币》):

另一种常见的交易形式是将多个输入合并为一个输出的模式,相当于支付 10 块钱用两个 5 块钱的苹果的场景。 这种交易称为聚合交易,如下图所示:

第三方平台代收代付怎么做账_电商平台代收代付协议_btc代付平台

还有一种“去中心化”交易,就像公司给员工发工资一样,如下图:

还有一种只有输出没有输入的交易。 比特币区块链系统交易列表中的第一笔交易称为coinbase。 矿工的奖励不仅包括挖出新区块的奖励,还包括记账成功的交易手续费。 之所以提到这类交易,是因为我认为这类交易是现实中将现金转换成特定电子货币的关键。

第三方平台代收代付怎么做账_电商平台代收代付协议_btc代付平台

在搞清楚几种交易类型之后(之所以提这几种交易是为了解释为什么比特币系统在记账的时候只抽象出“交易输入”和“交易输出”的概念),我们首先要了解一个关键:点,也就是货币所有权的认定,我们能否描述一下区块链的详细记账过程。 在比特币系统中,比特币的所有权由三部分组成,即私钥、公钥和数字签名。 公钥 作为比特币账户,私钥当然是用来生成公钥和数字签名的。 数字签名是交易输出的属性。 只有三者的结合才能确定一笔交易的归属。 还有两个概念需要理解,一个叫未使用交易,所谓未使用交易是指交易输出还没有充当任何交易的交易输入角色,另一个叫已使用交易,所以-called used transaction 是与 unused transaction 相对的,它已经作为一个交易的交易输入,那么这个交易将被标记为 used ,以后的交易将不能再使用这个交易输出作为交易输入。 下面描述整个交易过程(部分细节被屏蔽),以Alice用0.02比特币支付给Bob一杯咖啡0.01比特币的场景为例,0.02 BTC的交易输入产生0.01 BTC的交易输出和一个transaction output of 0.005 BTC 交易输出,交易输入之和与交易输出之和的差额是0.005BTC的交易手续费,奖励给矿工记账。 0.02BTC作为交易输入的交易输出在交易完成后被标记为已使用btc代付平台,永远不会从交易池中移除,0.01BTC的交易输出包含Bob的公钥地址(即Bob的比特币账户地址)和Bob的私钥密钥数字签名,一笔0.005BTC的交易输出包含Alice的Alice的公钥地址和Alice的私钥数字签名,交易完成后(准确的说是第一步交易完成,一共分为六步),交易信息被快速广播给附近的节点,附近的节点收到交易后,第一步是验证交易,即使用公钥地址解密私钥签名。 如果为真,则为合法交易(验证交易的合法性不仅包括这一点,还有大量的验证规则),然后继续将这笔交易传播到深层节点(这就是为什么整个区块链系统可以承受巨大的攻击,非法交易最多可以通过一个节点传输),然后将这笔交易放入待处理交易池,第二步交易处理完成后,第三步到第五步是为区块链生成新区块的过程,将在下一章讨论。 第六步,将这笔交易记录到一个新的区块中,整个交易过程就完成了。 记账完成后,0.01BTC和0.005BTC的交易输出可以作为下一笔交易的交易输入。 当然,整个交易过程中还有其他细节没有说明。 如果你知道它,你可以更深入。 作为一个吹牛的技术人员,这些就够了,但是光靠这些写出可用的代码还不够。 在实际代码的后续章节中,会有注释详细解释。

到目前为止,还有一个账户余额的概念没有被提及。 区块链是一种分布式账本系统(也可以用于其他用途,不限于记账,如合同、信用等),相当于传统的会计系统。 账户余额变动流量计,那么比特币账户余额是怎么来的呢? 这是令我惊叹的比特币系统的巧妙设计之一。 区块链的客户端,即比特币钱包软件,在连接到比特币网络后,从全网未使用的交易输出中聚合出自己的公钥地址。 (即钱包账户),即可获取自己钱包账户的余额。 巧妙设计之二:将上一个事务的事务输出作为下一个事务的事务输入,真正实现无锁并发; 第三个巧妙设计:保存到账户信息记录; 第四个巧妙设计:再也不用担心用户账户信息泄露,记录在公链上的系统不包含任何用户隐私信息,尤其是私钥; 第四个巧妙设计:整个交易过程不存在信任问题; 有很多巧妙的设计,后续章节慢慢来。

第三方平台代收代付怎么做账_电商平台代收代付协议_btc代付平台

今天之所以写这篇文章,是因为在实现过程中,对区块链系统保障交易安全和用户账户余额的细节不是很清楚。 只有再做一遍,才能更深刻地理解它。 另外,在最后,我想提一个学习新事物的关键:一定要尽量获取第一手的知识。 因为二手知识已经被别人提炼过了,他在讲解的时候大部分应该知道的细节都会被忽略btc代付平台,或者理解有偏差,这就更可怜了,误导了学生。

好吧,如果你不怕我说错了,请下次继续拆解区块链!