《基于区块链的智能合约形式化表达规范》_第1页
《基于区块链的智能合约形式化表达规范》_第2页
《基于区块链的智能合约形式化表达规范》_第3页
《基于区块链的智能合约形式化表达规范》_第4页
《基于区块链的智能合约形式化表达规范》_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JH/CIE159—2020

中国电子学会标准

JH/CIE159—2020

基于区块链的智能合约形式化表达规范

FormalExpressionSpecificationofSmartContractBasedonBlockchain

(征求意见稿)

在提交反馈意见时,请将您知道的相关专利连同支持性文件一并附上。

XXXX-XX-XX发布XXXX-XX-XX实施

中国电子学会发布

JH/CIE159—2020

基于区块链的智能合约形式化表达规范

1范围

本标准规定了智能合约有关的术语和定义,以及智能合约语言的结构、语法及示例(见附录

A)。

本标准适用于通用智能合约设计、开发和使用,也可为区块链厂商和用户提供智能合约平台

构建的技术标准参考。

2规范性引用文件

下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于

本文件。凡是未注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

GB/T1.1-2020标准化工作导则第1部分:标准化文件的结构和起草规则

3术语和定义

3.1智能合约SmartContract

智能合约是一种旨在以数字方式传播、验证或执行多方之间约定的计算机程序和协议。

3.1.1区块链智能合约BlockchainSmartContract

区块链智能合约是部署在区块链上并可在满足预定合约条款和履行条件时自动执行的计算机

代码。

3.1.2适用法律的智能合约SmartContractAppliedtoLegal

适用法律的智能合约是指一种含有合同构成要素、涵盖合同缔约方依据要约和承诺达成履行

约定的计算机协议,本文中在不加区别时简称智能法律合约。

3.1.3智能合约语言SmartContractLanguage

智能合约语言是一种为实现智能合约而创建的编程语言,包含规范智能合约撰写的语法规则。

3.1.4适用法律的智能合约语言SmartContractLanguageAppliedtoLegal

适用法律的智能合约语言是指一种为实现适用法律的智能合约而创建的编程语言。

3.1.5智能合约平台SmartContractPlatform

智能合约平台是一种支持智能合约可执行程序开发、生成、部署、运行、验证的信息网络系

3

JH/CIE159—2020

统。

3.1.6账户Account

账户是指具有一定的格式和结构,用于描述当事人、操作和反映标的等智能法律合约要素的

增减变化情况及结果的载体。账户类型包括用户账户和合约账户,其中,当事人拥有用户账户,

智能法律合约拥有智能合约平台上的合约账户。

3.2合同LegalAgreement

合同是指民事主体之间设立、变更、终止民事法律关系的协议。

3.2.1数据电文DigitalMessage

数据电文是指以电子、光学、磁或者类似手段生成、发送、接收或者储存的信息。

3.2.2合同条款ContractualTerms

合同条款是合同条件的表现和固定化,是确定合同当事人权利和义务的根据。即从法律文书

而言,合同的内容是指合同的各项条款。

4术语间关联

适用法律的智能合约在形式上是一种介于现实法律合同与可执行区块链智能合约之间的过渡

性法律文档。其中,现实法律合同以自然语言为载体,它可翻译成为由适用法律的智能合约语言

撰写的智能法律合约,进而转化为由智能合约语言编写的区块链智能合约。

现实法律合同适用法律的智能合约区块链智能合约

5符号和缩略语

5.1符号

下面符号适用于本文件:

@@中文意思表示

::=表示定义,即“被定义为”

?前置关键词任选

|用于表示同级元素的“或”

{}()包含语句集合

.语句结束符

+零条或多条语句

//注释符

‘’,“”字符串类型

0x十六进制数(用于区块链地址表示)

4

JH/CIE159—2020

,空格用于表示同级元素的并列与分割

5.2缩略语

关键词含义

he,she,his,her,himself,herself,this,the当前的,相当于程序语言中this

=,is相等

:,:::为分隔符,::为属性信息引用

!=,<>,isn’t不相等

all,forall,some,exist全称量词和存在量词

can,must,cannot权利限制,应当限制和禁止限制

origin动作执行前账户的值

after,before,within在…之后(前、内)

did常与after连用,表示某当事人做过某事

true,false布尔值

value当事人所转移的资产数目

and,or,not,implies逻辑符号

>、>=、<、<=、belongsTo关系符号

