区块链上交易传统资产的实例研究-part 4
自2008年推出以来,区块链技术已经超越了其在加密货币中的应用,现在正准备改变众多商业应用,包括价值链和供应链,商业模式和市场结构。这项工作遵循设计科学研究,以指导基于区块链的概念验证,原型的实施,该原型能够实现汽车等现实资产的自动交易,并提供市场参与者,官方和其他第三方有效,透明和不可变的车辆历史记录。
4.2软件架构和市场计划
为了满足第2节中描述的要求,我们构建一个强大框架。 我们选择面向对象的软件工程方法,并按层次(结构)构建基础智能合约。为此,我们首先定义一个跨结构框架的通用市场结构(如图2所示),而原型的实现继承其(跨结构框架的通用市场结构)核心功能。
通用设计采用两层方法,将市场平台与可在此平台上交易的单个商品相结合。平台和交易对象都由智能合约表示,它们实现不同的方法,功能和变量。市场合约充当托管代理,组织交易活动并定义交易过程。可交易合约代表实物资产,跟踪其当前所有者,并允许所有权在成功交易后发生变化。
为了确保市场的可扩展性,我们采用了具有三个层次的层次结构,如图2所示:Marketplace合约定义了接口并设置了方法和相应事件的最低要求,以实现上面指定的基本功能。 StandardMarketplce实现了这些方法,构成了功能市场的基本实现。 IndexedMarketplace通过一系列便利方法扩展了市场,允许市场上的报价被迭代索引。这样,我们将接口,核心逻辑和便捷方法分开,增加框架的健壮性,使其适应不同的用例和场景,并确保不同模块的可测试性。
此外,我们允许可交易合约的onTransferOwnership()方法被覆盖,从而允许在交易过程中具有逻辑性。(PS: logic to happen during the transaction process. 令人费解)这样,我们的市场平台允许在交易汽车之前实施各种背景调查,如果某些条件,如没有获得足够的保险或足够的资金,或交易一方不符合或者不遵守先前商定的条款,则授予放弃交易的可能性。
为了实现DMR市场(图3),我们利用图2所示的一般市场结构。DMR合同扩展了IndexedMarketplace,其中包含与DMR相关的业务逻辑,例如发布车辆,在此之后具有能跟踪他们的车辆所有权状态的能力。为此,DMR合同持有已发行车辆的登记册,其现有车主和各自的车牌。在市场上交易的汽车是通过车辆合同实施的,该合同扩展了车辆登记所需的可交易和补充属性,例如唯一的车辆识别号(VIN)和其他车辆特定的细节。
我们使用基于令牌的传统法定货币代表(如丹麦克朗)作为支付手段,而不是以太币,以太币是以太坊区块链中使用的加密货币。这样,我们就可以排除任何汇率风险。
但是,使用丹麦克朗需要第三方(例如中央银行,商业银行或信用卡公司)来支持或锁定分配给买方区块链账户的金额(Broadbent2016; Raskin and Yermack 2016)。当卖方想要从系统中提取他的回报时,这同样适用。
4.3原型
为了开发原型,我们使用整体部署框架(Truffle 2017)。Truffle(2017)支持开发过程的所有步骤,包括测试和部署,并负责在以太坊中使用智能合约所需的样板代码。
为了便于访问,我们将原型实现为Web应用程序,可以通过任何启用了以太坊的浏览器(例如Mist(2017))通过URI访问,或者在访问URI时手动运行本地以太坊客户端。图4显示了在完成交易之前的Web应用程序的快照。为了改善隐私并提高可用性,我们为与系统交互的不同方提供特定的用户界面,即买方和卖方,政府机构和第三方。从实际角度来看,我们在Web应用程序中将接口实现为三个不同的视图:汽车注册视图,注册查找和个人视图,从中可以检索,提供和交易其拥有的汽车。
为了降低交易风险,我们将交易流程分为以下四个步骤,并实施两个内置的保护机制:
第一步,我们匹配买卖双方,并协商他们的交易条款。为了降低复杂性并提高系统性能,原型中未实现买卖双方匹配和定价。相反,买家和卖家必须找到彼此,并在现实世界中进行谈判(off-chain链下谈判)。
在第二步中,在他们成功达成协议后,卖方可以通过市场合约与买方联系,并通过调用extendOffer()提供销售汽车的链上(on-chain)报价。为此,他或她通过网络界面登录DMR区块链系统,并通过指定买方的地址(他的公钥和价格),向潜在买方发送一个要价(extendOffer())。公钥是一个哈希值,其表示区块链上买家唯一的地址或帐号数字。在实际设置中,公钥将连接到个人或公司ID,使个人和公司实体一样能够买卖汽车。在卖方发起要约之后,买方有可能通过 唤起acceptOffer()接受它或不做任何事情,即不接受要价。在接受的情况下,买方签订托管协议并且acceptOffer()会检查他或她是否有足够的资金,从他或她的账户中提取约定的价格,将其存入市场,并通知卖方要价被接受。在第二种情况下,卖方可以通过revokeOffer()方法撤销要价(offer)。这是防止提供与之前的脱链协议不同报价的第一个保障措施。
在第三步中,交易双方亲自会面并脱链(off-chain)交换物品。然而,实际的所有权转让尚未发生。要进行此转移,买方和卖方必须通过调用completeTransaction()来返回区块链以完成交易,在转移资产所有权的同时将之前存入的资金释放给卖方。更具体地说,completeTransaction()同时将钱存入卖方的账户并将所有权证书转让给买方。根据该过程,车辆自动注销并重新注册DMR。
如果在(见面)会议期间发生任何问题,例如,如果汽车不具有先前宣传的品质,那么abortTransaction()可以中止交易,给买方赔偿钱,并取消交易。这是第二个保护机制,在第四个也是最后一个步骤中,各方都有办法取消交易并通过各自调用revokeOffer()和abortTransaction()来退出协议。中止或撤销交易将取消offer,将存入市场的资金转回买方,并停止转让所有权。值得注意的是,资产所有权的实际转移和支付包括两腿交易流程(two-legged transaction process)的最后一步,并最终解决了交易。在这两种情况下,offer都会在之后被删除。因此,双方都有机会通过使用第二步和第四步中的交易保护措施来中止不必要的,无意的或错误的交易(研究问题1)。
为了更详细地说明交易过程,图5和6分别描述了在交易过程中成功交易的调用顺序和不同的系统状态。
最终,交易数据不可变地存储在区块链中,并且公开可见,执行透明(研究问题3),同时为交易方以及SKAT和其他相关利益相关者提供完整和一致的所有权记录(研究问题2) 。结合继承区块链的透明度,我们的市场设计可以全面了解已发行的车辆,其现有车主及其历史,从而有助于减少二手车市场中的信息不对称。