http://www.7klian.com

FISCO BCOS隐私特性:群/环签名技能实现

pragma solidity ^0.4.24;
· 验证环签名,验证者可通过环参数验证签名的正当性。
相识群/环签名,得从匿名性说起。
在现实世界,匿名性是指主体的行为不会袒露主体的身份,这险些是人类文明降生伊始便存在的需求。
import “./RingSigPrecompiled.sol”;
群签名中的“群”可以领略成一个组织。组织里有一个leader即群主,认真成员打点,,组织里的每个成员都可以匿名地代表组织举办签名。群签名方案主要算法包罗:
    function verify(string signature, string message, string paramInfo) public constant returns(bool) 
应用于区块链的群签名方案需要满意以下两点:
}
从暗码学的角度,匿名性有两种寄义:
LSAG方案中,差异环巨细的环签名存储和计较开销如下:

为了追求完全匿名性,Rivest于2001年提出了一种无群主方案,任何成员可自发地插手组织。该方案中签名隐含的某个参数凭据必然法则构成环状,因而被定名成环签名。本质上“群”和“环”都可领略为多个成员构成的组织,区别在于是否存在一个能打开签名的leader。
改造的偏向
        return ringSig.ringSigVerify(signature, message, paramInfo);
· 生成群签名,群成员通过私钥对信息签名;
     function groupSigVerify(string signature, string message, string gpkInfo, string paramInfo) public constant returns(bool);
    }
在学术界,群/环签名的成长已经较量成熟,基于差异场景降生了许多新的方案。
譬喻,支持群成员主动插手的方案能有效抵挡群主作恶的陷害行为;可取消匿名性的环签名方案支持签名者在特定场所将环签名转换成一个普通签名,以证明本身的签署者身份;支持前项安详的方案能担保用户私钥泄露差池之前签名的匿名性发生影响。

由于群签名存在一个拥有绝对权限的群主脚色,所以群签名的匿名性是相对的。这种特性合用于需要禁锢参与的场景。
pragma solidity ^0.4.24;

群/环签名客户端挪用处事端的RPC接口完成群/环的建设、成员的插手以及签名的生成;同时客户端与区块链平台交互,将签名信息上链;最后客户端挪用预编译合约验证链上的签名。更多的操纵步和谐技能细节,请参阅群/环签名客户端指南。参考链接如下:https://github.com/FISCO-BCOS/group-signature-client
}

要完成预编译合约的挪用,首先需要以solidity合约方法声明合约接口。

群/环签名是一种非凡的签名算法,最初是为了实现隐匿付出而应用在区块链规模。其能很好地埋没签名者身份,既能让节点验证生意业务签名的正确性,又不会袒露生意业务提倡者的公钥信息。这一特性在同盟链中有着辽阔的应用前景。

· 打开群签名,群主可通过签名信息获取签名者证书,从而追踪到签名者身份。

FISCO BCOS为用户提供了一个群/环签名的开拓示例,以客户端为操纵进口,示例架构如下图所示:

· 建设群,由群主执行,生成群主私钥和群公钥;
如安在FISCO BCOS中利用群/环签名
b. 用户利用暗码方案进程中不会产生身份信息的泄露,更切合现实世界的语义。
群/环签名模块只是为用户身份提供了匿名性掩护,如何团结其它暗码协议构建越发靠得住、健全的安详区块链平台?如何低落用户的利用本钱和开销,提供多维度、高可用的
隐私掩护处事?以上问题需要我们不绝研究摸索。
因此,我们选择了首个兼具上述特性的群签名方案BBS04《Short Group Signatures》,该方案由Boneh于2004年在美密会(CRYPTO)上提出。
结语
a. 给定一个密文,无法还原其公钥,主要用于暗码算法的安详性阐明;
     function ringSigVerify(string signature, string message, string paramInfo) public constant returns(bool);
FISCO BCOS的技能选型
        // 实例化RingSigPrecompiled合约
// TestRingSig.sol
}
1. 为了利便成员打点,需要支持群成员的取消;

contract TestRingSig {

媒介

pragma solidity ^0.4.24;
环签名不存在可以或许打开签名的第三方,为了利便追责,防备签名者被诬陷,需要一种具备指责关联性和抗离间性的方案,即基于沟通公钥列表生成的两个环签名可判定是否来自同一个签名者。基于这层思量,我们选择了Joseph在04年提出的首个可链接的环签名方案LSAG《Linkable Spontaneous Anonymous Group Signature for Ad Hoc Groups》。
今朝,群/环签名主要应用在投票、竞标、竞拍等场景以保障参加者身份
隐私。春同盟链而言,同一同盟内的多个机构有协作也有博弈,在某些场景下,掩护用户身份长短常须要的。
以验证环签名为例(请确保同级目次下已有上述的接口声明合约),在业务合约中通过地点实例化预编译合约工具以完成验证接口的挪用:
// GroupSigPrecompiled.sol
安详与隐私一直是规模的热点话题,也是各大主流区块链平台必争的计谋高地。FISCO BCOS从底层到应用、架构到协议、存储到网络等多方面针对安详和隐私作出较大尽力,今朝已
实现账户打点、落盘加密、安详通讯、权限节制等成果模块。本文将对FISCO BCOS隐私特性之一群环签名展开先容。
    {
· 新增群成员,由群主执行,生成群成员私钥和证书,证书用于证明群成员身份;
群/环签名预编译合约地点分派如下:

除了预编译合约接口,FISCO BCOS还特别提供了两个焦点模块供用户利用,别离是一个完整的群/环签名库以及一个群/环签名RPC处事端。签名库和处事端独立于区块链平台,用户也可以基于签名库定制化地开拓本身的处事端。签名信息可在链长举办存储,然后通过在合约中挪用验证接口,完成签名正当性的验证。
群签名

环签名

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读