浅析丨实体交易如何上链?( 二 )


换句话说,区块链上的信息不是谁想修改就可以任意修改的,大家都可以查看 。这样就保证了资产的流通、投资等操作的公开透明化 。
目前“资产上链”已经得到技术应用,茶链就是其中的探路者,并已率先完成全球首例实物茶叶资产的上链流通 。
实体资产上链流程大致分为三个阶段:
分别是上链前处理阶段、链上处理阶段和智能合约处理阶段 。
1上链前处理阶段
实物上链前需要将全部数据处理,并且对信息进行签名 。这些过程可以通过对应的工具,比如序列化工具和各种椭圆曲线的签名工具来完成,不过更多的时候是通过将各种工具集成的SDK来完成,以太坊的web3就是比较典型的上链前处理的开发工具 。
数据处理
数据可以是任意的内容,比如茶叶相关介绍信息、交易或订单上传的数据或者对应数据的哈希值等等 。这些业务数据既可以通过服务器处理,也可通过物联网设备的边缘计算系统处理 。
首先对数据不需要进一步处理或者简单计算一下哈希值,然后将调用函数的信息加上链数据放入交易结构体的相关部分当中即可 。签名前的交易结构体是由链决定的,不过一般都包含调用的合约、时间戳、随机数和调用函数加数据的信息 。将
签名前的数据拼装好之后,会进一步序列化以便消息传递 。对于一些隐私交易,需要用到同态加密或者零知识证明等算法 。
信息签名
签名前的数据处理好之后,对该数据进行一次哈希处理,并对哈希进行签名 。哈希是与数据绑定的一串值,篡改信息会造成哈希值发生变化,因此本身具有防篡改的特性 。
接下来是对信息的哈希值进行签名 。签名是一种非对称加密的方法,可以在不泄露发送者本身的私钥的情况下,通过公钥和签名信息确认发送者持有对应的私钥 。对哈希进行签名还可将发送者的身份和信息绑定,同时也可防止其他人冒充发送者,因此这样处理可保证信息的防篡改的同时认证发送者的身份,防止抵赖 。
2上链处理阶段
处理完成的数据发送到区块链节点后,就形成了一笔区块链交易并进入上链处理的阶段,链上处理大体可分为交易广播和区块共识流程 。
交易广播

浅析丨实体交易如何上链?

文章插图
在收到交易后,各节点会将接收到的交易先广播到其他节点,以便形成一个统一的交易池来为达成共识做准备 。
交易广播后,对公链来说任何交易发送者都可将交易发送到链上,但是处理能力不是无限的,因此会根据交易的手续费行有选择的处理 。
区块共识
区块主要包含区块哈希、区块头和交易数据的信息,其中区块头一般都会包含共识信息、时间戳、区块高度等,并记录前一区块的哈希来指向前一区块;
交易数据包含该区块里打包交易的哈希,交易需要根据统一的顺序排序;在确认区块头和哈希之后,就能计算区块哈希 。
3智能合约处理阶段
上链处理完成后,数据已经记录在链上了,但是大部分业务场景都需要进行一定的逻辑处理,因此通过智能合约处理是必须的 。
智能合约处理包括合约逻辑处理以及修改状态梅克尔树等流程 。
合约逻辑处理
完成上链的数据很多情况下需要进一步进行逻辑的处理,比如一次最简单的商品的交易就涉及转账,即买家余额减少和卖家余额增加的逻辑流程,这样的流程虽然可以通过上链前的处理来完成,但是上链前处理是中心化的流程,对网络波动和可信度问题都有一定的劣势,因此通过智能合约进行逻辑处理是比较好的方式 。