当前位置:首页 期刊杂志

融合信用值的第二价格拍卖区块链智能合约设计

时间:2024-05-04

许泽峣,刘秋明,姚哲鑫,朱松挺,谢 敏

(1.江西理工大学 软件工程学院,江西 南昌 330013;2.江西省防汛信息中心,江西 南昌 330009)

0 引言

河道采权在拍卖过程中往往出现企业为中标而盲目高价投标[1],导致难以避免恶性竞争,并增加中标后非法偷采多采风险[2],使后期河道采砂监管困难。为使河砂开采权得到合理化出让,减少非法开采对河道航运安全和生态环境造成的破坏,除建全相关法规和监管制度外,拍卖方案设计十分关键。随着互联网技术的发展,传统线下拍卖模式逐渐向线上转移。线上拍卖可分为公开拍卖和密封拍卖,密封拍卖能有效保护拍卖的隐私性和安全性,应用较为广泛。王鑫等[3]利用身份群签名方案和可验证的秘密共享协议,设计了一个高效、安全的密封拍卖方案。该方案需要一个可信的第三方,然而在实际情况下可能存在不可靠的第三方,导致拍卖隐私数据泄露,破坏拍卖的公平性。曹刚[4]结合Bit 承诺与盲签名技术提出的密封拍卖方案能有效避免第三方与他人合谋造成的隐私数据泄露问题,但拍卖过程依赖中心化的第三方。

近年来随着区块链技术的发展[5-6],一种去中心化和不可篡改的无第三方线上拍卖平台得到了广泛研究。彭烨等[7]利用并发签名保护拍卖信息,结合区块链上保证金思想设计了一个无第三方的密封拍卖协议;Xiong 等[8]提出一种基于区块链上时间释放加密的匿名密封投标拍卖方案,防止拍卖人与投标人窜通;李蓓等[9]提出一种基于区块链智能合约的密封拍卖方案,利用Pedersen 承诺隐藏竞拍价,通过零知识证明验证结果;Li 等[10]设计一种基于以太坊的密封式拍卖智能合约,利用zk-SNARKs 零知识证明实现拍卖结果的可信验证。然而,上述区块链线上拍卖方案侧重于考虑数据隐私保护对拍卖安全的影响,忽略了竞拍者之间的恶性竞争问题,缺少对拍卖价的管控。基于第一价格密封拍卖,容易导致竞拍者为增加中标几率,违背自身意愿出价[11],增加投机风险等问题,难以使河砂开采权得到有效分配。为解决上述问题,设计了一种联盟链拍卖智能合约,利用第二价格拍卖机制最优出价策略,结合保证金思想和信用制度,激励竞拍者按照自身的真实意愿投标,约束不诚实的投标行为,防止盲目抬价引起恶性竞争,造成成交价过高的现象。

1 关键技术

1.1 联盟链与智能合约

联盟链是一种许可制区块链[12],多个参与方组成去中心化联盟[13]。区块链账本共识由指定节点完成,具有严格的访问控制。链上数据只允许获得许可的联盟成员访问,安全性高,兼具去中心化特性和高效率,适合多方参与的采砂许可拍卖场景。

智能合约为执行和验证数字合同的计算机程序,允许在无第三方环境下进行可信交易。区块链去中心化、不可篡改、过程透明和可溯源等特点使智能合约可信赖[14]。利用智能合约可实现无第三方、去中心化的可信拍卖流程。

1.2 第二价格密封拍卖

第二价格密封拍卖又称“维克里拍卖”[15],与第一价格类似,竞拍者提交密封投标,出价最高者中标,但只需要支付第二高价。这种拍卖方式具有激励相容性,在信息不对称时的最优出价为自身对待拍物的真实估价[16]。中标后支付第二价是对竞拍者说真话的奖励,促进其展现真实投标意愿,防止故意抬价投标的问题。但第二价格机制对拍卖环境要求较为严格,在实际过程中可能会出现具有无视价格损失、恶意出价等不诚实行为的竞拍者破坏拍卖秩序。为此,利用信用制度和保证金约束投标出价,规范拍卖行为,可使第二价格机制有效发挥作用。

1.3 密封方案

现有的一些区块链拍卖方案虽去除了第三方,但要求拍卖方打开密封标书来计算拍卖结果。不诚实的拍卖方可能会泄露真实投标价以谋取利益,对后续拍卖的公平性造成不利影响[17]。本文使用改进的密封方案[18]加密投标价,使加密数据保持原数据的大小关系,因此可直接比较加密投标价来计算拍卖结果,消除不可信因素,防止投标结果泄露。