各种类型的实体,包括:合约、当事人、资产、

Cname,Pname,Aname,Tname,Bname

一般条款、违约条款等实体,统称为Entity

year,month,date,hour,minute,second,

时间符号

now

String,Money,Date,Integer,Float,

类型符号

Boolean,Right,Time

when,while,where条款中的条件标识保留字

transfer,withdraw,deposit资产操作保留字

contract,info,right,party,group,asset,

term,breachterm,arbitrationterm,

语言保留字

contractconclusions,signatureofparty,

additional,serial,of,to,institution

6智能法律合约表示形式

6.1智能法律合约采用书面形式订立合同,属于书面合同。当事人订立智能法律合约,采取要约、

承诺方式。

6.2智能法律合约遵循《民法典》《电子签名法》及有关法律法规相关条文,具有与现实法律合同

相同的法律效力,对各文本使用的词句推定具有相同含义。各文本使用的词句不一致的,应当根

据合同的相关条款、性质、目的以及诚信原则等予以解释。

6.3智能法律合约可转化为数据电文表示的可执行程序,经智能法律合约签订过程(参见附录B)

进而在智能合约平台加以自动化实施。

5

JH/CIE159—2020

6.4智能法律合约可以采用中文和英文联合编写形式,根据具体应用不同可选择使用。

7智能法律合约构成要素

本标准可涵盖以下内容:当事人信息、标的、数量、质量、价款或者报酬、履行期限和方式、

违约责任、解决争议的方法等。在智能法律合约语法中,本标准由包含在合约框架内的智能法律

合约构成要素组成,包括:合约名称、当事人描述、标的、合约条款、合约订立、附加信息等,

其中,合约条款包括:一般条款、违约条款、仲裁条款等。此外,智能法律合约编写过程中涉及

权利和义务、资产操作、表达式、时间表示等语法规范。上述要素之间关系如下图所示。

合约名称

当事人描述

标的

一般条款权利和义务

合约框架

表达式时间表示

合约条款违约条款资产操作

仲裁条款

合约订立

附加信息

8智能法律合约语法

8.1合约框架

智能法律合约包括:合约名称及合约内容,合约内容包括:当事人描述、资产描述、合约条

款、附加信息、合约订立。

Contract::=Title{Parties+Assets+Terms+Additional+Signs+}

8.2合约名称

合约名称包含:合约标题和合约序号。语法如下:

@@合约标题:合约序号

Title::=contractCname(:serialChash)?

解读:合约序号是指本智能法律合约所求取的唯一性编号。

例:

@@买卖合同:0x827198…ab193

6

JH/CIE159—2020

contractpurchase:serial0x827198…ab193

8.3当事人描述

当事人描述包含当事人的名称或者姓名和住所,以及当事人所拥有的属性及特征描述(包含

常量和变量),可通过身份认证技术保证当事人身份唯一性。语法如下:

@@当事人群体?名称{属性域+}

Parties::=partygroup?Pname{field+}

其中,属性域用于宣称当事人所拥有的属性及特征,由冒号分割的二元组表示,左部为属性

名称,右部为属性值,表示如下:

@@属性:(常量|类型)

field::=attribute:(constant|type)

解读:属性值可为常量或类型声明,当属性值为类型声明时,属性值为空。

实体的属性值引用采取Entity::attribute形式,其结果为该属性的值。

例1:

@@当事人信息:卖家,登记信息包括:当事人账号:0x7c84e8…2934;姓名:张三。

partySeller{account:0x7c84e8…2934name:‘ZhangSan’}

解读:当事人账号指该当事人在区块链中所拥有的用户账户地址,可用于鉴别身份,通常由

哈希值表示。

例2:

@@群组当事人信息:竞标人,登记信息包括:当事人账号。

partygroupVoters{account:Integer}

解读:群组当事人可表示为动态加入的当事人列表。

8.4标的

合约标的指当事人之间存在的权利义务关系,一般分为物、行为、智力成果等,是智能法律

合约成立的必要条件。在智能法律合约中标的用资产来表示,在区块链中应存在该资产的描述,

表示如下:

@@资产资产名称{资产描述{属性域+}资产权属{属性域+}}

Assets::=assetAname{info{field+}right{field+}}

解读:资产的定义包含资产的名称,资产的属性及对资产的权利。

info用以唯一标识该资产和表述合约条款所涉及的属性,right用于明确资产的权属,通常包

