zoukankan      html  css  js  c++  java
  • 什么是多重签名?多重签名的概念

    多重签名,就是多个用户对同一个消息进行数字签名,可以简单地理解为一个数字资产的多个签名。

    签名标定的是数字资产所属及权限,多重签名表示该数字资产可由多人支配与管理。在加密货币领域,如果要动用一个加密货币地址的资金,通常需要该地址的所有人使用他的私钥(由用户专属保护)进行签名。由此,动用这笔资金就需要多个私钥签名,通常这笔资金或数字资产会保存在一个多重签名的地址或账号里。

    blob.png

    A和B两人怎么对同一个数字文件进行签名呢?

    (1)不用单向散列函数,

    ①A和B分别对文件的副本签名,签名消息的数据大小是原文的两倍。

    ②A先签名,然后B在A的签名基础上再进行签名。这是可行的,但是在不验证B签名的情况下就验证A的签名是不可能的。

    (2)采用单向散列函数,可以很简单地实现多重签名

    ①A对文件的散列签名。

    ②B对文件的散列签名。

    ③B将他的签名交给A。

    ④A把文件及其签名和B的签名发给C。

    ⑤C验证A和B的签名。

    在采用单向散列函数的情况下,A和B是能同时或顺序地完成第①步和第②步的,且在第⑤步中,C可以只验证A、B其中一人的签名而不用验证另一人的签名。

    在实际操作过程中,一个多重签名地址可以关联N个私钥,在需要转账等操作时,只需要M个私钥签名就可以把资金转移了。其中M要小于或等于N,也就是说M/N小于1,可以是2/3、3/5等,需要在建立这个多重签名地址的时候确定好M/N的具体模式。

    从原理上讲,多重签名本身并不复杂,用一句话就可以说明:“用W把钥匙生成一个多重签名的地址,需要其中的从把钥匙才能花费这个地址上的比特币,N≥M,这就是M/N的多重签名。”

    多重签名实现第三方的适当介人保障,也增加了数字货币的信任度,多重签名地址允许多个用户使用一个公钥单独发送部分地址。当一些人想要使用比特币时,他们需要除他们本人以外其他一部分人的签名,且需要签名用户的数量在最初创建地址的时候就已经商定。使用资金前需要的多个签名,除了本人以外,其他的签名可以是你的商业伙伴,或与你关系密切的人,甚至是你所拥有的另一个设备,由此来为你成功使用比特币增加一个可控因素,使比特币交易过程接近绝对安全。

    相关参考文章:

    多重签名——典型的数字签名技术

    NEM链上多重签名功能——NEM功能介绍

    NEM的多重签名

  • 相关阅读:
    EEPlat 的 后台业务处理模型
    poj 1012 Joseph (约瑟夫问题)
    python使用正則表達式
    二维码_encode与decode
    UITableView显示不全
    Bottle 中文文档
    不相交集python实现
    面试题1:落单的数
    Android开发/源代码资源汇总
    leetCode 26.Remove Duplicates from Sorted Array(删除数组反复点) 解题思路和方法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13312826.html
Copyright © 2011-2022 走看看