APP下载

基于区块链的食品溯源多Agent系统架构的研究

2022-12-03焦瑞金郑广海

计算机应用与软件 2022年11期
关键词:账本合约共识

焦瑞金 郑广海

(大连交通大学软件学院 辽宁 大连 116000)

0 引 言

食品溯源是指对食品的生产加工、物流运输、销售使用等过程进行追踪记录,使参与者都能清楚地了解到食品的流通过程,当然这也需要食品参与各方的积极配合。近年来,非洲猪瘟等食品安全事件,严重引发了人们的信任危机。

食品溯源的研究意义在于食品安全问题频发的当下,通过设计具有明确功能和可信技术的系统架构,从食品根源上开始排查可能出现的食品安全问题并提供预警,极大地降低可能出现的规模性食品安全事件,保证公众的健康,对整个市场的食品安全监管也大有裨益。食品安全问题可能产生于食品生产、加工、流通等各个环节,长久以来都没有很好的办法能够减少或预防食品安全事件的发生,如何采用有效的手段来保障食品质量成为了一个社会难题。目前国内外针对食品安全问题普遍采用的一些手段包括抽检、备份待检、社会舆论监督、食品供应链条上的企业公德心和实行食品安全责任制,但以上应对策略的机构及公众参与度低,不确定性较大,缺乏即时性,往往只能在食品安全问题发生之后才能启动应急预案,进而引发社会舆论的关注和谴责,但公众的健康已经受到了侵害,而且事后的追责过程难度很大。

本系统架构设计的目的在于从食品溯源的视角,基于区块链技术和Agent技术,从食品生产采购源头、运输、储存以及使用和加工的整个过程提供实时且不可篡改的数据监测和存储,从而为解决食品安全问题,保障公众健康提供一套具有技术保障的可行方案。传统应对食品安全的方式,如人工手动记录食品进出库的仓储记录和采买信息,发生食品安全问题之后再启动应急预案,化验问题食物,此时人们的健康已经受到侵害,另外留存数据少且容易被人为改动或破坏,加之食品安全问题责任重大,牵扯单位部门过多,事后追责过程难度很大。针对上述食品在流通过程中数据少的问题,可以使用区块链技术完美解决,通过将食品存储的仓库和运输车辆信息,甚至食品的栽培环境的相关信息都记录在区块链中,就能防止数据被篡改,及时有效地查验信息,方便追责。Agent可用于分布式的系统中,通过竞争、协作等可显示出智能化的系统行为。基于区块链和Agent的技术优势,设计了一种基于区块链的食品溯源多Agent系统架构,以解决食品安全问题。

1 相关工作

在我国重视食品溯源的基础上,要设计实现基于区块链技术的包含生产、运输、销售到消费者的全过程的安全可靠的新型食品溯源系统。打破传统溯源系统存在的交易信息不完善、数据隐私易泄露、中心控制壁垒、无法追责等问题,为食品安全领域做出贡献。

1.1 区块链

区块链的概念最早是在2008年中本聪[1]的《比特币白皮书》中提出的,起源于数字货币比特币。比特币作为一种加密货币,只是基于比特币的底层技术区块链技术的一种应用。“区块链”是一种使用加密原语的分布式技术,依赖于特定的成员机制和一致性协议来维护共享、不可变和透明的仅附加寄存器。

目前的食品溯源系统大都采用中心化的存储模式来存储和查询食品的相关信息,如文献[2]设计了一个完整的全生命周期食品追溯系统,监察食品从源头到配送到消费的整个过程,以保障食物安全。文献[3]用科学方法分析可追溯系统的有效性,并建立了食品安全数据分析系统,在一定程度上保障了食品安全。但这些方式不能保证高水平的系统可靠性、可扩展性和信息准确性。区块链技术的出现为我们提供了一个新的解决方案。例如,李明佳等[4]提出一个基于区块链的食品安全溯源系统,致力于解决数据存储不安全的问题;薛腾飞等[5]提出一个基于区块链的医疗数据共享模型,适用于解决各医疗机构数据难以共享的问题;Tsang等[6]提出了一种基于区块链IoT的食品可追溯系统,将区块链、物联网技术和模糊逻辑的新部署整合到一个可追溯的整体货架期管理系统中,解决了易逝食品存储管理的难题;Yu等[7]设计了一种基于区块链和RFID的脚环,采用区块链技术和RFID技术,具有防篡改和防拷贝功能,记录从养鸡到销售的所有数据,有利于提高食品质量监管和食品行业的信誉。Tian[8]构建的基于RFID和区块链技术的农产品供应链可追溯系统,有效追溯供应链可信信息,保障食品安全。Pal等[9]利用新兴的区块链技术来改善物联网食品物流。Yeh等[10]利用区块链技术在食品可追溯性和透明度方面的能力,建立关于感知信任的扩展模型。结果表明,区块链技术具有建立信任和影响购买意愿的能力。Salah等[11]提出了一种利用Ethereum区块链和智能契约有效地执行商业交易的方法,以跟踪整个农业供应链中的大豆,为供应链生态系统提供了一个高水平的透明性和可跟踪性。Liu等[12]开发了数据采集系统,通过基于多智能体系统(MAS)的蜂产品追溯体系结构,解决了采集数据、管理原始数据、及时准确地实现数据交互等问题。

1.2 区块链和Agent

本文设计将区块链技术和Agent技术结合起来,让其发挥各自的优势,增强了多Agent系统的安全性(如完整性、身份管理、事务保证和数据安全性),也使系统朝着更加智能化的方向发展,节约了资源消耗和人力成本。由于区块链分布式存储的特点,链上的各节点可随时加入或退出,与Agent的特性相吻合,这里设计将部分节点封装成Agent,可代表食品溯源链参与各方的权利利益,而且各个Agent可能有不同的目标、知识和能力,它们之间可能是合作的,也可能是竞争的,可实现在这样的高动态的开放环境中,自主达成各自的目标。比如,食品溯源链上的生产商、经销商、消费者之间也存在某种合作或者竞争的关系,利用区块链的身份认证机制可以赋予每一个角色相应的权限,通过创建多代理系统,让他们之间的权责更加明晰,实现透明化、公平化处理。多Agent系统中各个Agent之间是彼此联系,又是各自独立的。在食品溯源链领域也是如此,各个机构之间连接紧密,需要数据共享且真实有效,同时各机构的分工不同,可用Agent代替完成不同的功能模块。然后部署在区块链的分布式的网络中,而且基于区块链共识层和智能合约层的运行机制,也可将Agent封装进去,完成特定的任务,实现更加高效、透明化、不可篡改、一致性的处理。

2 架构设计

2.1 传统的食品溯源

传统的食品溯源模型具备一定的现代化的流程,通过溯源服务中心的运营规范,二维码技术或者物联网智能识别技术,依托网络和数据库建立食品溯源信息服务平台。用户可在其平台上进行食品溯源信息的查询。

这种传统的食品溯源系统的特点就是有一个中心化的数据库,食品所有的信息都存储在这个数据库中。一方面,中心化数据库中的信息有被人为篡改的风险,消费者看到的数据信息不一定是真实的,容易出现信任危机。另一方面,这样中心化的溯源平台一旦受到网络黑客的攻击,窃取到数据库中的敏感信息,就会导致客户信息的泄露,给客户带来安全隐患。而区块链技术的分布式的存储结构形成了去中心化的数据存储,解决了数据易被篡改和泄露的问题。

传统溯源系统的用户审查机制存在漏洞,导致平台注册用户泛滥、虚假交易等不公平竞争行为的发生难以消除。针对此问题,设计的基于区块链的食品溯源多Agent系统架构,可通过共识机制追溯到每一个注册用户,并通过共识层的共识Agent对每一笔交易进行共识确认,确保交易的真实性,从而可以大大减少虚假交易行为的发生。

传统的溯源系统无法看到食品从生产、加工、销售等每一阶段的情况,中间许多过程也存在各种风险和隐患,无法保证溯本求源的真实性和有效性。而基于区块链和Agent的食品溯源,每一环节的信息都会被记录在区块链中,具有权限的用户都可以查询食品从生产源头开始的详细信息。Agent的加入也使这一流程更加智能化与系统化。

2.2 基于区块链的多Agent系统整体架构模型

食品可追溯性是指对食品及其相关信息在食物链的各个环节(包括生产、加工、配送以及销售等)进行追溯和溯源,从而对整个食品生产经营活动进行有效监控。