括:所有权(ownership)、使用权(useRight)、占有权(possessRight)、收益权(usufruct)、处分

权(disposeRight),可作为类型使用,用户可根据实际需要自行添加权属。

例1:

@@合约标的:房屋,属性信息包括:产权编号:0x71a2f8…78d93;面积:50;用途:商

业;价格:货币资产;权属信息包括:收益权、使用权

assetHouse{

info{serial:0x71a2f8…78d93area:50usage:“business”price:Money}

right{houseBenefitRight:usufructhouseUse:useRight}

}

解读:usufruct与useRight类型用于记录权属信息;Money用于表示货币资产。

7

JH/CIE159—2020

例2:

@@本金的120%

$120%*principal

解读:本金为Money类型的资产。

资产表达式(也被称为资产表示)被用于在条款中使用该资产,定义如下:

@@资产表达式:$(具体数量)?(具体权属)?资产名称

AssetExpression::=$(amount)?(rightof)?Aname

解读:Aname为智能法律合约中声明的资产,权属(right)是指该资产中宣称的权属,如果

不添加权属说明,则默认为所有权或权属定义中的第一个权属。

例3:

@@20元。

$20RMB

解读:系统中预定义的货币资产包括:人民币(RMB)、美元(USD)等。

例4:

@@在智能法律合约中声明房屋资产。

$House

例5:

@@在智能法律合约中声明资产House的50%所有权。

$50%ownershipofHouse

8.5合约条款

合约条款类型包括一般条款、违约条款、仲裁条款。

Terms::=generalTerm|breachTerm|arbitrationTerm

8.5.1一般条款

一般条款包含条款名、条款当事人、当事人必须、可以或禁止履行的行为、条款执行条件、

条款执行过程中资产的转移、以及条款执行后应满足的结果。语法如下:

@@条款名:当事人(必须|可以|禁止)行为(属性域+)

(执行所需的前置条件)?

(伴随的资产操作+)?

(执行后需满足的后置条件)?

generalTerm::=termTname:Pname(must|can|cannot)action(field+)

(whenpreCondition)?

(whiletransactions+)?

(wherepostCondition)?.

解读:条款声称某当事人在何种条件下必须、可以或禁止采取何种行为,同时伴随着何种资

产操作,完成后应满足何种条件,具体包括:

1)preCondition是由表示前置条件的表达式组成,在当事人执行动作之前进行检测,如果前

置条件转化布尔表达式后值为真,则可以执行条款;如果值为假,不能执行条款。

2)transactions是表示资产操作,描述条款执行过程中伴随的资产操作情况。

8

JH/CIE159—2020

3)postCondition是由表示后置条件的表达式组成,用于描述条款执行完成后应满足的条件,

如果满足,则本条款执行成功。

行为是对其后属性列表的操作,它由智能合约平台的程序实现,后置条件用于检查该行为结

果是否正确。

例:

@@条款1:竞拍者(角色)可以(权利)在竞拍开始后(前置条件)出价竞拍(动作),向

合约账户转入大于当前最高价的资金(资产操作),出价最高者为得主(后置条件)。

termno1:biddercanbid()

whenafterbidBegin

whiledepositvalue>highestPrice

wherewinner=thisbidder.

8.5.2违约条款

违约条款是指双方约定的当事人不履行智能法律合约中规定的义务时或履行义务不符合约定

时,应当承担的法律责任。即在指定条款的后置条件未得满足且此违约条件的前置条件得以满足

时,当事人必须或可以执行违约处理,同时伴随某种资产转移,执行后应满足某种状态。

@@违约条款条款名(针对条款名+)?:当事人(必须|可以)违约处理(属性域+)

(执行所需的前置条件)?

(伴随的资产操作+)?

(执行后需满足的后置条件)?

breachTerm::=breachtermBname(againstTname+)?:Pname(must|can)action(field+)

(whenpreCondition)?

(whiletransactions+)?

(wherepostCondition)?.

解读:违约条款通常可规定违约者必须执行的动作或受害者可以执行的动作。

例:

@@如果买家在预定了购买房屋之后,房屋主人(角色)把房屋租出去了(前置条件),那

么房屋主人应该(权利)赔偿(动作)买家违约金(资金转移)。

breachtermno6againstno4:houseOwnermustcompensate()

whenhouseOwnerdidlendafterbuyerdidorder

whiletransferdefaulttobuyer.