主要过程为:①设竞拍者的真实出价为pi,Fn(pi)为二进制位数计算函数为竞拍者持有的秘密数,Ui=为加密价。其中,α和β是拍卖时由智能合约随机生成并秘密保存的正小数,α≠β;②投标结束后智能合约公布最高加密价和第二加密价;③竞拍结束后,由第二价出价人公布真实出价和αi,再由智能合约公布β;④验证若,则可证明公布的是正确投标价。反解加密价是离散对数困难问题,在未知β的情况下,难以伪造投标价pi使验证通过。

2 拍卖模型设计

2.1 系统模型

利用区块链上的可信智能合约实现拍卖任务,执行过程受到多方监督和背书,拍卖方和竞拍者只负责提供数据和验证结果,消除不可信第三方和区块链下不可靠程序造成的影响。为增强对拍卖的监管[19],融入监管方共同参与拍卖过程。三者分别作为独立组织,共同构建去中心化拍卖环境,拍卖结果需要三方节点共同背书。每个实体组织维护独立的证书颁发机构(Certificate Authority,CA),用于颁发各自实体对象的身份授权。获得授权才能调用智能合约参与拍卖,可防止伪造和多重身份,保护拍卖的公平性与安全性。拍卖实体关系如图1所示。

Fig.1 System model图1 系统模型

(1)拍卖方。进行拍卖的政府部门或其他实体,负责公布拍卖信息及制定拍卖限制策略等。

(2)竞拍者。采砂许可竞买者,注册身份并获得初始信用值后才具备拍卖参与资格。

(3)监管方。负责对拍卖进行监管,以及为新注册竞拍者提供信用值的初始评估服务。

2.2 数据模型

利用区块链的不可篡改特性,将所有拍卖数据上链存储。智能合约实行严格访问控制,任意数据更改将留下痕迹,以防止拍卖过程中数据被恶意篡改[20]。将秘密数等拍卖隐私数据存储在联盟链私有数据集中,限制外部访问权限,避免在拍卖过程中被泄露,破坏拍卖的公平性。拍卖数据类型主要有以下几种:

(1)竞拍者信息。bidder_info={bidder_ID,bidder_CA,credit_tab,credit_value}。用于保存竞拍者身份授权后的基本信息及信用情况,包含竞拍者ID、身份授权、初始信用评估表、竞拍者信用值等信息。

(2)拍卖详情。auc_view={auc_ID,auc_details,start_time,end_time,min_pirce,max_price,limit_credit}。拍卖方创建拍卖时公布,记录待采砂许可详细情况和拍卖规则等,竞拍者可据此进行投标,包含拍卖ID、拍物信息、起止投标时间、拍卖底价、最高限制价、准入信用值等。

(3)拍卖信息。auc_info={auc_ID,secret_a,secret_b,k_up,k_low,res_price,R}。智能合约创建的链上私有数据集,不允许外部访问,用于保存拍卖生成的秘密参数和拍卖方提供的调节参数、保留价等信息。

(4)拍卖日志。auc_log={log_ID,auc_ID,record_project,log_content,timestamp,log_type}。用于记录投标详情、处罚情况、拍卖结果和验证信息,包含拍卖ID、记录对象、日志内容详情、时间戳、日志类型等信息。

2.3 信用值评估模型

为避免中标者无法履行承诺的情况,充分了解其可信度,需要根据竞拍者自身条件和拍卖行为两方面进行评估。自身条件用于衡量竞拍者资金、技术、社会信用等,监管方可根据实际情况灵活评估,再将其保存至区块链上的竞拍者信息中。智能合约在拍卖时对竞拍行为进行评估,根据监管方给出的权值将二者合并为信用评估表,再使用模糊层次分析法(Fuzzy Analytic Hierarchy Process,FAHP)计算信用值[21]。竞拍者信用评估表如图2所示。

Fig.2 Credit evaluation form图2 信用评估表

拍卖方每次发布拍卖时设定最高限制价Pmax,提供警戒区间(klow,kup),智能合约生成随机警戒价R=Random(klow,kup)·Pmax。当竞拍者出价pi>R时,视为恶意出价,智能合约降低信用评估表中衡量此行为指标的值。当pi≥Pmax时,判断为严重的恶意出价,将信用值清零。若出现签名错误、拒绝支付、提交虚假验证参数等违规行为,将对应指标置零。评估表变更后,将重新计算信用值。低于准入值则投标失效,出价相同则信用值高者获胜。

3 拍卖智能合约设计

