前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >比原链研究院 | 一种弱同步网络假设下的门限签名系统

比原链研究院 | 一种弱同步网络假设下的门限签名系统

作者头像
比原链Bytom
发布于 2019-10-13 17:46:47
发布于 2019-10-13 17:46:47
1K0
举报
文章被收录于专栏:比原链比原链

近几年门限密码学在区块链系统里开始逐渐被应用,分为门限加密和门限签名,一般见于随机预言机、防审查、减少通信复杂度(HotStuff)、共识网络中防拜占庭(HoneyBadgerBFT 中用于 BA 环节的 common coin)以及作为分布式伪随机数生成器(coin tossing)的重要原语,其优越的资产协同防盗特性也慢慢被新兴数字资产托管机制所重视,今天我们主要讨论公钥密码学(PKC)里的门限签名机制。一种理想的门限签名系统是可以在异步的网络环境里做到容错容灾不可伪造(non-forgeability),并且拥有极度可靠安全的消息传输通道,签名份额的生成和验证是完全非交互式的,在初始密钥阶段具备可以防止拜占庭行为的异步分布式密钥生成(DKG)机制。

与基础签名机制类似,门限签名机制(Threshold Signature Schemes)也分为两部分:

门限密钥生成(Thresh-Key-Gen):基于安全参数构造一种分布式密钥生成协议 DKG,协议运行输出一个共同的公钥 pk 和分属不同参与方各自所有的私钥份额 ski,聚集起满足阈值数量的私钥份额可以构建出真正的私钥 sk。

门限签名(Thresh-Sig):基于分布式通信网络,各参与方通过自己的私钥份额 ski 完成对消息 m 的分布式协作签署并输出最终的可验证签名 Sig(sk, m),这个签名跟单独用 sk 私钥签出的一模一样,可以用所基于的基础签名机制里的验证函数进行本地验证,无需走通信交互验证

但是大多数情况下会通过使用一个可信的中心节点(dealer)来实现私钥份额的生成和分发。沙米尔秘密分享(Shamir Secret Sharing)是最简单的依赖中心 dealer 节点的门限密钥生成方法,基本原理是拉格朗日插值,在 (t, n) 门限构造中,dealer 会选择一个 (t-1) 次方的随机多项式 f,令 f(0)=s,s 即为要分享的秘密值,然后向每个节点分发该多项式曲线上的点 si=f(i) 作为各自的秘密份额值,简单来讲,三个点确定一个二次方程曲线(Lagrange interpolation formula)。为了解决中心作恶问题,人们又不断探索了基于承诺(commitment)的可验证秘密分享(VSS、PVSS),以及应用于异步网络的 VSS(Cobalt BFT 在区块链系统里也尝试了结合 PoW 准入机制的 AVSS)。有许多优秀成熟的 commitment scheme 可以借鉴应用,简单来讲承诺(commitment)算法 [C(M), D(M)]=Com(pk, M, r) 中 pk 是与承诺机制有关的公钥,M 是要承诺的原始值,r 是一个随机骰子,算法输出的 C 便是 commitment,D 则是需要秘密保管的 decommitment 值,在正式公开 M 之前先公开 M 的承诺 C,即先对自己要公布的消息做个上帝担保,约束自己无法更换 M,而对于 M 的受众或者接收者,它们可以通过之前公布的承诺和验证算法进行验证唯一性。这里我们主要关注非交互式的 VSS 实现。

此外,在过往的研究里,签名(Sig)的生成和验证大多是交互式的,并且依赖一个同步通信网络和广播通道(broadcast channel),节点们在某种设定下接收到特定消息后便同时启动签名协议,并严格遵循超时机制。而在互联网环境和区块链网络里,对网络假设的限定是有限的,所以门限系统要成功运作除了需要构造真正的 DKG 协议和非交互式签名机制外,还需要具备商用级的网络系统以及被验证过的成熟代码实现。这里我们(Bytom)尝试提出并构建一种弱同步网络假设下的门限签名分布式系统,主要对网络模型、DKG 构建、签名机制进行一些创新结合和应用,探索在实际网络环境里最小可实用的门限签名系统原型。