8.5.3仲裁条款

智能法律合约中以仲裁条款形式规定解决争议的方法,具体争议可由自然语言陈述,并可指

定仲裁机构,语法如下:

@@(所声明之争议)?由某仲裁机构进行裁决。

arbitrationTerm::=arbitrationterm:(Thestatementofanycontroversy)?

administeredbyinstitution:instName.

例:

@@凡因本智能法律合约引起的或与其有关的一切劳动争议,均由北京劳动仲裁

委员会按照有效仲裁规则进行裁决。

9

JH/CIE159—2020

arbitrationterm:Anylaborcontroversyorclaimarisingoutoforrelatingtothis

contract,orthebreachthereof,shallbesettledbyarbitrationadministeredby

institution:BeijingLaborArbitrationCommission.

解读:仲裁机构可选择为区块链网络中具有司法管辖权的节点。

8.6权利和义务

当事人在条款中有两种行为限制,分别是权利与义务。

8.6.1权利

权利限制使用关键词can,用于当事人在满足前置条件的基础下可以选择执行某动作的条款,

当事人也可以选择不执行。

例:

@@条款2:投票者(角色)可以(权利)在主席发表提案后(前置条件)开始投票(动作)。

termno2:votercanvote(target)

whenafterchairPersondidpropose.

解读:投票属于权利,投票者可以行使自己的权利为提案投票,也可以不行使自己的权利,

放弃投票。

8.6.2义务

义务限制包括应当限制与禁止限制。

1)应当限制使用关键词must,用于当事人在规定条件内必须执行某动作的条款。

例1:

@@条款3:借贷者(角色)需要(权利)在借贷后两年内(前置条件)归还(动作)借款。

termno3:borrowermustreturn(loan)

whenwithin2yearafterborrowerdidlend.

解读:归还属于义务,当事人需要在规定期限内履行自己的义务。

2)禁止限制使用关键词cannot,用于当事人在一定情况下不应该执行某动作的条款。

例1:

@@条款4:房屋所有者(角色)在买家预定后(前置条件),不能(权利)再把房屋租出去

(动作)。

termno4:houseOwnercannotrent()

whenafterbuyerdidorder.

对于一条禁止条款可以有多种限制方式,可以按执行条件进行限制,也可以直接对执行

结果进行限制,如对于“投票者不可以给自己投票”,如果直接投票给候选人,可以有如下两

种表述方式:

例2:

@@条款5_1:如果选举人(角色)的投票对象是自己(执行条件),选举人不能(权利)执

行投票(动作)。

termno5_1:votercannotelect(target)

whentarget=thisvoter.

10

JH/CIE159—2020

例3:

@@条款5_2:如果选举人(角色)投票结果是使自己选票加一(执行结果),选举人不能(权

利)投票(动作)。

termno5_2:votercannotelect(target)

wherethisvoter::candidate=thisvoter::origincandidate+1.

解读:对条款5_1,如果投票者将选票给代理人,再由代理人投给投票者,这种行为将被许

可;而用条款5_2直接对执行结果进行限制则可避免上述行为。

8.7资产操作

资产操作是指智能法律合约执行过程中对资产的不同操作方式,通常用来实现标的物在不同

账户之间的转移,资产操作分为三种:

1)存入deposit:当事人主动由其用户账户向合约账户存入资产,作为条款的执行条件使用,

可以直接指定存入的资产或根据价值关系进行限制,后者在关系满足时才能转移指定的资产,

语法如下:

@@存入(满足某种价值关系的)?资产描述

Deposit::=deposit(valueRelationOperator)?AssetExpression

例1:

@@存入大于当前最高价的金额

depositvalue>highestPrice

解读:在竞拍条款中要求存入金额大于目前最高价才能执行竞拍操作,其中highestPrice

表示当前最高价,为货币类型(Money)资产。

例2:

@@存入大于10元的金额

depositvalue>$10RMB

2)取回withdraw:当事人执行条款过程中从合约账户中取回一定资产,语法如下:

@@取回指定资产。

Withdraw::=withdrawAssetExpression

例3:

@@取回本金和利息(资产表达式中数额*(1+息率))

withdrawprincipal*(1+rate)

解读:在执行取款条款时,可以取回本金和利息。

3)转移transfer:当事人执行条款过程中从当前合约账户向其他当事人转移一定资产,语法

如下:

@@转移指定资产到某当事人。

Transfer::=transferAssetExpressiontotarget

例4:

@@向卖家转移保证金。

transferwelfaretoseller

解读:welfare是买家事先存入的保证金,为Money类型,在买方确认收货时,会将事先

存入合约账户的保证金转给卖家。

条款可以有多条资产操作语句:

例5:

11

JH/CIE159—2020

@@条款6:借贷者(角色)可以(权利)抵押自己的房子(动作),将房屋的所有权存

入合约账户,同时取出约定好的资金(资产操作)。

termno6:borrowercanmortgage()

whiledeposit$HouseandwithdrawHousePrice.

8.8表达式

智能法律合约中支持采用表达式规范条款条件以及用于构成智能法律合约中其他要素,条款

条件(包括前置条件与后置条件)中的表达式结果应可直接转化为布尔值。表达式中的符号包括:

1)逻辑符号,包括:and、or、not、implies;

2)关系符号,包括:>、>=、<、<=、=、!=、belongsTo;

3)算术符号,包括:+、−、∗、/;

4)常量符号,包括:数字、字符串、true、false;

5)时间符号,包括:month、day、year、hour、minute、second、now;

6)类型符号,包括:String、Money、Date、Integer、Float、Boolean、Right、Time。

8.9时间表示

时间表示由时间点表达式和时间段表达式构成。

8.9.1时间点表达式

时间点表达式分为四种:时间变量、时间常量、全局查询、动作完成时间查询。

1)时间变量是指日期(Date)类型的变量。

2)时间常量是指固定时间的值,比如2019年11月18日。

3)全局查询是指获取与智能法律合约运行相关的时间数值,如获取区块链智能合约生效时

间(effective_date)、获取当前时间(now),它是由智能合约平台提供接口加以实现的。

4)动作完成时间查询是指某个角色完成某项动作的时间,其表达式语法如下:

@@动作完成时间查询:(任意|存在|当前)?当事人做某动作的时间。

ActionEnforcedTimeQuery::=(all|some|this)?partydidaction

解读:根据当事人为个体或群体情况,可将时间查询分为如下两种情况:

当事人为个体时,无须添加冠词all、some、this。

例:

@@买家支付完成的时刻。

buyerdidpay

当事人为群体时,可通过添加冠词all、some、this查询特定时间。

1)冠词all:表示群体当事人中最后一个完成某动作的时间,若存在任意个体未完成,

则查询结果为未完成。

例1:

@@所有投票者投票完成的时刻。

allvoterdidvote

12

JH/CIE159—2020

2)冠词some:表示群体当事人最近一个完成某动作的时间,若所有个体都未完成,则

查询结果为未完成。

例2:

@@竞标者群体中最近一个完成拍卖动作的时刻。

somebidderdidbid

3)冠词this:表示当前条款执行方若属于该群体,则查询结果为该个体的完成时间。

例3:

@@本人投票完成的时刻。

thisvoterdidvote

8.9.2时间段表达式

时间段分为时间变量和时间常量两类。

1)时间变量是指时间(Time)类型的变量;

2)时间常量是指固定长度的时间,如1天、2小时等。

时间段表达式定义如下:

@@(目标时间)?(是|否)在基础时间点(之前|之后)

TimePredicate::=(targetTime)?(is|isn’t)(before|after)baseTime

解读:targetTime和baseTime都是时间点,如果没有目标时间,则默认与当前时间进行比较。

例1:

@@本人投过票之后且所有人投票完成之前

(afterthisvoterdidvote)and(beforeallvoterdidvote)

例2:

@@本人投票完成时刻是在有效期之后。

thisvoterdidvoteisaftereffective_date

边界时间段表达式定义如下:

@@边界时间点(之前|之后)一段时间(内)?

BoundedTimePredicate::=(within)?boundary(before|after)baseTime

解读:boundary为时间段,baseTime为时间点

例3:

@@在拍卖结束前的三天内。

within3daybeforeauctionEnd

例4:

@@在拍卖结束前的三天以前。

3daybeforeauctionEnd

8.10合约订立

@@合约订立:(所有当事人的约定)?

Signs::=Contractconclusions:(Thestatementofallparties.)?

{SignatureofpartyPname(当事人签字):

{printed-name(打印名):String,

13

JH/CIE159—2020

signature(法定代表人签字):String,

date(签订日期):Date

},+

}

例:

@@合约订立:本智能法律合约当事人不得以任何形式修改本合约,除非以

书面形式并经双方签字。本合约及其附件构成合约双方的完整协议。本合约

对当事各方及其继承人,受让人均具有约束力。通过签署本协议,各方同意

上述条款。双方各收到一份本协议,并负责维护其条款。双方同意将本合约

转化为智能合约平台的计算机程序,并同意该程序及其执行具有相同法律效

力。

Contractconclusions:Thiscontractmaynotbemodifiedinanymannerunlessin

writingandsignedbybothparties.Thisdocumentandanyattachmentshereto

constitutetheentireagreementbetweentheparties.ThisContractshallbebinding

upontheparties,theirsuccessorsandassigns.Bysigningthisagreement,allparties

agreetothetermsasdescribedabove.Eachofpartieswillreceiveonecopyofthis

agreement,andwillberesponsibleforupholdingitsterms.Bothpartiesagreewith

conversionfromthiscontracttocomputerprogramsonsmartcontractplatform,and

approvethattheprograms’implementationhasthesamelegaleffect.

Signatureofpartyauctioneer(拍卖人签字):

{printed-Name(打印名):YaoSan,

signature(法定代表人签字):0x2319…8DE393,

date(签订日期):2020/7/12

}

8.11附加信息

附加信息给出智能法律合约所需的其它补充条件的定义,包括:合约属性、合约标的、当事

人签名、保证人信息及签名、附加条款、程序变量、数据结构定义,可置于智能法律合约任何位

置,语法如下:

@@属性域+

Additional::=field+

解读:附加信息引用采用(Cname::)?attribute的形式。

例:

@@最高拍卖金额和拍卖停止时间

highestPrice:Money,

biddingStopTime:Date

14

JH/CIE159—2020

附录A

(资料性)

智能法律合约示例及智能合约示例

A.1智能法律合约示例——网络竞买合同

@@网络竞买合同协议书

contractSimpleAuction{

@@甲方信息:拍卖人,登记信息包括:用户账户信息:0x712379218…C4E80。

partyauctioneer{

account:0x712379218…C4E80

}

@@乙方信息:竞买人,属于群体,登记信息包括:用户账户信息:[0x93A8BCD…793968,0x48BD38…

92AC93];账户曾出价累计值:货币资产。

partygroupbidders{

account:[0x93A8BCD…793968,0x48BD38…92AC93]

amount:Money

}

@@当前最高价、最高出价的竞拍者、竞拍结束时间。

highestPrice:Money

highestBidder:bidders

biddingStopTime:Date

@@标的物:竞拍货品,拍卖人需要提供拍卖物的物品名称、数量等相关信息。

assetgood{

info{

name:Name//物品名称

quantity:Integer//物品数量

price:Money//价格

package:String//运送包装

}

}

@@条款1:拍卖人(角色)可以(权利)发起竞拍(动作),在动作执行后,当前最高价应为拍卖人输

入的底价,结束时间为当前时间加上输入的竞拍持续时间(后置条件)。

termno1:auctioneercanStartBidding(reservePrice:Money,auctionDuration:Date)

whenbeforeauctioneerdidStartBidding

wherehighestPrice=reservePriceandbiddingStopTime=auctionDuration+now.

@@条款2:竞买人(角色)可以(权利)在拍卖人发起竞拍后至竞拍结束前(前置条件),进行出价

(动作),如果出价大于目前所给最高价格(资产操作),则出价成功(后置条件)。

termno2:bidderscanBid

whenafterauctioneerdidStartBiddingandbeforebiddingStopTime

whiledepositvalue>highestPrice

wherehighestPrice=valueandhighestBidder=thisbidderandthisbidder::amount=thisbidder::

originamount+value.

@@条款3_1:若竞买人(角色)不是最高出价者,且当前合约账户中存有其押金(前置条件),竞买人

可以(行为分类)取回无效押金(动作),此后该竞买人押金清零(后置条件)。

termno3_1:bidderscanWithdrawOverbidMoney

15

JH/CIE159—2020

whenthisbidder::amount>0andthisbidderisn'thighestBidder

whilewithdrawthisbidder::amount

wherethisbidder::amount=0.

@@条款3_2:若竞买人(角色)是当前最高出价者,且当前合约账户中存有其之前的失败押金(前置条

件),竞买人可以(行为分类)取回无效押金(动作),并登记成为当前竞拍最高价(后置条件)。

termno3_2:bidderscanWithdrawOverbidMoney

whenthisbidder::amount>highestPriceandthisbidderishighestBidder

whilewithdrawthisbidder::amount-highestPrice

wherethisbidder::amount=highestPrice.

@@条款4:拍卖人(角色)可以(行为分类)在竞拍时间结束后(前置条件),收取拍卖成交款(动

作)。

termno4:auctioneercanStopBidding

whenafterbiddingStopTimeandbeforeauctioneerdidStopBidding

whilewithdrawhighestPrice.

@@仲裁条款:凡因本智能法律合约引起的或与其有关的一切争议,均由北京互联网法院管辖。

Arbitrationterm:Anycontroversyorclaimarisingoutoforrelatingtothiscontract,orthebreachthereof,

shallbesettledbyarbitrationadministeredbyinstitution:BeijingIneternetCourt.

@@合约订立:本智能法律合约当事人不得以任何形式修改本合约,除非以书面形式并经双方签字。

本合约及其附件构成合约双方的完整协议。通过签署本协议,各方同意上述条款。双方各收到一份

本协议,并负责维护其条款。双方同意将本合约转化为智能合约平台的计算机程序,并同意该程序

及其执行具有相同法律效力。

Contractconclusions:Thiscontractmaynotbemodifiedinanymannerunlessinwritingandsignedby

bothparties.Thisdocumentandanyattachmentsheretoconstitutetheentireagreementbetweentheparties.

ThisContractshallbebindingupontheparties,theirsuccessorsandassigns.Bysigningthisagreement,all

partiesagreetothetermsasdescribedabove.Eachofpartieswillreceiveonecopyofthisagreement,and

willberesponsibleforupholdingitsterms.Bothpartiesagreewithconversionfromthiscontractto

computerprogramsonsmartcontractplatform,andapprovethattheprograms’implementationhasthe

samelegaleffect.

Signatureofpartyauctioneer(拍卖人签字):

{printed-Name(打印名):YaoSan,

signature(法定代表人签字):0x23198de…393,

date(签订日期):2020/7/12

}

Signatureofpartybidders(竞拍人签字):

{printed-Name(打印名):柳湾,

signature(法定代表人签字):0x877238…201,

date(签订日期):2020/7/12

}

{printed-Name(打印名):秦源,

signature(法定代表人签字):0x9340593…495,

date(签订日期):2020/7/12

}

}

