我怎样才能产生类似于链上2FA的东西?私钥或公用钥匙能在某种程度上被秘密地用来计算一个值或什么的吗?我需要一种方法来验证一个聪明的合同用户调用者,这样其他人就不会假装拥有他的索赔。
发布于 2019-04-18 09:32:01
这真的取决于你要追求什么,以及你需要什么样的隐私、安全和权力下放。这也取决于你所说的"2FA“是什么意思。
不管怎么说,如果您需要反复检查用户的身份或其他什么的话,您实际上必须依赖两种不同的信息。在您的问题中,听起来您正在尝试从第一条信息(用户的键)中创建第二条信息。
在用户私钥受损的情况下,黑客拥有生成第二条信息所需的所有信息。所以,即使这是两条信息,实际上也只有一条。
如果要创建合同
。
更有趣的是,尽管..。
secret + time + math匹配生成的数据的结果,您将被使用。private key on users device,然后是服务器上的username + password + traditional TOTP 2fa。这实际上是“三个因素”。的多个信息片段
发布于 2019-03-08 11:17:49
简单地说,也许不是。
即使使用诸如private之类的变量定义,块链中的所有信息也是公开的。
智能契约中的身份验证通常针对发件人的地址进行。因此,对某些函数的访问仅限于白色的发件人地址列表。这样,你当然需要事先知道地址。
理论上,用户可以使用他们的私钥来计算一些秘密值(除了他们的公共地址)。但是使用这样的值是毫无意义的,因为管理员无法知道秘密应该是什么,除非他们拥有相同的私钥(这是不-不)。
如果用户用自己的私钥创建了一个秘密,并将结果发送给管理人员,管理员将不得不将其添加到区块链中(类似于秘密的白名单),然后立即公开,其他人可以使用它。
一种选择可能是用户发送带有秘密的事务,智能契约将事务标记为内部挂起。然后管理员(或一些后端系统)检查秘密出块链,并发出一个“确定,允许这个交易”到合同。但是,再一次,这样的话,实际的验证就会脱离链,那又有什么意义呢?
https://ethereum.stackexchange.com/questions/68047
复制相似问题