拍卖总流程可分为拍卖准备、提交投标和公布结果3个阶段。拍卖方发布拍卖详情,竞拍者根据区块链上发布的拍卖进行投标,智能合约验证投标价和签名的合法性,投标结束后自动计算拍卖结果,通知第二价投标者提交真实投标价和秘密数。拍卖结束后,各参与者可根据拍卖日志上的信息验证拍卖结果。拍卖总体流程如图3所示。

Fig.3 Overall auction process图3 拍卖总体流程

智能合约通过向外部暴露部分接口实现与拍卖各实体交互以及对链上数据的访问控制,如表1所示。

Table 1 Smart contract external interface表1 智能合约外部接口

3.1 拍卖准备

拍卖准备阶段如图4 所示,竞拍者从授权中心注册获得基于椭圆曲线密码学的公私钥对作为身份授权[22]。为保证拍卖安全,调用智能合约时需要验证用户身份,数据上链需要用私钥生成数字签名进行数据留痕。监管方评估竞拍者条件,通过GRPC 协议调用AddCreditTab接口上链存储,该过程会触发智能合约完成信用值的初始计算。

拍卖方以JSON 格式将拍卖底价、保留价、最高价、警戒区间和数字签名等信息作为参数,调用合约CreateAuction接口发布一次拍卖。智能合约验证签名,随机生成密封方案的两个全局秘密参数α、β和随机警戒价,与保留价和警戒区间一起保存在拍卖信息中,再将其余信息组成拍卖详情公布上链。获得信用值的竞拍者可以进行投标。

Fig.4 Auction preparation图4 拍卖准备

3.2 投标阶段

投标阶段如图5 所示,竞拍者调用智能合约QueryAuc接口查看拍卖,再调用EncryptPrice接口提交真实投标价。在该过程中,智能合约先判断竞拍者信用值是否高于此次拍卖的准入值,未达要求则禁止投标,再分析投标价,低于拍卖底价或高于最高限制价时投标被驳回,清零该竞拍者信用值,并调用内部接口CreatePunishLog生成一条记录处罚内容的日志存储到区块链上。内部接口只能由智能合约调用,对外部不可见。若投标价高于随机警戒价而未超出最高限制价,则根据其超过随机警戒价的多少减少恶意出价指标的评分,再生成一条相应的处罚日志上链。若投标价在正常区间内,则返回加密投标价和秘密数。随机警戒区间存储在链上外部无法访问的拍卖信息中,由合约随机生成警戒价,防止拍卖方泄露警戒值,与竞拍者共谋破坏拍卖公平。

Fig.5 Bidding stage图5 投标阶段

收到加密价和秘密数后,竞拍者在客户端通过安全哈希函数H(x)生成加密价的哈希值,再使用私钥对哈希值数字签名,使投标不可否认。将加密价和签名作为密封投标发送给智能合约,智能合约先判断是否在规定投标时间内,否则投标无效,再打上时间戳,调用CreateBidLog内部接口封装成一条拍卖投标日志发布上链。投标成功后,竞拍者需在规定时间内缴纳保证金,未缴纳者投标无效并降低信用值,保证金在竞拍结束后退还。

3.3 结果公布

如图6 所示,投标结束后自动触发拍卖结果计算内部接口ComputeResult,智能合约首先筛选出信用值达标的合法投标,验证投标加密价与对应签名是否匹配。验证失败的竞拍者定义为非诚实的,降低信用值并取消此次竞拍资格。然后对比加密价,出最高价的投标者中标,并选择第二高价作为成交价。若最高出价有多个,信用值最高者中标。调用内部接口PublishResult在链上发布一条结果公布日志。智能合约计算拍卖结果时无需解密投标数据,保护了竞拍者的出价隐私。拍卖结果需要拍卖方、竞拍者、监管方三方节点共同背书,任意节点篡改结果都将无法通过验证,从而保证拍卖公平、可靠。

Fig.6 Posting results图6 公布结果

拍卖结果公示后,智能合约通知第二价投标人公布真实投标价和秘密数,并使用秘密参数β验证是否正确。验证成功后,通过内部接口CreateVerifyLog将β和第二价投标人提交的验证参数公布上链。若第二价投标人拒绝提交验证参数,会以扣除保证金和降低信用值作为惩罚,将保留价作为最终成交价。任意拍卖参与者通过QueryLog接口查询拍卖日志即可自行验证拍卖结果的准确性。最后,智能合约更新拍卖详情中的中标者、中标价,将拍卖标记为结束状态,释放保证金。后期监管方可重点监管受到拍卖处罚的低信用值中标者,提高监管效率。

4 实验与结果分析

4.1 实验环境