如图1所示,设计了食品溯源系统的整体架构模型,这里把模型划分为四大块,分别为:区块联盟链的环境搭建及内部机理、各大企业的Agent运作流程、信息记录及订单生成、食品溯源系统查询。其中涉及到的外部参与Agent描述如下:生产企业Agent(PE-Agent)、流通企业Agent(CE-Agent)、销售企业Agent(SE-Agent)、消费者Agent(U-Agent)和监管部门Agent(T-Agent)。

图1 系统整体架构模型

下面分别阐述每一部分的构成及运作:

(1) 区块联盟链的环境搭建:通过区块链超级账本开发平台,构建联盟链环境,Hyperledger Fabric是Linux基金会于2015年推出的开源项目,旨在推广区块链数字技术和交易验证[13]。借助此平台搭建的系统架构外部环境包括生产企业、流通企业、销售企业、监管部门和消费者五大主体。这些主体会产生对应的节点,将他们加入同一个通道中,并通过触发在docker沙盒环境中运行的智能合约等模块,实现各自不同的功能需求。

其中智能合约层由四部分组成,分别为权限控制合约Agent(AC-Agent)、交易操作合约Agent(TO-Agent)、数据上链合约Agent(DC-Agent)和状态更新合约Agent(SU-Agent)。比如,一个用户发起一笔交易,会触发虚拟机中的合约执行,首先需要权限控制合约Agent来验证用户的身份,验证成功之后,开启计时,来记录交易的时间期限,接着自动触发交易操作合约Agent,证明这笔交易准备上链。在扣款之前需要将这笔交易发送到共识机制中,由各共识参与者去鉴别这笔交易是否是合法的。交易以生成新的区块的形式,被发送到共识机制中,在共识机制中想要验证这笔交易合法的参与者也需要首先进行身份认证,认证成功之后,允许对这笔交易进行共识验证,由于每个参与者达成共识所做的工作量不同,也就会有不同的信用值。各方达成共识,证明这笔交易是合法的之后,根据每个共识Agent所做的工作量触发信用管理中的增加信用Agent(A-Agent),一些用户的恶意行为会触发减少信用Agent(D-Agent),最终每个Agent的信用值都会记录在信用显示列表中。随后,完成扣款操作,若验证这笔交易非法,则撤销这笔交易,同时自动返还钱款。

共识机制中设计了一些参与者共识Agent[14],包括成员服务机构也即证书颁发机构(MS)、认证机构Agent(CA-Agent)、生产共识Agent(P-Agent)、流通共识Agent(C-Agent)、销售共识Agent(S-Agent)。这些参与者共识Agent会将交易信息记录在区块链中,一经记录不可篡改,只能在原来的数据存储基础上附加修改,这时候需要数据上链合约Agent发挥功能。链上记录完成,会实时检查或者更新世界状态,自动触发状态更新合约Agent,将智能合约中的值和状态与链上的进行同步,实现数据的一致性存储。

(2) 各大企业的Agent运作流程:在这个食品供应链溯源系统架构设计中有五大主体,每个主体都需要完成各自不同的任务。在生产企业中,Agent负责食品的批量生产以及信息记录,并为每一个生产品赋予唯一的食品溯源码。在流通企业中,Agent保证大量食品的高效正常流转和不积压。在销售企业中,如果食品缺货或者少货,Agent就可以向生产企业和流通企业提前批量预订食品,及时填补食品缺口,保证市场的正常运转,满足消费者的需求。各个Agent任务完成后将生成的信息通过区块链接口上传到区块链网络中,信息一旦生成不可篡改,通过时间戳可追溯查询。

(3) 信息记录及订单生成:生产企业负责生产加工人们所需的食品,完成之后食品包装上会有唯一的食品溯源码,存储该食品的基本信息。比如,生产企业需要将食品的生产日期、包装日期、产品类型、产品名称、制造商和产地等信息记录在区块链中,相应地,食品也会到达流通企业、销售企业、消费者等。每流转一处,就需要在区块链中增加相应的流转信息和属性信息,且这些信息只有拥有一定权限的主体才能够记录或者读取。销售企业也可以发布订单需求,生产企业接收订单,此时发布者可以确认并生成订单。订单指定了内容、数量、到达时间等,用于在触发交易操作合约时匹配比较。

(4) 食品溯源系统查询:消费者Agent在购买或者使用食品之后,已经被赋予一定的身份权限,通过此身份认证,可登录到食品溯源系统,输入食品的溯源码,可查看食品从生产源头开始的详细信息。被许可授权的监管部门Agent可随时查询链上存储的数据信息,方便追责。