门限系统是一种(t, k, n)型 fault-tolerance 系统,t 代表网络最大容错,k 代表最小门限值,n 是节点数,一般设定 k>=t+1,但这种对网络分区(network partition)是无能为力的,所以在一个异步拜占庭网络里我们依然选用经典设定 k=n-t & t<n/3 去达成系统里的一个大多数共识。

门限网络或者通信模型是实现可实用门限系统需要认真考量的一个关键点。像 HoneyBadgerBFT 所构建的接近异步通信网络在现实案例中是少见的,一般会增加消息复杂度和通信轮次,异步网络模型主要依赖所接收到的消息类型和数量进行判断,因为时间因子(time-based)并不能区分谁是慢节点谁是恶意节点。但在这里我们更倾向采用高效的弱同步网络假设,即消息延迟和时钟偏移有上限(实际可接受)但未知,延迟的渐进是合理的,保障 liveness(safety 可以采用妥协的方法处理);能够对 crash、network failure、byzantine 等不同情况尽量做到分开处理,比如设置规定时间内可容忍的 crash 阈值,对于诚实节点发生 crash 后能够从一个规定的状态恢复等;并且假设网络故障总能被修复、遭受的 DoS 攻击总会停止;最后在构建通信通路上可以借助 PKI 和外部 CA 构建 TLS 链接,以及借助经典的 RBC 协议(reliable broadcast channel)。

DKG 是门限签名最为核心的环节也是第一阶段,负责完成门限密钥的生成和分发。VSS 是 DKG 的重要组成部分。上面提到 VSS 的基本原理是承诺机制,一般基于 Pedersen commitment,构造形如 C=mG+nH 的承诺(这里我们省去了一些对椭圆曲线群运算特征定义和假设,可以简单理解为椭圆曲线计算),其中 m 来自密钥构造多项式 f(x) 系数,而 n 来自 dealer 另外构造的一个随机多项式 h(x) 的系数,承诺集合 {Ci, 0<i<t} 是一种公开可获取的系数“证据”,用于证明 dealer 只承认一个合法的密钥多项式。各个参与方在获得 dealer 分发给自己的密钥份额 f(i) 和秘密值份额 h(i) 后,计算 f(i)G+h(i)H,如果与对应的承诺值(多项式计算)相等,则认为合法,如果不一致,则认为 dealer 出现作恶行为,开始向网络提交自己的抗议 complaint,其他人可以进行验证,如果发现事实如此,则立即停止协议,如果其他人验证后发现该 complaint 不合法,则发起 complaint 的节点会被标记不可信。VSS 过程简单来讲包括中心初始化密钥分发、构建承诺和重建密钥三部分内容,整个网络交互存在两轮(synchronous)全网广播(all-to-all)达成一致,最终将密钥份额和承诺传递给每个参与节点,这里我们会定义三种消息类型用于标记多轮消息序列并携带足够的信息用于计算门限密钥。

真正的 DKG 是需要去掉 VSS 里的那个中心,在分布式协作下生成秘密,避免单点泄漏风险,其原理也很简单,相当于 n 个节点同时各自选择秘密值并运行自己的 VSS,每个节点收集来自其他节点的秘密份额完成组装,组装后的结果便是真正私钥的份额,而各个合法节点各自分发的秘密值聚合起来便是最终的构造私钥,最后在进行承诺验证。这似乎很像一个 Multi-valued Validated Byzantine Agreement (MVBA) protocol (一种被广泛研究的可以对多种提案高效率达成共识的一致性协议算法,存在多个变种,比如异步公共子集 Common Subset)。

不过我们尽量避免这种复杂的实现,一般通过选举出 Leader 节点,统一协调处理这些 VSS 的完成情况和最终共识,定义序列,当大多数节点(n-t)完成各自的 VSS 阶段并被其他所有诚实节点所确认后,Leader 将这些已完成的 VSS 信息进行收集并重组提案,再经过两轮全网广播后,每个节点便会确定下各自最终的秘密份额,因此保障 liveness 对于我们的系统是十分关键的。如果 DKG 协议里任何一方出现恶意行为,协议都会立即停止,即 DKG 需要确保所有参与方的诚实行为。至此,一把公共的门限公钥和分属不同参与方的门限私钥份额便构造完毕。

签名阶段简单来讲是基于上面得到的密钥份额各自完成签署自己的签名份额,最后再完成统一组装,得到最终门限签名。Thresh-Sig 阶段的具体实现与所基于的数字签名算法有很大关系,例如 Schnorr 算法在计算签名 s 值时所依赖的秘密值 k 在常数项,s=k-z(H(K||M)),所以可以简单的将秘密值份额相组。而 ECDSA 中秘密值 k 是非线性的,即 s=(H(M)+zr)/k(其中 r 也是由 k 经过指数运算得来),存在两个秘密值(k 和 z)的乘运算,所以各个节点不能仅通过拥有 k 秘密值份额来完成最终签名值的组装,需要对公式进行变形,重新定义组合秘密值 kz,并分布式完成 kz 的秘密份额计算以及分发,甚至需要借助安全多方计算(在不泄漏各自 k 和 z 份额的前提下,完成 kz 的结果计算并输出 kz 的秘密份额给相应参与方)、同态加密机制以及零知识证明(range proof),因此多方的 ECDSA 门限签名在实现和效率上会比较复杂,现阶段以可实用的 2-2 方案研究居多。

不论是采用 ECDSA 还是 Schnorr 算法,最核心的问题依然是基于 DKG 和多方计算的原理去生成和分发签名算法中需要的秘密值,每个参与方基于各自的密钥份额和秘密值份额完成自己的签名过程,最后通过整体的交互组装获得最终的合法签名。同样的,如果无法达到足够门限阈值数量的合法签名方,签名协议也会立即停止。根据不同的应用场景需求,我们需要认真研究用于实现门限签名机制的底层签名算法,比如 ECDSA、EdDSA、Schnorr、BLS 等,不同的签名算法对应的门限机制实现复杂度和效率是不同的。

此外,一个完整的门限系统可能会有成员变更的需求,原有的密钥份额随之需要新一轮变更,最直观的做法是引入周期的概念,通过同步网络和共识协议发起新一轮密钥生成,产生新的主公钥和私钥份额,用超时机制防止阻塞。成员变更和 DKG 是一种比较精细(或脆弱)的系统,任何一个成员 fail 或者 fault 都会引发状况外。在实现上我们用状态机复制原理构建门限(DKG)节点,基于消息输入更换自身状态(例如 node_remove,leader_change,group_update)。

门限密码学随着结合应用场景的需求研究增多,不断完善自身成熟度,尤其是随着高度可靠的代码实现增多,随着复杂网络环境里的系统架构成熟,有希望在价值网络里扮演“门神”的重大作用,同时会促进对零知识证明、同态加密技术的进一步场景化应用,是当下区块链新技术领域为数不多值得深入研究和实战的研究方向。现代密码学与价值网络相辅相成,前者给予后者“上帝保障”,后者给予前者“伟大战场”。