基于Hyperledger Fabirc1.4 联盟链架构搭建去中心化拍卖平台,使用Golang 语言开发智能合约和客户端。实验设备为一台笔记本电脑,搭载12GB 内存、Intel Core i5 双核处理器、CentOS7 操作系统,运行一台双核3GB 内存的虚拟机。区块链环境中搭建有1 个排序节点、3 个组织,每个组织拥有2 个peer 节点,通过Docker 容器独立运行。每个组织设立一个CA,对等节点使用CouchDB 状态数据库。

4.2 结果分析

经过一段时间的拍卖测试,智能合约运行稳定,拍卖各个环节都能正确运行。表2 记录了一次拍卖的部分投标情况。执行对象为投标用户,日志类型PROPOSAL 代表合法投标的提交日志,VETO 代表禁止投标的惩罚日志。

图7 展示了拍卖结果公布日志的记录内容,图8 为中标价验证日志的记录内容。拍卖日志均以JSON 格式结构化存储在区块链状态数据库中。

Table 2 Auction bidding situation表2 拍卖投标情况

Fig.7 Auction results release log图7 拍卖结果公布日志

Fig.8 Winning bid verification log图8 中标价验证日志

图9 展示了某次拍卖加密价、竞拍者信用值与投标价的关系。共25 位竞拍者,初始信用值都设为最高值1。从拍卖底价100 开始递增投标,拍卖随机警戒值为233,最高限制价为300,警戒区间为[0.75,0.85],准入信用值为0.8。

Fig.9 Relationship between crypto price,credit value and bid price图9 加密价、信用值与投标价的关系

投标价经密封算法加密后被映射为精度为12 位的正小数加密价,并在底价和最高限制投标价内保持递增关系。低于随机警戒价投标的竞拍者不会承受信用值损失,但投标价超过随机警戒值时,竞拍者信用值会随着投标价增加而降低,到达0.625 时因触及行为考量指标下限而停止下降。信用值低于准入信用值0.8 的竞拍者投标无效,投标价低于底价禁止投标,高于最高限制价则信用值清零。

实验结果表明,竞拍者故意抬价或恶意出价都可能导致信用值损失。因此,在未知他人投标时最好的投标价是自身的真实估价。本次实验的中标价为250,未达到调节上界255,实现投标价限制。在真实环境中,投标价高于随机警戒值时,信用值可能会直接降低到准入限制以下,因此不诚实投标将承受很大风险。若竞拍者按照真实的心理估价投标,根据第二价格拍卖原则,中标后仅需支付第二高价,即使不中标也不会承担任何损失。

4.3 性能分析

拍卖各阶段的平均响应时间如图10 所示。系统各阶段的响应时间均为毫秒级,能够满足日常需求。拍卖准备和投标阶段是由参与者独立调用合约实现的,响应时间不会随着投标人数的增加而增长。结果公布过程需要对比和校验一次拍卖的全部投标数据,再验证第二价投标人提供的验证参数,因此耗时相对较长。系统最大的开销为结果公布时依次对投标签名的验证。

4.4 安全分析

本方案能够满足线上拍卖的以下安全要求:

(1)正确性。投标价加密后仍保持原有的大小关系。通过加密价得出的最高价和次高价与真实投标出价一致,符合拍卖原则,保证了正确性。

(2)公平性。竞拍者的恶意行为会使信用值降低,拍卖结果通过去中心化执行的智能合约得出。拍卖全过程公开在区块链中,保证了拍卖的公平性。

Fig.10 Average response time of each stage图10 各阶段平均响应时间

(3)密封性。投标价经加密后上链保存,拍卖过程不进行解密,拍卖结束后只公布成交价,避免了大量投标信息泄露后被分析利用,影响拍卖公平。

(4)不可否认性。投标需要投标者签名,数据上链后无法被篡改,因此竞拍者无法否认其出价。

(5)可验证性。拍卖参与者可通过拍卖日志了解拍卖的真实情况,并验证拍卖结果是否准确。

(6)不可伪造性。竞拍者必须获得准入许可和信用值。投标时需要验证签名,身份难以伪造。拍卖结果由智能合约计算得出,且公开可验证,无法伪造。

5 结语

本文融合信用管理机制设计了基于第二价格的区块链拍卖智能合约,有效防止了竞拍者故意抬价和恶意出价造成拍卖成交价失控的情况。鼓励竞拍者投标与自身意愿相匹配,使资源分配更加合理。实验结果表明,无第三方的区块链平台及智能合约计算拍卖能够有效保护投标数据的隐私性,并保证拍卖安全。为保证拍卖过程平稳,使智能合约对投标价作出准确判断,以及防止保留价过低引起竞拍者串谋,拍卖方如何设定合适的保留价和调节参数,需要结合现实情况作进一步分析。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!