序
交易(transaction)是最基本的经济活动,也是区块链中最基本的数据结构。我当初学习比特币技术的时候,对比特币中的 transaction 数据结构设计狠下过一番工夫进行研究。然而,比特币中的交易是单向的,只包含了资金侧的转账支付(transfer/pay),并不包含商品和服务流一侧的数据。在理想的通证经济系统中,交易的双侧都应该表达为通证的流转,也就是代表价值的通证与代表商品与服务权益的通证在交易中进行原子化的所有权对调(exchange)。
麻烦的是,在中文区块链世界里,我们把 transaction 翻译成“交易”,把 exchange 也翻译成“交易”,这就摆了乌龙。实际上,transaction 在数据库技术世界中被普遍翻译为“事务”,强调的是其原子性—要么保持原状,要么完全成功,没有中间状态。在 transaction中既包括 transfer/pay,也包括 exchange,还可以有其他更复杂的操作,因此在区块链世界里,将 transaction 翻译成“交易”是不合适的。交易,要有来有往,有交有易。所以,exchange才是交易。
支付(transfer/pay)是单向的,而交易(exchange)是双向的。通证经济的基础设施,将会努力将各种价值和权益都通证化,因此在通证经济中交易表现为两份通证的对换。你去电商网站购买商品,其实花出去的是数字货币,买到的是一张数字合同,这才是这次交易的本质。至于商家通过快递将商品发送给你,只是对数字合同规定条款的履约行为,是“副作用”。单向的通证流转(transfer/pay),以及双向的通证对换交易(exchange),这是未来通证经济中最基本的两个事务性操作。后者当然要比前者复杂,但由于包含了完整的交易流信息,因此可以更好地进行验证、追溯、分析和优化,其价值要比前者高得多。
理解了这一点,我们就会明白,在未来的大多数通证经济应用场景下,交易(exchange)将成为最普遍的基本操作。在通证经济里,购物是交易,阅读是交易,发表文章是交易,投票是交易,可能说句话都是交易。我们甚至可以把本来是支付的操作升级为交易—用户的支付行为,实际上是用一笔数字资产交换一个数字收据。这样一来,我们也可以认为,未来的世界,交易将是泛在(pervasive)的。
然而,看看我们现在的区块链和通证技术圈子,交易这一操作只集中出现在一个场所中,那就是交易所。而在其他大部分区块链和通证经济应用中,都回避了双向的 exchange,而钟情于单向的 transfer/pay。在这样的架构下,从区块链上你只能看到交易的一半,看不到另一半。这显然不能被视为通证经济的高级状态。
我在这里大胆猜测,未来在每一个区块链和通证经济应用当中,都需要有交易系统的功能,或者内置,或者外包,或者服务化,总之,交易系统将无所不在,集合竞价的交易模式将无所不在。也就是说,未来当通证经济发展到成熟阶段的时候,交易系统将不独为某一类特别组织所有,而是泛在的基础设施。交易系统技术将成为与 Web 后端一样被广泛研究的技术,数以百万计的开发者将会在这个领域工作。因此,学习和研究交易系统技术,对于今天的技术人员来说,绝对是最具价值的投资之一。
遗憾的是,交易系统开发绝非易事,不但涉及面广,而且在性能、并发、安全等核心技术上有极大的挑战。更糟糕的是,市面上探讨交易系统开发技术的资料十分稀缺,高质量的内容更加少见。
由井通生态团队编写的这本开发指南,几乎是目前市面上唯一一本从开发技术层面阐述交易系统的图书,可谓本类作品的一个起点。可贵的是,这个起点相当高,这本书不但内容丰富,覆盖了区块链交易系统的各个方面,而且特别“实诚”,可谓“刀刀见肉”,章章都是实料。我本人并非这个领域的专家,但是翻读此书,对于交易系统的认识有了很大的提升。如果读者是一位有经验的开发者,那么这本书应该可以引导他走入区块链交易系统开发的大门。
很愿意向技术圈的朋友推荐这本书,我相信这本书会在中国区块链和通证经济的发展进程中留下自己的印记。
孟岩
前言
在区块链问世的第 10 个年头,区块链和区块链技术已经越来越多地出现在我们的生活中,越来越深入地改变着我们的价值传递方式。区块链交易系统可以为价值传递提供安全、可靠、便捷的活动场所,因此也逐渐受到人们的青睐。而如果没有系统地研究学习过区块链,则很容易被各种抽象概念和复杂的设计理念搞得云里雾里摸不着头脑。若要想设计搭建一个属于自己的区块链交易系统,更是无从下手。本书使用通俗易懂的语言,介绍了区块链的基本概念、设计思想,并从技术的角度详细介绍了区块链交易系统应有的功能架构及工作原理,目的就是揭开区块链交易系统的神秘面纱,填坑清障,指引前行,让人们能够张开双臂轻松地拥抱区块链技术,享受区块链交易系统带来的惊喜与成就感。
本书共分 7 章,第 1~2 章主要介绍区块链及数字货币的基本概念,以及各种公有链的API 接口;第 3~5 章主要介绍区块链交易系统的分类架构及功能;第 6 章主要介绍区块链交易系统面临的问题及演进方向;第 7 章对全书做了总结。王春、王万云、王亚伟、魏庆伟、潘子鑫、郝运锴、张庆娜等协助本书作者完成了大量的资料收集和整理工作,计松辰对全书内容进行了统稿。
本书是作者多年从事区块链交易系统产品研发实践经验的概括和总结,实用性和技术指导性较强,可供从事区块链产品研发和区块链交易系统研发的人员参考研究,也可供希望了解区块链技术或希望投身于区块链交易系统开发的技术人员学习。本书同样适用于传统行业、互联网金融等一些非区块链行业中从事电子商务、在线购物等其他交易系统产品研发、测试、维护等的技术人员参考学习。
在本书出版之际,衷心感谢张少华、李孟杰、郭媛媛、王春、王栋、韩金祺、赵树理等与我们分享了运营实践、产品架构设计等多个层面的丰富经验,并为本书的编写提出了非常宝贵的意见和建议;感谢在本书编写过程中给予我们大力支持和帮助的各界人士;感谢电子工业出版社的大力支持。在本书编写过程中参考了大量的文献资料,对这些文献资料的作者表示真诚的谢意。
由于水平有限,书中难免出现纰漏和不妥之处,敬请读者朋友们批评指正。