比原链研究院 刘秋杉

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
区块链密码基础之签名算法(一)
在国家的十四个五年规划和2035年远景目标纲要中的第五篇《加快数字化发展 建设数字中国》中第二节中提出培育壮大人工智能、大数据、区块链、云计算、网络安全等新兴数字产业:区块链部分明确要求通过推动区块链的技术创新,进一步为区块链服务平台和金融科技,供应链管理,政务服务等应用方案做好基础服务,并进一步完善管理机制。最新的《“十四五”数字经济发展规划》提到,“构建基于区块链的可信服务网络和应用支撑平台”。作为数字经济时代重要底层技术之一,区块链对推动企业数字化转型,促进产业数字化发展,推进数字中国建设都起着强大支撑作用。当前,政策叠加效应深度释放,我国区块链产业发展驶入“快车道”,已经成为驱动数字经济高质量发展的重要引擎。
绿盟科技研究通讯
2022/11/14
2.1K0
区块链密码基础之签名算法(一)
信息交换中的幽灵—阈下信道
假设XX和YY是某公司的员工,他们分布在不同的楼层,他们每天通过聊天工具协商“摸鱼”计划,但聊天工具的网络是被公司网络中心给监控起来的,而且公司要求,所有的聊天信息必须是明文,以此方便被审计;这可咋搞?如果明文传输的话,老板肯定就知道了,那这样就得找他们谈话了,为了“摸鱼”计划,他们两个绞尽脑汁的想到了一个办法,即把真实的信息隐藏到聊天中;比如暗号之类的。
绿盟科技研究通讯
2023/08/31
4920
信息交换中的幽灵—阈下信道
区块链中的数学 - EdDSA签名机制
Ed25519 使用了扭曲爱德华曲线,签名过程和之前介绍过的 Schnorr,secp256k1, sm2 都不一样,最大的区别在于没有使用随机数,这样产生的签名结果是确定性的,即每次对同一消息签名结果相同。
张哥编程
2024/12/19
2280
区块链中的数学 - EdDSA签名机制
秘密共享—隐私计算和区块链共识中的榫卯
2018年5月正式生效的GDPR是欧盟“史上最严”条例,是数十年来数据安全和数据隐私法规方面最重要的一次变化。随后,2019年生效的加州CCPA,对个人数据及信息保护提出了严格的界定和保护要求。至此,GDPR和CCPA对欧美国家在数据安全和隐私行业的立法产生了持续的影响。在我国,2021年6月10日,中华人民共和国第十三届全国人民代表大会常务委员会第二十九次会议正式表决通过了《中华人民共和国数据安全法》。历经三次审议和修改通过的《数据安全法》将于2021年9月1日正式施行。在数据安全和隐私保护方面,企业合规性是一个迫在眉睫的事情。
绿盟科技研究通讯
2021/09/06
3.9K0
详解国密SM2的数字签名
在《解读国密非对称加密算法SM2》一文中,我讲到过非对称加密算法的用途之一就是数字签名。本文就来聊一聊国密SM2的数字签名算法。
云水木石
2020/04/08
12.6K0
详解国密SM2的数字签名
ARPA基于BLS的门限签名算法随机数生成器设计
作者 | ARPA 责编 | 晋兆雨  头图 | 付费下载于视觉中国  随机数已经在密码学、彩票和游戏等众多领域被广泛使用。区块链与随机性也有着紧密的关联,因为它们从随机性中寻求公平。被广泛应用的的工作量证明(Proof-of-Work)共识协议建立在搜索特定随机值的加密任务之上。蓬勃发展的Dapps,例如链上彩票以及NFT盲盒,依靠无偏见的随机输入来提供更可信的用户体验。因此,ARPA希望创建一个安全、稳健、可验证的去中心化随机数生成器(RNG),为区块链世界提供必要的随机性。 去信任的随机性
区块链大本营
2023/03/31
8350
ARPA基于BLS的门限签名算法随机数生成器设计
数字签名与加密算法-下【mix指南之区块链】
如果把人比作手机,价值观、态度和习惯是这个操作系统底层,领域技能更像是系统上的app。技能不会的话装一个就好,如果大家有好的“app”,可以相互推荐,如果自己没有装这个“app”,也可以借别人的。
mixlab
2019/09/26
1.1K0
数字签名与加密算法-下【mix指南之区块链】
Schnorr 协议
通常,我们定义安全会采用这样一种方式,首先列出一些安全事件,然后说明:如果一个系统安全,那么列出来的安全事件都不会发生。但是零知识证明并不是通过给出一个不允许发生的事件列表来定义,而是直接给出了一个最极致的模拟条件。所谓模拟条件是指,通过模拟方法来实现一个理想世界,使之与现实世界不可区分;而由于在理想世界中不存在知识,所以可以推导出结论:现实世界满足零知识。
Daffy
2020/12/16
1.4K1
蚂蚁区块链第7课 零知识证明隐私保护原理和蚂蚁BAAS接口调用实现
本文试图普及隐私保护和零知识证明的相关技术知识,尝试使用更简单的描述来理解复杂的数学算法和技术原理。同时,也提供了蚂蚁区块链已经实现的隐私保护的接口函数说明。 本文涉及的专业知识有零知识证明,zk-SNARKs和 BulletProofs(防弹证明),佩德森承诺等。
辉哥
2019/04/01
1.9K0
蚂蚁区块链第7课 零知识证明隐私保护原理和蚂蚁BAAS接口调用实现
应用密码学初探
关键字:密码学,密码算法,单向哈希函数,对称加密,非对称加密,数字签名,数字证书,Merkle树,同态加密 在计算机科学中,密码学常常用来解决某些特定的难题: 文件机密性,对于某些需要保密的文件的加密工作。 鉴别真伪,也叫认证,防止文件被伪造。 验证完整性,验证文件的完整性,传输中是否有破损。 信用问题,也即不可抵赖性,这也是区块链要解决的关键问题,对于所有人的信用问题,那些承诺算不算数。 密码学可以细分为密码协议,密码技术以及密码算法,本文不会详尽学习密码学的所有角落,而是专门针对区块链应用到的密码
文彬
2018/05/08
1.4K0
区块链密码基础之签名算法(二)
区块链的匿名性是指用户在区块链网络中使用假名进行活动,其本质为非实名性。而对于某一假名,其交易数据都记录在公共账本上,任何人都可以获取其交易数据信息,攻击者可采用聚类分析等技术推断这一假名的真实身份,故而存在隐私泄露问题。因此,如何增强区块链的匿名性成为了需要研究的问题。环签名是一种特殊的数字签名算法,它可以实现在生成数字签名的同时不泄露谁才是真正的签名者,是一种匿名的数字签名技术。
绿盟科技研究通讯
2022/11/14
1.9K0
区块链密码基础之签名算法(二)
是什么限制了区块链技术的应用?
2017年已经匆匆离去,回顾过去一整年,似乎区块链应用一直处于隐忍未发的状态,很多项目的落地已处于验证阶段,万众期待的爆点却一直没能出来。
腾讯大讲堂
2018/01/15
1.4K0
是什么限制了区块链技术的应用?
数字签名与加密算法-上【mix指南之区块链】
如果把人比作手机,价值观、态度和习惯是这个操作系统底层,领域技能更像是系统上的app。技能不会的话装一个就好,如果大家有好的“app”,可以相互推荐,如果自己没有装这个“app”,也可以借别人的。
mixlab
2019/09/26
1.1K0
数字签名与加密算法-上【mix指南之区块链】
区块链隐私保护技术解析——之门罗币(monero)
近几年勒索攻击事件频频发生,且数量逐年增加。勒索事件对各国政府机构、交易、科技、医疗、传媒、金融都产生较重的影响。2020年,全球因勒索软件造成的损失大约25万亿美元。勒索病毒幕后的黑客获得了高额的赎金,并成功兑现,这样更加剧了勒索事件的爆发。勒索软件一般采用加密货币做为赎金进行交易。加密货币由于其自身的特性-匿名性很难被第三方监管,而且难以追踪和溯源。
绿盟科技研究通讯
2021/10/26
2.4K0
区块链隐私保护技术解析——之门罗币(monero)
【区块链技术工坊46期】PPIO蒋鑫:椭圆曲线密码学简介
2)议题: 目前区块链项目如火如荼,几乎所有的区块链都会用到钱包,我们也经常听说椭圆曲线这个密码学术语,那么它们之间有没有什么关系?“加密货币”,到底是不是加了密的货币?为什么***和以太坊等众多区块链项目选用的是椭圆曲线而不是RSA?大名鼎鼎的Sony PS3上的私钥是如何被盗的?请报名者带好笔记本电脑,且看PPIO区块链开发工程师蒋鑫的技术分享。
辉哥
2019/06/14
1K0
虾说区块链-48-《精通比特币》笔记三
一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。 区块链-《精通比特币》笔记三: 电子书阅读《精通比特币》第二版地址: http://book.8btc.com/books/6/masterbitcoin2cn/_book/ch06.html bitcoin脚本语言基于堆栈的语言:使用堆栈数据结构。 堆栈:一种数据结构,允许push、pop,push在堆栈顶添加一个项目,pop在堆栈顶删除一个项目,堆栈操作对象为堆栈最顶端的项目,理解为后进
企鹅号小编
2018/02/11
1K0
虾说区块链-48-《精通比特币》笔记三
一文看懂怎样用 Python 创建比特币交易
比特币价格的上上下下,始终撩动着每一个人无比关切的小心脏。从去年初的 800 美元左右,飞涨到去年底到 19783.21 美元最高点,不到1年,便有将近 25 倍的升值速度。尽管眼下又掉回 8000 多美元的价格,但价格差不多能搞出去年同期一个数量级,币圈人士“过去一年比以往 10 年挣的都多”,已经是不争的事实。 而对区块链开发者来说,据说也已经有拿到年新 500 万的天价。所以“跑步进入区块链”,已经成为不少程序员的共识。但是看过很多远离,我们如何才能迅速上手呢?国外网友 Ken Shirriff 在博
区块链大本营
2018/05/10
4.2K0
密码学在区块链中的应用:哈希算法与加密解密算法
安全性是实现区块链系统功能的基础,也是目前阻碍区块链应用推广的因素之一。密码学是信息安全的基石,以很小的代价给信息提供一种强有力的安全保护,广泛应用于政治、经济、军事、外交和情报等重要领域。 随着近年来计算机网络和通信技术迅猛发展,密码学得到了前所未有的重视并迅速普及,同时应用领域也广为拓展。本文选自《商用区块链技术与实践》一书,主要讲解密码学在区块链中的应用。 哈希算法 哈希算法(Hash Algorithms)也称为散列算法、杂凑算法或数字指纹,是可以将任意长度的消息压缩为一个固定长度的消息的算法。哈
博文视点Broadview
2023/05/19
2.6K0
密码学在区块链中的应用:哈希算法与加密解密算法
拿什么保护你,我的区块链
被纳入新基建的区块链,以数据不可篡改、可公开监管、便于查证的特性,广泛应用于有多方参与的系统中,为多方交互的信息(行为、数据等)提供可靠的存证。那么,在信息上链接受公开监管的同时,能否为信息提供隐私保护呢?隐私保护的数据又如何能验证其可靠性呢?腾讯云区块链使用同态加密、零知识证明、可信计算等技术,为区块链上数据隐私和行为可靠性提供了多方位的保障,并且提供了对国密算法的支持,在金融、政务等场景中可以选择适配SM2-SM3国密证书套件,完美对接国标、行标。那么腾讯云区块链究竟是怎么做到同时兼顾隐私性、可靠
腾讯技术工程官方号
2020/07/27
1.5K0
网络安全系列第二讲 信息加密技术基础
链路加密非常有效,是因为几乎任何有用消息都被加密保护。加密范围包括用户数据、路由信息和协议信息等。因此,攻击者将不知道通信的发送和接受者的身份、不知道信息的内容、甚至不知道信息的长度以及通信持续的时间。而且,系统的安全性将不依赖任何传输管理技术。密钥管理也相对简单,仅仅是线路的两端需要共同的密钥。线路两端可以独立于网络的其他部分更换密钥。
易兮科技
2020/10/28
1.1K0
网络安全系列第二讲 信息加密技术基础
推荐阅读
相关推荐
区块链密码基础之签名算法(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档