CN112182640B - 基于区块链的汽车分时租赁交易方法 - Google Patents
基于区块链的汽车分时租赁交易方法 Download PDFInfo
- Publication number
- CN112182640B CN112182640B CN202010918534.8A CN202010918534A CN112182640B CN 112182640 B CN112182640 B CN 112182640B CN 202010918534 A CN202010918534 A CN 202010918534A CN 112182640 B CN112182640 B CN 112182640B
- Authority
- CN
- China
- Prior art keywords
- cmt
- user
- cost
- block chain
- zero knowledge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0645—Rental transactions; Leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的汽车分时租赁交易方法,包括如下步骤:Owner线下规定User租车过程中所限定的具体参数以及User判断是否满足租车要求;User进行租车服务前,从自己的账户余额中抵扣租车押金用于租车服务;待所有租车用户租车结束后,在区块链系统中通过发交易的形式进行统一费用结算;Owner在区块链系统中取回应得的租车费用;User取回剩余租车押金到自己的账户余额;每个步骤都采用了对应的零知识证明,用于证明和验证交易过程中的相关参数,并隐藏关键信息,以及取消交易各方在操作过程中的关联关系。本发明所公开的方法通过默克尔树进行统一组织和管理,可以很好的保护各方账户和消费隐私,并且具有公平公正的优点。
Description
技术领域
本发明涉及区块链系统的交易操作,特别涉及一种基于区块链的汽车分时租赁交易方法。
背景技术
近年来,随着汽车共享概念逐渐落实与普及化,电子移动技术也正在推动交通领域的发展,将区块链技术引入汽车移动空间,有助于更好的实现减少拥堵和污染、缩短通勤时间和降低运营成本。
区块链技术在汽车共享上的应用,旨在利用区块链技术降低汽车共享平台的使用成本,可用来记录车辆的所有权以及状态参数,并且处理某些特定类型的金融交易。
区块链是一种分布式、去中心化的系统,具有安全、可靠、不可篡改等特点,在数字货币交易领域具有广泛的普及应用。在区块链系统中通过应用零知识证明(zeroknowledge proof)等密码学技术,区块链可以很好地隐藏各方用户的交易记录和身份信息等相对敏感数据,从而保护了用户的个人隐私。此外,区块链作为一种底层技术,还可以支持智能合约。智能合约是一种安全可靠、自动化运行的程序,不受第三方约束,一旦触发智能合约,就按照里面的逻辑顺序一次执行,保证了公平、公正、公开,理论上可以为用户提供任何计算服务。包含智能合约的区块链系统在金融、医疗、能源、保险和物联网领域都有着广泛的应用。
在汽车分时租赁交易平台中,利用原始的第三方租赁交易平台存在着很多难以解决的弊端:交易信息不公开透明;所有信息都掌握在第三方平台手中;容易篡改数据;产生彼此信任问题。区块链技术可以很好地解决这些弊端,它是一个去中心化的平台,所有交易数据信息公开透明,不可篡改,并且可以解决交易双方的彼此信任问题。
发明内容
为解决上述技术问题,本发明提供了一种基于区块链的汽车分时租赁交易方法,采用零知识证明,用于证明和验证交易过程中的相关参数,通过默克尔树进行统一组织和管理,可以很好的保护各方账户和消费隐私,并且具有公平公正的优点。
为达到上述目的,本发明的技术方案如下:
基于区块链的汽车分时租赁交易方法,包括如下步骤:
步骤一,Owner线下提前规定User租车过程中所限定的具体参数以及User判断是否满足租车要求;
步骤二,User进行租车服务前,需要从自己的账户余额中抵扣租车押金用于租车服务,并将租车押金以交易参数的形式通过智能合约记录在区块链系统中,初始化智能合约账户余额;
步骤三,不同User在缴纳完租车押金后在不同时间段按照相关租车规则在相应位置享受租车服务,待所有租车用户租车结束后,在区块链系统中通过发交易的形式进行统一费用结算;
步骤四,Owner通过共享汽车实际被租用里程计算总租车费用,并在区块链系统中声明租车费用的所有权;
步骤五,User根据自己实际租车距离利用智能合约自动划分租车费用,并在区块链系统中声明需要取回剩余的租车费用的所有权;
步骤六,待User的租车费用成功划分完毕后,Owner在区块链系统中取回应得的租车费用到自己的账户余额;
步骤七,User在区块链系统中取回剩余租车押金到自己的账户余额;
上述步骤二至步骤七中,每个步骤都采用了对应的零知识证明,用于证明和验证交易过程中的相关参数,并隐藏关键信息,以及取消交易各方在操作过程中的关联关系。
上述方案中,步骤一的详细操作如下:
Owner提前规定共享汽车的最大行驶里程,User需垫付费用押金,Owner部署智能合约,User的数量根据共享汽车可乘载乘客数量而定,User在自己当前的可租车地点判断共享汽车目前可租用里程是否满足自己的总租车里程后再进行租车。
上述方案中,步骤二的具体操作如下:
(1)Cost:User进行租车服务前,需要执行Cost操作,即从自己原来的零知识余额cmtU中扣除租车押金费用用于租车服务,并更新自己的零知识余额为cmtU’,即:User从原来自己的零知识余额cmtU中转化一笔零知识金额cmts,其对应的明文金额为fees;
User生成一个零知识证明πcost,证明如下内容:
①原来的零知识余额cmtU=SHA256(vU|snU|rU);
其中,vU为cmtU对应的明文金额,snU为cmtU唯一对应的序列号,rU为私密随机数;
②要支付的零知识金额cmts=SHA256(fees|sns|rs);
其中,fees为租车押金费用,sns为cmts唯一对应的序列号,rs为私密随机数;
③操作后的零知识余额cmtU’=SHA256(vU’|snU’|rU’);
其中,vU’为cmtU’对应的明文余额,snU’为cmtU’唯一对应的序列号,rU’为私密随机数;
④vU大于等于fees,vU-fees=vU’;
其中,公开的参数为snU,cmtU,cmts,cmtU’;私密的参数为vU,rU,fees,rs,vU’,snU’,rU’,sns;
user将公开参数与πcost发送到区块链系统中,区块链节点使用公开参数验证πcost的正确性,将交易记录在区块链系统中,User的零知识余额更新为cmtU’;
(2)Commit:User执行Commit操作与智能合约交互,用Cost操作产生的零知识金额cmts给智能合约账户初始化账户余额,用于后面智能合约进行自动化划分租车费用;
User生成一个零知识证明πcommit,证明如下内容:
①cmts=SHA256(fees|sns|rs);
②零知识金额cmts存在于以RTcmt为根的默克尔树中;
其中,公开的参数为sns;秘密的参数为cmts,fees,rs;
User将公开参数与πcommit发送到区块链系统中,区块链节点使用公开参数验证πcommit的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,智能合约账户余额初始化为fees。
上述方案中,步骤四的具体操作如下:
Declare:Owner执行Declare操作声明零知识金额cmts的所有权,租车服务结束后通过共享汽车实际被租用距离dist求出总租车费用cost,以及用于锁定cost的承诺cmtt;车载可信硬件使用其内置私钥sk对cost及序列号进行签名,得到验证签名σ=Signsk(cost,sn);
Owner生成一个零知识证明πdeclare,证明如下内容:
①cmtt=SHA256(cost|r);
②cmts=SHA256(cost|sns|rs);
③cost=pn×dist;其中,pn为租车距离的单价;
④DS=SHA256(dist|sn);
其中,DS为可信硬件对dist用哈希算法求得的数字摘要,sn为标识σ签名的序列码,签名验证通过后sn暴露,确保Owner的Declare操作只允许成功执行一次;
其中,公开参数为DS,cmtt,sn;秘密的参数为dist,cost,r,cmts,sns,rs;
Owner将公开参数、零知识证明πdeclare以及数字签名σ发送到区块链系统中,区块链节点使用公开参数验证πdeclare以及签名σ的正确性,将交易记录在区块链系统中,cmts成为一笔有效的零知识金额,用于Owner进行Collect操作。
上述方案中,步骤五的具体操作如下:
Divide:所有User租车服务结束后,共享汽车上的可信硬件将记录每个User的disti|i∈N*{1,2,…n},并将数据disti|i∈N*{1,2,…n}和Σi∈N*{1,2,…n}disti传给User;可信硬件使用私钥sk对disti|i∈N*{1,2,…n}的数字摘要DS进行签名σ;不同的User根据实际租车里程,通过智能合约对租车费用进行公平划分,并声明需要操作的cmts的所有权;
User生成一个零知识证明πdivide,证明如下内容:
①costi|i∈N*{1,2,…n}=cost×disti|i∈N*{1,2,…n}/(Σi∈N*{1,2,…n}disti);
refundi|i∈N*{1,2,…n}=fees-costi|i∈N*{1,2,…n};其中,refundi为每个User需要回退的金额;
②cmts=SHA256(refundi|i∈N*{1,2,…n}|sns|rs);
③cmtt=SHA256(cost|r);
④DS=SHA256(disti|i∈N*{1,2,…n}|sn);
其中,公开的参数为DS,cmtt,cmts,sn;私密的参数为cost,costi|i∈N*{1,2,…n},disti|i∈N*{1,2,…n},Σi∈N*{1,2,…n}disti,refundi|i∈N*{1,2,…n},sns,rs,r;
User将公开参数与πdivide以及数字签名σ发送到区块链系统中,区块链节点使用公开参数验证πdivide以及签名σ的正确性,将交易记录在区块链系统中,cmts成为一笔有效的零知识金额,用于User进行Refund操作。
上述方案中,步骤六的具体操作如下:
Collect:Owner通过Collect操作收取租车费用cost到自己的账户,并更新账户零知识余额;
Owner生成一个零知识证明πcollect,证明如下内容:
①cmtt=SHA256(cost|r);
②当前的零知识余额cmtO=SHA256(vO|snO|rO);
③要存入的零知识金额cmts=SHA256(cost|sns|rs);
④操作完成后零知识余额cmtO’=SHA256(vO’|snO’|rO’);
⑤vO+cost=vO’;
其中,公开的参数为snO,sns,cmtO,cmtO’,cmtt;私密的参数为vO,rO,cost,r,rs,vO’,snO’,rO’,cmts;
Owner将公开参数与πcollect发送到区块链系统中,区块链节点使用公开参数验证πcollect的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,Owner的零知识余额更新为cmtO’。
上述方案中,步骤七的具体操作如下:
Refund:User通过Refund操作领回剩余押金到自己的账户,并更新账户零知识余额;
User生成一个零知识证明πrefund,证明如下内容:
①refundi|i∈N*{1,2,…n}=fees-costi|i∈N*{1,2,…n};
②原来的零知识余额cmtU=SHA256(vU|snU|rU);
③要转化的零知识金额cmts=SHA256(refundi|i∈N*{1,2,…n}|sns|rs);
④操作后的零知识余额cmtU’=SHA256(vU’|snU’|rU’);
⑤vU+refundi|i∈N*{1,2,…n}=vU’;
其中,公开的参数为:snU,sns,cmtU,cmtU’;秘密的参数为:fees,vU,rU,rs,vU’,snU’,rU’,refundi|i∈N*{1,2,…n},cmts;
User将公开参数与πrefund发送到区块链系统中,区块链节点使用公开参数验证πrefund的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,User的零知识余额更新为cmtU’。
本发明提供的基于区块链的汽车分时租赁交易方法具有如下有益效果:
1、在区块链交易中集成了零知识证明技术,在产生和验证证明过程中可以隐藏掉User的租车里程和租车费用等关键信息,可以很好的保护各方账户和消费隐私;
2、在区块链交易过程中产生的零知识金额通过默克尔树进行统一组织和管理,取消了交易发送者和零知识金额之间的关联关系,保护交易发送者的操作隐私。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所公开的一种基于区块链的汽车分时租赁交易方法流程示意图;
图2为Cost操作所证明的关系图;
图3为Commit操作所证明的关系图;
图4为Declare操作所证明的关系图;
图5为Divide操作所证明的关系图;
图6为Collect操作所证明的关系图;
图7为Refund操作所证明的关系图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了一种基于区块链的汽车分时租赁交易方法,是为了克服现有第三方租赁交易平台现有的弊端和不足,提供了一种能够去中心化的汽车分时租赁交易平台:
1、共享汽车所有者(简称Owner)若拥有可用车辆,就能进行汽车租赁服务,租车用户(简称User)可以在区块链对等网络中轻松使用该服务,进行租车交易,这将节省大量交易时间和巨额交易费用。
2、使用加密技术来保护用户信息,车辆状态参数和车辆使用情况等信息数据上传到区块链平台中,隐私信息进行相应隐藏,旨在保护租车用户信息不被泄露。车辆状态参数信息可通过全球定位系统(GPS)获得,这些参数保存在共享汽车上的智能设备(可信硬件)中,一旦记录就不可篡改。汽车上有二维码,用户想要租车时扫描二维码,汽车使用状态信息都将展现给租车用户。
3、该租车方案可以解决信任问题,一旦将交易数据记录在区块中,就无法对数据进行篡改;还可以保护交易双方的账户隐私信息,使交易中没有任何关联性,敏感信息不被泄露,与传统的交易平台不同,使用户在租车过程中可以完全隐藏自己的个人账户信息和交易金额,但又可以正常完成租车结账等服务。
4、本发明租车用户通过初始化一笔交易押金,即可享受租车服务。不同租车用户通过分时共享租车,按照自己的实际租车距离来分配租车费用。租车用户享受完租车服务,通过区块链交易以及智能合约完成结算。整个交易结算过程在区块链系统中被拆分为不同类型的交易,这些交易通过零知识证明技术为每笔交易提供有效的证明,使每笔交易在区块链系统中都被正常接收验证,区块链中的节点作为共识矿工,打包有效的交易信息到区块中,完成共识后将区块同步到整个区块链中。在零知识证明过程中,通过用默克尔树混淆零知识金额取消了交易金额和交易发送者的关联关系,从而保护了用户的隐私信息。
5、基于区块链的汽车分时租赁交易系统由三部分组成:区块链系统,Owner层,User层。Owner和User作为区块链中的节点通过区块链系统中的交易操作进行交互,线上完成租车交易过程中租车费用的缴纳以及公平结算的全部过程。区块链系统的功能主要是完成对Owner和User所发起的交易操作进行共识和确认。Owner层的功能主要是提供Owner方在交易系统中所提供的交易操作。User层的功能主要是提供User方在交易系统中所提供的交易操作。交易系统具体组成部分及交易流程如图1所示。
术语解释:
哈希函数:一种单向、无碰撞函数y=H(x),可以从x快速计算出y;但是给定x,无法有效计算出y。典型的哈希函数有SHA256,其输出为256比特。
公钥密码体制:密钥一般分为公私钥pk/sk,公钥用于加密和签名验证,私钥用于解密和签名。典型的公钥密码算法有RSA。
zk-SNARK技术:一种零知识证明系统,首字母缩略词zk-SNARK代表“零知识简洁非交互式知识论证”,“零知识”证明允许一方(证明者)向另一方(验证者)证明陈述是真实的,而不会泄露超出陈述本身有效性的任何信息。例如,对于公开的y,某人可以通过zk-SNARK在不泄漏x的情况下证明其知晓x,使得y=SHA256(x)。
零知识余额/金额:一种使用哈希值表示的隐藏余额/金额,其组成形式为:cmt=SHA256(v|sn|r),其中,v是cmt对应的明文金额数值,sn是cmt唯一对应的序列号,sn公布代表cmt已被花费,r是用于防止暴力破解的私密随机数。零知识余额的使用和存入必须通过零知识证明验证,使用新的零知识余额代替旧的零知识余额。一旦零知识余额更新,旧余额的序列号sn会被公布。
本方案大致分为两种汽车分时租赁的情况:
①在汽车租赁起始点所有租车用户上车;
②经过沿途线路时有租车用户上车(汽车有空座位的情况下)。
本方案中共享汽车上装配有智能设备(可信硬件),其内置一个私钥sk,对应的公钥pk公开可信,比如基于Intel的SGX技术的可信执行环境。该可信硬件记录每个租车用户享受租车服务的距离disti|i∈N*{1,2,…n},总租车距离Σi∈N*{1,2,…n}disti(其中n为租车用户的数量)和汽车行驶总距离dist等数据信息,并传给汽车所有者和租车用户用于计算总租车费用以及后期结算和划分租车费用。
汽车所有者根据共享汽车实际被租用距离dist计算出总租车费用cost,线下所有租车用户根据自己实际租用距离划分总租车费用cost。
租车用户根据disti|i∈N*{1,2,…n},Σi∈N*{1,2,…n}disti,cost等已知参数计算出在本次服务中应付的租车费用costi|i∈N*{1,2,…n}。其中costi|i∈N*{1,2,…n}=cost×disti|i∈N*{1,2,…n}/(Σi∈N*{1,2,…n}disti),n为租车用户的数量。
具体过程如下:
步骤一,Owner线下提前规定User租车过程中所限定的具体参数以及User判断是否满足租车要求;
Owner提前规定共享汽车的最大行驶里程,User需垫付费用押金,Owner部署智能合约,User的数量根据共享汽车可乘载乘客数量而定,User在自己当前的可租车地点判断共享汽车目前可租用里程是否满足自己的总租车里程后再进行租车。
步骤二,User进行租车服务前,需要从自己的账户余额中抵扣租车押金用于租车服务,并将租车押金以交易参数的形式通过智能合约记录在区块链系统中,初始化智能合约账户余额;
(1)Cost:User进行租车服务前,需要执行Cost操作,即从自己原来的零知识余额cmtU中扣除租车押金费用用于租车服务,并更新自己的零知识余额为cmtU’,即:User从原来自己的零知识余额cmtU中转化一笔零知识金额cmts,其对应的明文金额为fees;
User生成一个零知识证明πcost,证明如下内容:
①原来的零知识余额cmtU=SHA256(vU|snU|rU);
其中,vU为cmtU对应的明文金额,snU为cmtU唯一对应的序列号,rU为私密随机数;
②要支付的零知识金额cmts=SHA256(fees|sns|rs);
其中,fees为租车押金费用,sns为cmts唯一对应的序列号,rs为私密随机数;
③操作后的零知识余额cmtU’=SHA256(vU’|snU’|rU’);
其中,vU’为cmtU’对应的明文余额,snU’为cmtU’唯一对应的序列号,rU’为私密随机数;
④vU大于等于fees,vU-fees=vU’。
以上关系如图2所示,其中,公开的参数为snU,cmtU,cmts,cmtU’;私密的参数为vU,rU,fees,rs,vU’,snU’,rU’,sns;
user将公开参数与πcost发送到区块链系统中,区块链节点使用公开参数验证πcost的正确性,将交易记录在区块链系统中,User的零知识余额更新为cmtU’;
(2)Commit:User执行Commit操作与智能合约交互,用Cost操作产生的零知识金额cmts给智能合约账户初始化账户余额,用于后面智能合约进行自动化划分租车费用;
User生成一个零知识证明πcommit,证明如下内容:
①cmts=SHA256(fees|sns|rs);
②零知识金额cmts存在于以RTcmt为根的默克尔树中;
以上关系如图3所示,其中,公开的参数为sns;秘密的参数为cmts,fees,rs;
User将公开参数与πcommit发送到区块链系统中,区块链节点使用公开参数验证πcommit的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,智能合约账户余额初始化为fees。
步骤三,不同User在缴纳完租车押金后在不同时间段按照相关租车规则在相应位置享受租车服务,待所有租车用户租车结束后,在区块链系统中通过发交易的形式进行统一费用结算;
步骤四,Owner通过共享汽车实际被租用里程计算总租车费用,并在区块链系统中声明租车费用的所有权;
Declare:Owner执行Declare操作声明零知识金额cmts的所有权,租车服务结束后通过共享汽车实际被租用距离dist(由车上的可信硬件保存,一旦记录不可更改)求出总租车费用cost,以及用于锁定cost的承诺cmtt,目的是为了保证Owner和User在用同一个cost进行结算。车载可信硬件使用其内置私钥sk对cost及序列号进行签名,得到验证签名σ=Signsk(cost,sn);Declare在电路内用于验证可信硬件利用dist产生数字摘要的正确性,电路外验证签名σ的有效性。
Owner生成一个零知识证明πdeclare,证明如下内容:
①cmtt=SHA256(cost|r);
②cmts=SHA256(cost|sns|rs);
③cost=pn×dist;其中,pn为租车距离的单价;
④DS=SHA256(dist|sn);
以上关系如图4所示,其中,DS为可信硬件对dist用哈希算法求得的数字摘要,sn为标识σ签名的序列码,签名验证通过后sn暴露,确保Owner的Declare操作只允许成功执行一次;
其中,公开参数为DS,cmtt,sn;秘密的参数为dist,cost,r,cmts,sns,rs;
Owner将公开参数、零知识证明πdeclare以及数字签名σ发送到区块链系统中,区块链节点使用公开参数验证πdeclare以及签名σ的正确性,将交易记录在区块链系统中,cmts成为一笔有效的零知识金额,用于Owner进行Collect操作。
步骤五,User根据自己实际租车距离利用智能合约自动划分租车费用,并在区块链系统中声明需要取回剩余的租车费用的所有权;
Divide:所有User租车服务结束后,共享汽车上的可信硬件将记录每个User的disti|i∈N*{1,2,…n},并将数据disti|i∈N*{1,2,…n}和Σi∈N*{1,2,…n}disti传给User;可信硬件使用私钥sk对disti|i∈N*{1,2,…n}的数字摘要DS进行签名σ;不同的User根据实际租车里程,通过智能合约对租车费用进行公平划分,并声明需要操作的cmts的所有权;
User生成一个零知识证明πdivide,证明如下内容:
①costi|i∈N*{1,2,…n}=cost×disti|i∈N*{1,2,…n}/(Σi∈N*{1,2,…n}disti);
refundi|i∈N*{1,2,…n}=fees-costi|i∈N*{1,2,…n};其中,refundi为每个User需要回退的金额;
②cmts=SHA256(refundi|i∈N*{1,2,…n}|sns|rs);
③cmtt=SHA256(cost|r);
④DS=SHA256(disti|i∈N*{1,2,…n}|sn);
说明:此处的DS作用和Declare操作中的作用相同,不再赘述。
以上关系如图5所示,其中,公开的参数为DS,cmtt,cmts,sn;私密的参数为cost,costi|i∈N*{1,2,…n},disti|i∈N*{1,2,…n},Σi∈N*{1,2,…n}disti,refundi|i∈N*{1,2,…n},sns,rs,r;
User将公开参数与πdivide以及数字签名σ发送到区块链系统中,区块链节点使用公开参数验证πdivide以及签名σ的正确性,将交易记录在区块链系统中,cmts成为一笔有效的零知识金额,用于User进行Refund操作。
步骤六,待User的租车费用成功划分完毕后,Owner在区块链系统中取回应得的租车费用到自己的账户余额;
Collect:Owner通过Collect操作收取租车费用cost到自己的账户,并更新账户零知识余额;
Owner生成一个零知识证明πcollect,证明如下内容:
①cmtt=SHA256(cost|r);
②当前的零知识余额cmtO=SHA256(vO|snO|rO);
③要存入的零知识金额cmts=SHA256(cost|sns|rs);
④操作完成后零知识余额cmtO’=SHA256(vO’|snO’|rO’);
⑤vO+cost=vO’。
以上关系如图6所示,其中,公开的参数为snO,sns,cmtO,cmtO’,cmtt;私密的参数为vO,rO,cost,r,rs,vO’,snO’,rO’,cmts;
Owner将公开参数与πcollect发送到区块链系统中,区块链节点使用公开参数验证πcollect的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,Owner的零知识余额更新为cmtO’。
步骤七,User在区块链系统中取回剩余租车押金到自己的账户余额;
Refund:User通过Refund操作领回剩余押金到自己的账户,并更新账户零知识余额;
User生成一个零知识证明πrefund,证明如下内容:
①refundi|i∈N*{1,2,…n}=fees-costi|i∈N*{1,2,…n};
②原来的零知识余额cmtU=SHA256(vU|snU|rU);
③要转化的零知识金额cmts=SHA256(refundi|i∈N*{1,2,…n}|sns|rs);
④操作后的零知识余额cmtU’=SHA256(vU’|snU’|rU’);
⑤vU+refundi|i∈N*{1,2,…n}=vU’;
以上关系如图7所示,其中,公开的参数为:snU,sns,cmtU,cmtU’;秘密的参数为:fees,vU,rU,rs,vU’,snU’,rU’,refundi|i∈N*{1,2,…n},cmts;
User将公开参数与πrefund发送到区块链系统中,区块链节点使用公开参数验证πrefund的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,User的零知识余额更新为cmtU’。
上述步骤二至步骤七中,每个步骤都采用了对应的零知识证明,用于证明和验证交易过程中的相关参数,并隐藏关键信息,以及取消交易各方在操作过程中的关联关系。
实施例:
在本实施例中有共享汽车所有者A,租车用户B、C、D共四个实体组成。共享汽车所有者拥有汽车,提供租车服务;租车用户通过扣除租车押金享受租车服务,然后进行费用结算。所有过程都是用户作为区块链节点,在区块链系统中通过区块链节点发送交易的形式完成,交易过程中集成了零知识证明的产生和验证,然后通过其他区块链节点进行交易的共识和打包,以及完成区块的同步。通过方案要求,各实体方操作步骤如下:
①A是共享汽车所有者,提前规定共享汽车的最大租车行驶里程N=100km,租车需扣除租车押金fees=100CNY,这些参数与租车用户共享,A在区块链系统中部署智能合约。
②B,C,D满足租车条件时,在自己的账户余额中扣除租车押金进行租车服务,并更新对应账户的零知识余额为cmtU’,调用智能合约给对应的合约账户初始化余额,在A确认B,C,D扣除押金成功后才允许其上车,否则终止租车用户租车。
③在所有租车用户租车服务结束后,A通过共享汽车实际被租用距离dist=16km(由车上的可信硬件保存,一旦记录不可更改)求出总租车费用cost=80CNY。A生成参数,利用公式cmts=SHA256(cost|sns|rs)构造一个零知识金额HASH1=SHA256(80|sns1|rs1),生成一个零知识证明πdeclare,A将cmts发送给智能合约进行验证,等待智能合约验证通过后,HASH1成为一笔有效的零知识金额。
④所有租车用户BCD租车服务结束后,计算自己所支付的租车费用costi,并计算回退金额refundi。其中B实际租车8km,C实际租车5km,D实际租车7km,根据公式costi|i∈N*{1,2,…n}=cost×disti|i∈N*{1,2,…n}/(Σi∈N*{1,2,…n}disti)计算自己所用费用costi,B为32CNY,C为20CNY,D为28CNY,然后租车用户计算退回费用refundi,B为68CNY,C为80CNY,D为72CNY,租车用户BCD生成参数,利用公式cmts=SHA256(refundi|sns|rs)构造一个零知识金额,B的为HASH2=SHA256(68|sns2|rs2),C的为HASH3=SHA256(80|sns3|rs3),D的为HASH4=SHA256(72|sns4|rs4),BCD生成各自的零知识证明πdivide,BCD将各自生成的零知识金额cmts发送给智能合约进行验证,等待智能合约验证通过后,cmts成为一笔有效的零知识金额。
⑤A收取租车费用cost=80CNY到账户余额,将这笔零知识金额存入到自己的零知识余额中。A生成参数,利用公式cmtO’=SHA256(vO’|snO’|rO’)构造一个新的零知识余额HASH5=SHA256(10+80|snO’5|rO’5),并根据当前的零知识余额HASH6=SHA256(10|snO’6|rO’6)和需要存入的零知识金额HASH1=SHA256(80|sns1|rs1),生成零知识证明πcollect,A将公开参数和πcollect发送到区块链中,等待区块链节点(矿工)验证后,零知识金额cmts存入A的零知识余额完成。
⑥BCD领回剩余押金到账户余额,将这笔零知识金额存入到自己的零知识余额中。方法同步骤⑤,此处不再详细说明。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.基于区块链的汽车分时租赁交易方法,其特征在于,包括如下步骤:
步骤一,Owner线下提前规定User租车过程中所限定的具体参数以及User判断是否满足租车要求;
步骤二,User进行租车服务前,需要从自己的账户余额中抵扣租车押金用于租车服务,并将租车押金以交易参数的形式通过智能合约记录在区块链系统中,初始化智能合约账户余额;
步骤三,不同User在缴纳完租车押金后在不同时间段按照相关租车规则在相应位置享受租车服务,待所有租车用户租车结束后,在区块链系统中通过发交易的形式进行统一费用结算;
步骤四,Owner通过共享汽车实际被租用里程计算总租车费用,并在区块链系统中声明租车费用的所有权;
步骤五,User根据自己实际租车距离利用智能合约自动划分租车费用,并在区块链系统中声明需要取回剩余的租车费用的所有权;
步骤六,待User的租车费用成功划分完毕后,Owner在区块链系统中取回应得的租车费用到自己的账户余额;
步骤七,User在区块链系统中取回剩余租车押金到自己的账户余额;
上述步骤二至步骤七中,每个步骤都采用了对应的零知识证明,用于证明和验证交易过程中的相关参数,并隐藏关键信息,以及取消交易各方在操作过程中的关联关系;
步骤四的具体操作如下:
Declare:Owner执行Declare操作声明零知识金额cmts的所有权,租车服务结束后通过共享汽车实际被租用距离dist求出总租车费用cost,以及用于锁定cost的承诺cmtt;车载可信硬件使用其内置私钥sk对cost及序列号进行签名,得到验证签名σ=Signsk(cost,sn);
Owner生成一个零知识证明πdeclare,证明如下内容:
①cmtt=SHA256(cost|r);
②cmts=SHA256(cost|sns|rs);
③cost=pn×dist;其中,pn为租车距离的单价;
④DS=SHA256(dist|sn);
其中,DS为可信硬件对dist用哈希算法求得的数字摘要,sn为标识σ签名的序列码,签名验证通过后sn暴露,确保Owner的Declare操作只允许成功执行一次;
其中,公开参数为DS,cmtt,sn;秘密的参数为dist,cost,r,cmts,sns,rs;
Owner将公开参数、零知识证明πdeclare以及数字签名σ发送到区块链系统中,区块链节点使用公开参数验证πdeclare以及签名σ的正确性,将交易记录在区块链系统中,cmts成为一笔有效的零知识金额,用于Owner进行Collect操作;
步骤五的具体操作如下:
Divide:所有User租车服务结束后,共享汽车上的可信硬件将记录每个User的disti|i∈N*{1,2,…n},并将数据disti|i∈N*{1,2,…n}和Σi∈N*{1,2,…n}disti传给User;可信硬件使用私钥sk对disti|i∈N*{1,2,…n}的数字摘要DS进行签名σ;不同的User根据实际租车里程,通过智能合约对租车费用进行公平划分,并声明需要操作的cmts的所有权;
User生成一个零知识证明πdivide,证明如下内容:
①costi|i∈N*{1,2,…n}=cost×disti|i∈N*{1,2,…n}/(Σi∈N*{1,2,…n}disti);
refundi|i∈N*{1,2,…n}=fees-costi|i∈N*{1,2,…n};其中,refundi为每个User需要回退的金额,fees为租车押金费用;
②cmts=SHA256(refundi|i∈N*{1,2,…n}|sns|rs);
③cmtt=SHA256(cost|r);
④DS=SHA256(disti|i∈N*{1,2,…n}|sn);
其中,公开的参数为DS,cmtt,cmts,sn;私密的参数为cost,costi|i∈N*{1,2,…n},disti|i∈N*{1,2,…n},Σi∈N*{1,2,…n}disti,refundi|i∈N*{1,2,…n},sns,rs,r;
User将公开参数与πdivide以及数字签名σ发送到区块链系统中,区块链节点使用公开参数验证πdivide以及签名σ的正确性,将交易记录在区块链系统中,cmts成为一笔有效的零知识金额,用于User进行Refund操作。
2.根据权利要求1所述的基于区块链的汽车分时租赁交易方法,其特征在于,步骤一的详细操作如下:
Owner提前规定共享汽车的最大行驶里程,User需垫付费用押金,Owner部署智能合约,User的数量根据共享汽车可乘载乘客数量而定,User在自己当前的可租车地点判断共享汽车目前可租用里程是否满足自己的总租车里程后再进行租车。
3.根据权利要求2所述的基于区块链的汽车分时租赁交易方法,其特征在于,步骤二的具体操作如下:
(1)Cost:User进行租车服务前,需要执行Cost操作,即从自己原来的零知识余额cmtU中扣除租车押金费用用于租车服务,并更新自己的零知识余额为cmtU’,即:User从原来自己的零知识余额cmtU中转化一笔零知识金额cmts,其对应的明文金额为fees;
User生成一个零知识证明πcost,证明如下内容:
①原来的零知识余额cmtU=SHA256(vU|snU|rU);
其中,vU为cmtU对应的明文金额,snU为cmtU唯一对应的序列号,rU为私密随机数;
②要支付的零知识金额cmts=SHA256(fees|sns|rs);
其中,fees为租车押金费用,sns为cmts唯一对应的序列号,rs为私密随机数;
③操作后的零知识余额cmtU’=SHA256(vU’|snU’|rU’);
其中,vU’为cmtU’对应的明文余额,snU’为cmtU’唯一对应的序列号,rU’为私密随机数;
④vU大于等于fees,vU-fees=vU’;
其中,公开的参数为snU,cmtU,cmts,cmtU’;私密的参数为vU,rU,fees,rs,vU’,snU’,rU’,sns;
user将公开参数与πcost发送到区块链系统中,区块链节点使用公开参数验证πcost的正确性,将交易记录在区块链系统中,User的零知识余额更新为cmtU’;
(2)Commit:User执行Commit操作与智能合约交互,用Cost操作产生的零知识金额cmts给智能合约账户初始化账户余额,用于后面智能合约进行自动化划分租车费用;
User生成一个零知识证明πcommit,证明如下内容:
①cmts=SHA256(fees|sns|rs);
②零知识金额cmts存在于以RTcmt为根的默克尔树中;
其中,公开的参数为sns;秘密的参数为cmts,fees,rs;
User将公开参数与πcommit发送到区块链系统中,区块链节点使用公开参数验证πcommit的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,智能合约账户余额初始化为fees。
4.根据权利要求1所述的基于区块链的汽车分时租赁交易方法,其特征在于,步骤六的具体操作如下:
Collect:Owner通过Collect操作收取租车费用cost到自己的账户,并更新账户零知识余额;
Owner生成一个零知识证明πcollect,证明如下内容:
①cmtt=SHA256(cost|r);
②当前的零知识余额cmtO=SHA256(vO|snO|rO);
③要存入的零知识金额cmts=SHA256(cost|sns|rs);
④操作完成后零知识余额cmtO’=SHA256(vO’|snO’|rO’);
⑤vO+cost=vO’;
其中,公开的参数为snO,sns,cmtO,cmtO’,cmtt;私密的参数为vO,rO,cost,r,rs,vO’,snO’,rO’,cmts;
Owner将公开参数与πcollect发送到区块链系统中,区块链节点使用公开参数验证πcollect的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,Owner的零知识余额更新为cmtO’。
5.根据权利要求4所述的基于区块链的汽车分时租赁交易方法,其特征在于,步骤七的具体操作如下:
Refund:User通过Refund操作领回剩余押金到自己的账户,并更新账户零知识余额;
User生成一个零知识证明πrefund,证明如下内容:
①refundi|i∈N*{1,2,…n}=fees-costi|i∈N*{1,2,…n};
②原来的零知识余额cmtU=SHA256(vU|snU|rU);
③要转化的零知识金额cmts=SHA256(refundi|i∈N*{1,2,…n}|sns|rs);
④操作后的零知识余额cmtU’=SHA256(vU’|snU’|rU’);
⑤vU+refundi|i∈N*{1,2,…n}=vU’;
其中,公开的参数为:snU,sns,cmtU,cmtU’;秘密的参数为:fees,vU,rU,rs,vU’,snU’,rU’,refundi|i∈N*{1,2,…n},cmts;
User将公开参数与πrefund发送到区块链系统中,区块链节点使用公开参数验证πrefund的正确性,将交易记录在区块链系统中,cmts由于sns的公开而失效,User的零知识余额更新为cmtU’。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918534.8A CN112182640B (zh) | 2020-09-04 | 2020-09-04 | 基于区块链的汽车分时租赁交易方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918534.8A CN112182640B (zh) | 2020-09-04 | 2020-09-04 | 基于区块链的汽车分时租赁交易方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112182640A CN112182640A (zh) | 2021-01-05 |
CN112182640B true CN112182640B (zh) | 2022-09-02 |
Family
ID=73925795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010918534.8A Active CN112182640B (zh) | 2020-09-04 | 2020-09-04 | 基于区块链的汽车分时租赁交易方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182640B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113112340A (zh) * | 2021-04-21 | 2021-07-13 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链技术的维克里拍卖方法、装置及系统 |
CN113674483A (zh) * | 2021-08-25 | 2021-11-19 | 安徽高山科技有限公司 | 一种基于区块链的汽车租赁方法 |
CN114092189A (zh) * | 2021-11-22 | 2022-02-25 | 山东大学 | 基于零知识证明和同态加密的区块链可监管融资租赁方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537640A (zh) * | 2018-04-13 | 2018-09-14 | 武汉大学 | 一种基于区块链技术的租赁管理方法 |
CN109858281B (zh) * | 2019-02-01 | 2020-09-18 | 杭州云象网络技术有限公司 | 一种基于零知识证明的区块链账户模型隐私保护方法 |
CN111428268B (zh) * | 2020-03-24 | 2022-08-02 | 山东大学 | 基于区块链的v2g交易隐私保护方法、设备及系统 |
-
2020
- 2020-09-04 CN CN202010918534.8A patent/CN112182640B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112182640A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112182640B (zh) | 基于区块链的汽车分时租赁交易方法 | |
KR102309819B1 (ko) | 블록체인 기반의 거래 시스템 및 그 방법 | |
TWI696374B (zh) | 基於區塊鏈的業務執行方法及裝置、電子設備 | |
Hu et al. | Parking management: A blockchain-based privacy-preserving system | |
CN110009435A (zh) | 基于区块链的发票报销方法及装置、电子设备 | |
CA3088610A1 (en) | Blockchain methods, nodes, systems and products | |
CN108713209B (zh) | 维修工位的管理方法、系统及数据管理服务器 | |
CN109598147B (zh) | 基于区块链的数据处理方法及装置、电子设备 | |
CN109559224A (zh) | 征信评估方法及装置、电子设备 | |
CN111815322B (zh) | 一种基于以太坊的具备可选隐私服务的分布式支付方法 | |
US20120089494A1 (en) | Privacy-Preserving Metering | |
JP2000511660A (ja) | 暗号的保護通信を伴うシステムおよびその方法 | |
CN110889762B (zh) | 一种数据处理方法、设备及介质 | |
CN113222567B (zh) | 基于区块链技术的预付卡管理方法、装置及区块链节点 | |
CN110163634B (zh) | 基于区块链的退款方法和装置、电子设备 | |
CN113283957B (zh) | 一种基于区块链的实体产品交易方法 | |
WO2019021019A1 (en) | APPARATUS AND METHOD FOR PERMITTING SHARING OF GOOD | |
CN112241891A (zh) | 一种基于联盟链的充电交易管理系统 | |
CN110852851B (zh) | 基于区块链的交通工具共享方法、装置及可读存储介质 | |
CN111242603B (zh) | 基于区块链的乘车结算方法及装置 | |
Dold | The GNU Taler system: practical and provably secure electronic payments | |
CN110033367A (zh) | 基于区块链的合同记录方法及装置、电子设备 | |
CN112513907A (zh) | 提供数字资产交换协议的装置和方法 | |
CN114584311A (zh) | 一种基于信誉的安全动态智能车位共享方法 | |
Khoumsi | An Efficient Blockchain-based Electric Vehicle Charging Management System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |