一个基于盲签名技术的智能合约模型

2018-07-03 11:32黄晓芳
西南科技大学学报 2018年2期
关键词:合约消息区块

杨 茜 黄晓芳

(西南科技大学计算机科学与技术学院 四川绵阳 621010)

“智能合约”概念于1996年由学者Nick Szabo初次定义:一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在其上执行这些承诺的协议[1],其基本理念是将合约条款嵌入到硬物理实体并通过协议与用户接口来促进合约的自动执行。而区块链[2]的提出使智能合约的执行获得了可信的环境,其去中心化、不可篡改等特质使得合约能够公平公正执行。但是,区块链中的交易存储在公开的全局账本中,智能合约的整个生命周期均全网广播并被记录,即使合约方可通过伪造公钥来提高匿名性,攻击者仍能通过分析获取到交易信息中的关联关系发现匿名地址对应的真实身份信息[3],并且大部分金融合同交易的真实数据涉及到机密不便公开,此时合约的隐私得不到保护,这便成为去中心化智能合约被广泛采纳的主要障碍。本文针对以上问题,提出基于部分盲签名算法的智能合约模型,该模型通过引入管理节点达到更好的匿名性,使用部分盲签名算法改善智能合约的隐私保护问题,使得区块链节点无法知晓合约方的身份、所签署合约等关键信息。本文引入部分盲签名技术及管理节点并未改变区块链底层协议,故与以太坊系统兼容。

1 相关工作

1.1 区块链技术研究

区块链(blockchain),即通过去中心化和去信任方式集体维护一个可靠数据库的技术方案[2]。该方案让系统的任意多个节点把一段时间内所有信息交流的数据通过密码学算法计算和记录到一个数据块(block)中,并且生成该数据块的唯一标识(hash值)用于链接(chain)下个数据块和校验,系统所有参与节点通过共识算法的执行来确定记录的真实性,并维护数据的一致性。区块链把数据分为若干区块,每个区块依据特定的信息链接到上一区块,前后顺次相连呈现一套完整的数据。每个区块的块头包含前一区块的哈希值,该值是对前一区块的块头进行哈希函数计算而得到,各区块间都由这样的哈希值与先前的区块相连构成一个链条,如图1所示。

图1 区块链工作原理Fig. 1 Working principle of blockchain

1.2 智能合约研究现状

用智能合约替代纸质合约可以大大地减少在合约制定、控制协议和执行效能上的人工花费与计算成本,而且能使以前无法完成的新类型合同成为可能,并且智能合约能够弱化风险、扩大信任以及增加其他缔约机会[4]。在文献[5]中Nick Szabo定义了智能合约的3大重要性质:可观察性、可验证性与接入控制。将智能合约和区块链技术相结合则更好地满足上述3点,区块链可实现智能合约的去中心化,即智能合约是基于安全公开账本且没有中心化监管执行的合约,参与者可以在没有第三方监管的前提下自动履行合约内容。如图2所示是智能合约的概念模式:通常情况下,智能合约封装预定义的若干状态、转换规则、触发条件以及应对操作等,经各方签署后以程序代码的形式附着在区块链数据上, 经P2P网络传播和节点验证后记入各个节点的分布式账本中,区块链可以实时监控整个智能合约的状态,在核查外部数据源确认满足特定的触发条件后激活并执行合约[6]。

图2 智能合约概念模式Fig. 2 Conceptual model of smart contract

以太坊[7]是首个具有图灵完备编程语言的区块链平台,Augur[8],Counterparty[9]等基于以太坊或者通过分叉而来的智能合约应用也随之产生。但是,现有的智能合约模型并未保证交易的隐私性,其主要关注点在于交易的公平性,Asokan[11]等所提出的公平交换协议中所需的中心化可信第三方等特质被Liu等[10]基于以太坊的智能合约所替换,但他们将交换的数字内容直接存储在智能合约中,因此合约的隐私无法得到保障。Hawk[12]利用可信计算环境来解决合约内容的隐私问题,而不是针对代码自身或是用户查询请求的隐私性。Quorum[13]基于实际业务情况将数据划分为隐私和公开两部分进行操作以保护用户隐私。

1.3 盲签名技术

1983年Chaum[14]首次提出盲数字签名的方案,即签名者在不知道所签文件或消息具体内容的情况下进行签署,而发送者却可以从签名者关于盲化后文件或消息的签名中提取出签名者关于真实文件或消息的有效签名,因此,盲签名具有盲性及不可伪造性。此后众多学者又基于此构造出不同的盲签名方案,1996年Abe等[15]提出了部分盲签名方案,即允许签名者在签名中嵌入与消息发送者事先确定的公共消息,例如签署时间等,且这些信息无法被移除或非法篡改。而后Abe[16]等基于盲签名安全特性进行相应的安全证明得出部分盲签名的安全特性,即部分盲性和不可伪造性。

2 基于区块链的智能合约模型

2.1 模型架构概述

本模型主要涉及合约方、管理节点、共识节点等部分,共同维护该智能合约模型的有效安全执行。引入去信任的第三方作为管理节点,负责消息的盲化处理、全网广播/监听合约消息、接收/验证消息等。模型架构如图3所示。

图3 模型架构设计Fig. 3 Architecture design for models

本模型主要针对联盟链,借助以太坊区块链不仅能维护存储匿名地址余额的全局账本且能够执行用户自定义程序的特点,并做出以下假设:(1)各节点通过不安全信道连接,且各节点行为是任意的;(2)合约方及共识节点在区块链通信中可采用一次性公钥地址,该公钥地址可能与其身份无关联。

2.2 部分盲签名算法

部分盲签名算法主要由系统建立、密钥生成、签名发布和签名验证等4个算法构成[15]。其中,签名发布算法又分为消息盲化、公共消息生成、签名以及脱盲等4个步骤,是消息发送者和签名者间的交互协议。以下为密钥生成算法、签名发布算法各步骤与签名验证函数各符号。

KeyGen(sk,P):密钥生成函数。随机选择sk∈N*计算pk=sk*P。pk为公钥,sk为私钥。

Blind(m):消息盲化函数。输入原始消息m,输出盲化后消息m*。

τ(c) :公共消息生成函数。输入公共消息c,输出关于c的格式化结果。

BlindSig(sk,τ(c),m*):签名算法。输入私钥sk,公共消息τ(c),盲化后消息m*,计算输出部分盲签名σ*。

Blind-1(σ*):脱盲函数。输入部分盲签名σ*,输出m的签名σ。

Rl(m,τ(c)):关系函数。输入消息m,公共消息τ(c),输出签名σ,表示σ是m的签名,且公共消息为τ(c)。

Ver(sk,pk,σ):签名验证函数。指定合约方作为签名验证者进行验证,输入sk,pk和签名σ,输出验证结果,若合法则输出1,否则输出0。

2.3 基于盲签名技术的智能合约模型

本文模型主要包括合约建立及合约盲签名两部分。其中主要符号及其含义如表1所示,图4所示为模型执行流程图。

表1 符号标识及其含义Table 1 Symbol identification and its meaning

图4 模型执行流程图Fig. 4 Flowchart of model execution

(1)合约建立

1) 管理节点I调用密钥生成函数生成公私钥对。

2)A,B使用自然语言制定合约条款M,而后编写合约代码m。

3) 借助形式化检验工具验证合约代码m与合约条款M的一致性及代码正确性。

4)A,B分别计算σA,σB,对确认无误的合约代码m签名后发送给I。此处签名由以太坊的私钥生成,而非合同签名。

5)I对σA,σB进行校验,若签名合法则继续,否则执行步骤2)。

(2)合约盲签名

4) 某一合约方执行签名验证算法,若Ver(sk,pk,σCi)=1成立个数满足共识协议的容错能力,则继续新合约的建立,否则公开该签名。

2.4 模型安全性分析

定理1 管理节点的可靠性。

在模型中,管理节点I并非可信第三方,其有可能作为恶意节点篡改合约内容或是与其余各方合谋。但是若I将合约信息泄露,其将会受到罚款大额代币的处罚且其签名将被公开而后信誉值降低;若I与某合约方共谋试图篡改合约信息,其将在验证得到m改变后遭受上述类似处罚;本方案安全性基于文献[15],公共消息c的计算运用陷门函数,由此可知I试图伪造c无法成功。

定理2 指定任一合约方执行部分盲签名的签名验证算法即限制验证性,有效增强合约信息的隐私性[17]。

因为验证时须用到指定验证者的私钥,故其他人无法验证。若想验证该消息,则须通过pk=sk·P获取,但涉及到离散对数的问题,所以其他人无法获取验证者私钥,且此处选择合约方作为验证者能对管理节点与共识节点进行监督,从而增强安全性及隐私性。

定理3 引入部分盲签名算法,在进行共识之前约定当前日期等参数为公共消息,故对共识并无影响。

本文模型虽引入部分盲签名算法,但并未改变区块链底层协议,且虽隐藏了合同中涉及到用户隐私的关键信息,但仍存在协商好的公共消息部分,故共识阶段未受影响。

3 结束语

本文结合盲签名算法的基本思想,提出了一种基于部分盲签名技术的智能合约模型。该模型通过引入管理节点及结合部分盲签名算法更有效地保护了合约隐私,且引入管理节点后仍是去中心化的,最后对所提出模型安全性进行了分析。

本文侧重于对盲签名算法在区块链中使用的认证和分析,因此仅考虑模型的建立与安全性分析,在下一步工作中会将理论模型与实际系统相结合,完成进一步的验证与分析。

[1] SZABO N. Smartcontracts: building blocks for digital markets[M]. Extropy, 1996.

[2] NAKAMOTO S. Bitcoin: A peer-to-peerelectronic cash system[J]. Consulted, 2008.

[3] MEIKLEJOHN S, POMAROLE M, JORDAN G, et al. A fistful of bitcoins: characterizing payments among men with no names[C]//Proceedings of the 2013 Conference on Internet Measurement Conference. ACM, 2013: 127-140.

[4] Smart contracts: 12 use cases for business and beyond chamber of digital commerce[EB/OL]. https://digitalchamber.org/smart-contracts/, 2016-12-06.

[5] SZABO N.Formalizing and securing relationships on public networks[J]. First Monday, 1997, 2(9).

[6] 袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, (4): 481-494.

[7] BUTERIN V. A next-generation smart contract and decentralized application platform[J]. White Paper, 2014.

[8] Decentralized Prediction Markets | Augur Project[EB/OL]. https://augur.net/.

[9] Pioneering peer-to-peer finance[EB/OL].https://counterparty.io/.

[10] ASOKAN N, SHOUP V, WAIDNER M. Optimistic fair exchange of digital signatures[J]. IEEE Journal on Selected Areas Incommunications, 2000, 18(4): 593-610.

[11] LIU J, LI W, KARAME G O, et al. Towards fairness of cryptocurrency payments[J]. ArXiv Preprint ArXiv:1609.07256, 2016.

[12] KOSBA A, MILLER A, SHI E, et al. The blockchain model of cryptography and privacy-preserving smart contracts[C]//Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 839-858.

[13] MEIKLEJOHN S, POMAROLE M, JORDAN G, et al. A fistful of bitcoins: characterizing payments among men with no names[C]//Proceedings of the 2013 Conference on Internet Measurement Conference. ACM, 2013: 127-140.

[14] CHAUM D. Blind signatures for untraceable payments[C]//Advances in Cryptology. Springer, 1983: 199-203.

[15] ABE M, FUJISAKI E. How to date blind signatures[C]//Advances in Cryptology-ASIACRYPT 1996. Springer, 1996: 244-251.

[16] ABE M, OKAMOTO T. Provably secure partially blind signatures[C]//Advances in Cryptology-CRYPTO 2000. Springer, 2000: 271-286.

[17] 李彦, 张伟哲. 指定验证者的部分盲签名方案[J]. 中国高新区, 2017, (11): 30.

猜你喜欢
合约消息区块
区块链:一个改变未来的幽灵
区块链:主要角色和衍生应用
一张图看5G消息
区块链将给媒体业带来什么
区块链+媒体业的N种可能
消息
消息
消息