2.3 共识层的运行机制

在溯源系统的联盟链共识机制中我们采用PBFT共识算法。实用拜占庭容错算法(Practical Byzantine Fault Tolerance)刚开始是在MIT的Miguel Castro和Barbara Liskov在1999年的学术论文中提出的[15],将算法复杂度由指数级降低到多项式级,它能够保证在至多1/3的节点失效的情况下达成全网一致的共识。PBFT算法大致的运行流程如下,其中系统中有3f+1个节点,最多可存在f个恶意的节点:(1) 全网选取一个主节点,负责生成新区块,其他节点作为副节点;(2) 客户端向主节点发送事件的服务请求;(3) 主节点将请求广播给其他副节点;(4) 所有副节点响应请求并给客户端发回响应结果;(5) 客户端确认最终结果,结果需要满足f+1个不同的副节点响应相同的结果。通过上述过程,节点要求记录的交易信息被写入各个记账节点的区块链中,形成一个分布式的不可篡改、不可伪造的一致性账本。

PBFT的优点如下:(1) 共识的时间延迟大约在2~5 s,能够满足实时处理的要求;(2) 共识效率高,可实现高频交易量的需求;(3) 非常适合联盟链的应用场景,因此成为目前使用最多的联盟链共识算法。

现有的区块链的共识框架能够满足我们对于食品溯源链的要求,本文设计将多代理系统(MAS)加入区块链共识层,可以在原有基础上,创造出更加智能化的食品溯源系统架构。在MAS中,决策、交易和一般的交互作用常常被委托给多个Agent执行,而Agent中一个通常被区别对待的特征是“信赖”。它可以直接计算,也可以委托给专门的机构。在共识层,我们主要解决的也就是信任问题。建立可信交互的一种方法是实现基于信誉的机制。Agent信誉通常是根据以前的行为来计算的,它可以用来推断未来可能发生的行为。因此,当Agent需要获取关键或者相关信息时,信誉会严重影响决策过程。此外,仍然需要保证对它进行适当的管理(例如,提供一种诚实和可验证的方法来计算它,确保它的历史值是防篡改的,并提供更新的信誉值)。

一般来说,信誉可以被认为是一个相当可靠的指标,是信任的基石。计算信誉这种机制也可以是对良好行为的激励。由于信誉和信任机制一直被认为是MAS设计的关键因素,考虑到MAS的这种特性,我们可以将MAS嵌入到区块链的共识层中。在共识层中,每个参与者都会有自己的信誉值,拥有较好信誉的参与者有机会选择较好的交易报价,并更快地完成交易,而且每完成一笔真实的交易,都将会得到一定的信誉奖励。在我们的系统模型中,Agent代理在概念上可以被理解为被许可的联盟区块链上的对等点,在真实的场景中,可能需要管理一些敏感的数据。由于我们设计的系统架构是去中心化的,即在没有中心控制机构的情况下达成协议的共识。鉴于此,我们将参与共识的各节点用Agent代理来表示并完成交互。由区块链和Agent技术的特点可知,Agent代理节点可以随时加入或退出,在Agent代理加入的时候,需要认证代理的信誉和权限,这时候需要一个CA认证代理来发挥作用,即将CA认证代理作为主节点,其他Agent代理作为副节点,共同组成了共识层。

如图2所示,为我们设计的共识层系统的逻辑架构,包含成员服务机构(MS)、CA认证代理和多个参与共识的Agent组成。参与共识的Agent都有自己特定的功能,并且每一个Agent通过身份认证后都可以连接到区块链的对等网络上。联网的Agent都拥有各自独立的账本:服务账本和交易账本,并封装了请求交易Agent(R-Agent)和处理交易Agent(H-Agent)。服务账本上不仅存储本Agent自身的信息,还存储本Agent有关的服务提供信息和额外的信息,比如生产共识Agent只负责食品的生产部分,它可以提供生产食品的相关信息,而运送食品之类的操作只能交给流通共识Agent来完成,生产共识Agent需要运送食品,需向流通共识Agent提交一个交易请求,之后达成交易共识。在服务账本上可进行的操作如下:1) 添加一个新的服务;2) 修改一个服务;3) 删除一个服务;4) 搜索相关的服务。而交易账本上存储Agent社区中发生的交易信息,以及来自服务提供者代理和请求服务的代理之间的相关评价信息和交易双方自身的信息,而这个评价信息可以作为之后信誉评估的考量。这个账本可以有效跟踪在一段时间内发生的交易。在交易账本上可进行的操作如下:1) 添加一个新的交易记录;2) 查找交易的Agent;3) 查找某一个交易详情;4) 计算信誉值。这些代理主要负责完成各自的功能,并在共识层的Agent社区中进行交互。他们的主要行为有:1) 请求CA-Agent提供认证证书;2) 通知请求交易Agent执行交易请求;3) 通知处理交易Agent执行交易处理;4) 服务账本和交易账本的读和写,随时更新;5) 发送和接收消息。