16

JH/CIE159—2020

A.2智能法律合约示例——房屋租赁合同

@@房屋租赁合同协议书

contractHouseLease{

@@甲方信息:出租人,登记信息包括:用户账户信息:0x82384a68…90e72。

partyRenter{

account:0x82384a68…90e72

}

@@乙方信息:承租人,登记信息包括:用户账户信息:0x9845a6b…73c4e。

partyTenant{

account:0x9845a6b…73c4e

}

@@合约属性:出租人押金、承租人押金、房屋租金、总租金、合约起始时间、合约终止时间、支付租金

的时间、租金支付周期。

typecontractInfo{

renterBail:Money

renantBail:Money

rental:Money

totalRental:Money

startLeasingTime:Date

endLeasingTime:Date

payDate:Date

payDuration:Date

}

@@标的物:房屋,出租人应提供产权号、地址、面积、用途、价格等信息。

assetHouse{

info{/*房屋的具体信息*/

ownershipNumber:Integer

location:Address

area:Integer

usage:String

price:Money

}

right{/*所有者可对该资产行使的4种权利*/

houseUseright:useRight

houseUsufruct:usufruct

dispositionRight:Right

ossessionRight:Right

}

}

@@条款1:出租人(角色)可以(行为分类)通过交纳出租人押金(资产转移)来注册房屋信息(动作)。

termterm1:RentercanregisterHouse

whiledepositinfos::renterBail.

@@条款2:承租人(角色)可以(行为分类)在出租人注册房屋之后(前置条件),通过交纳承租人押

金(资产转移)来确认租赁(动作),动作执行之后要求自动记录当前时间为合约的开始时间、且计算截止时

间并设置合约执行有效期和承租人支付租金的时间(后置条件)。

termterm2:TenantcanconfirmLease

whenafterRenterdidregisterHouse

whiledepositinfos::tenantBail

whereinfos::startLeasingTime=nowandinfos::endLeasingTime=endLeasingDuration+now

andinfos::payDate=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论