图2 共识系统的逻辑架构

如果有Agent代理想要加入共识网络,需要先向CA代理发送请求加入网络的认证,CA代理通知认证合约Agent(G-Agent)执行认证请求,认证通过后即可加入。Agent代理加入之后便可拥有自己的服务账本和交易账本,可以请求执行指定的服务,并需要随时记录网络中已达成共识的交易。每个Agent代理节点通过发出服务请求和执行请求的任务完成后,都会有相应的信誉奖励,并且可以累加,这就提高了每个Agent代理节点记账的积极性。一旦有恶意Agent代理想要修改交易数据,就会影响自身的信誉值,超过一定阈值,就会被CA认证代理驱逐出共识网络,维护共识层的安全稳定。而且这种情况并不会影响整个系统的正常运行,因为只有全网大多数Agent代理达成共识之后才能将交易记录写入区块链中[16],保证了系统的安全性。

如图3所示,为CA代理的运行机制,其中被许可的区块链上[17]的一个重要组成部分是证书颁发机构(MS)。MS相当于一个管理组织,它承载一个证书颁发机构并管理所有对等点的网络身份,维护一个基于访问控制列表的网络活动控制,并确保每个事务最终都可以追溯到一个注册用户。可看出,在当前的设计中,我们使用一个单一的认证机构。为简单起见,我们将Agent节点作为区块链上的对等节点运行,并且依赖于一个由MS托管的公共证书颁发机构CA代理。其中CA代理有以下三个主要的作用:1) 包含标准的Agent管理系统的功能;2) 是连接区块链网络和MAS的代理;3) 为其他代理提供了一个接口(即认证合约Agent的功能),以便与CA交互进行注册和身份管理。

图3 CA代理的运行机制

具体的行为如下:1) 触发认证合约Agent的功能,转发消息给证书颁发机构,并且给普通Agent颁发证书并完成交互。2) 认证合约Agent任务完成后,连接到区块链网络中,一旦一个普通Agent表现出了恶意的行为或者它的信誉值降低到了特定的阈值,CA-Agent中就负责通知吊销证书Agent(V-Agent)进行吊销证书操作,随后就会在证书吊销列表中查看到已经被吊销证书的Agent。3) 收回相应Agent的读写交易账本和服务账本的权限,也即Agent证书身份失效。而且,此Agent的交易记录和行为会被永远记录在区块链的账本中[18],证书吊销列表中的记录不会消失,任何拥有权限的Agent都可以查看吊销列表,为之后的交易做出判断,在一定程度上防止了虚假交易行为的发生。

综上所述,共识层的整体运行流程如图4所示,通过运用PBFT共识算法,详细描述了各Agent之间的交互作用。

图4 共识层的运行机制

过程如下:

1) 一个普通Agent向CA代理发送请求注册获取认证证书的消息,以便能够进入Agent社区,查询并操作账本数据。

2) CA代理收到普通Agent发来的请求消息后,转发此消息给成员服务机构MS,也即证书颁发机构。

3) 经MS同意后,会授予CA代理认证证书。并将此消息广播给各对等Agent节点和主节点。

4) CA代理被授权后,向普通Agent颁发证书。这时,普通Agent就可以发布它愿意提供的服务,并且寻找它想要请求的服务。

5) 普通Agent请求一个交易,并将交易提案广播给网络上的各节点。各节点需要验证的内容如下:(1) 交易提案内容完整;(2) 在过去并没有发生过这个交易;(3) 数字签名是有效的;(4) Agent已获适当的授权,并且它的证书是有效的。

6) 网络上的各对等Agent节点、包括生产共识Agent、流通共识Agent,销售共识Agent,它们将交易提案输入作为被调用的智能合约的参数,然后针对当前状态数据库执行智能合约,产生以背书响应形式发送的结果。

7) 普通Agent节点验证各对等Agent节点的签名,并将结果反馈给主节点,但将交易事务和连同收到的响应结果提交给主节点之前,需对提交的响应结果进行比较,确定各对等Agent节点的响应结果是否相同。如果收到超过半数以上的相同的响应结果,则向主节点发送调用服务的请求。

8) 当主节点接收到请求时,它会按时间顺序将创建的交易事务块进行排序,然后将这些交易事务块告知给通道上的所有对等Agent节点,并更新总账。

共识层采用的PBFT共识算法具有吞吐量高,交易确认时间短的优点,链上的各对等Agent节点作为副节点可以满足实时处理交易的需求,利用Agent的智能化的优势,将交易处理的时间成本降至最低,方便主节点快速生成区块,可以有效提升食品溯源的效率。

2.4 场景测试

对设计的系统进行了流程模拟研究。包括5个参与者:生产共识Agent、流通共识Agent、销售共识Agent、消费者共识Agent(B-Agent)和主节点Agent(O-Agent),其中主节点Agent负责生成交易区块。这里每个Agent都有各自的能力水平和完成特定的功能。

在注册阶段完成之后,各Agent获得自己的身份认证证书,此时可以进行交易操作。如图5所示,为模拟交易时序图。生产共识Agent发起一笔交易,投递产品给流通共识Agent,流通共识Agent收到交易请求后,同意交易请求,则双方签署区块链上部署的交易合约,然后主节点Agent负责生成交易区块,此时要想使合约生效,即证明这笔交易存在,需要主节点Agent将交易区块向全网广播,各Agent节点收到广播信息后,需对交易区块信息进行验证,并将验证结果返回给主节点Agent,主节点Agent自身也会验证交易信息,并统计收到的验证结果,如果大部分的结果相同,则说明交易是真实的,然后通知各节点交易记录进区块链中。此时,生产共识Agent和流通共识Agent就达成了此笔交易。交易一旦生成,不可篡改,可永久地记录在区块链中。之后,流通共识Agent需要将食品装箱运送,向销售共识Agent发送货物运送请求,同理,双方达成一致,且得到各参与者的共识后,交易完成,并被记录在区块链中。消费者共识Agent购买销售共识Agent出售的商品,交易付款。此时,由于所有的交易信息都被记录在区块链中[19],参与各方都可以查看食品流转的详细信息。

图5 交易时序图

2.5 模型的特点

本文设计的采用区块链技术和Agent技术构建的食品溯源模型,解决了数据中心化存储、易被篡改、信息不共享的弊端。而且MAS系统负责自动化和优化参与者之间的相互作用,提高了系统的运行效率。区块链是去中心化的存储方式,可以有效避免单点故障的发生。且共识层有了MAS系统的加入,可以更加迅速地达成共识,解决了信任难题。智能合约与Agent技术的结合使用,可以使系统更加自动化,减少了人为错误的发生,利用合约中的不可篡改的机制,建立了基于信任的协议,也加快了系统内部的信息流动和资源共享,节约了时间和资源成本。

这里将区块链和MAS的优点进行结合,解决了现阶段的一些难题,未来我们也需要验证智能合约实施的正确性,制定合理的合约规范等,进一步完善该领域的应用。

3 结 语

本文介绍了区块链的概念和技术特征,并结合Agent技术设计了食品溯源系统架构,详细分析了系统模型的工作机理,重点阐述了共识层的运行机制,最后分析了模型的特点。该模型不仅提高了系统的运行效率,优化参与者之间的交互作用,也提高了食品溯源系统的透明度,解决了数据中心化存储、数据隐私易泄露、信息不共享的问题,保证消费者能了解到食品从生产到使用的详细信息,增加了公众对于食品安全的信任度。在此基础上,利用加解密技术为系统提供更好的安全性和隐私性,以及制定合理的智能合约的规范是下一步需要解决的问题。

猜你喜欢

账本合约共识
共识 共进 共情 共学:让“沟通之花”绽放
论思想共识凝聚的文化向度
商量出共识
数说:重庆70年“账本”展示
丢失的红色账本
大树爷爷的账本
丢失的红色账本
“慢养孩子”应成社会普遍共识
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望