Cryptography 在Corda中,我是否可以将一方作为可选签名人?

Cryptography 在Corda中,我是否可以将一方作为可选签名人?,cryptography,digital-signature,corda,signing,Cryptography,Digital Signature,Corda,Signing,是否可以进行可选事务签名?我知道该命令明确列出了所需的签署人(必须签署交易才能进行公证的各方),但一方是否可以选择签署?我们如何实施这一点 用例是一个反洗钱实体,它将根据交易方的信任级别进行签名 val requiredSigners = listOf<PublicKey>() val optionalSigners = listOf<PublicKey>() tb.addCommand(TestContract.Commands.TestCommand(), requ

是否可以进行可选事务签名?我知道该命令明确列出了所需的签署人(必须签署交易才能进行公证的各方),但一方是否可以选择签署?我们如何实施这一点

用例是一个反洗钱实体,它将根据交易方的信任级别进行签名

val requiredSigners = listOf<PublicKey>()
val optionalSigners = listOf<PublicKey>()

tb.addCommand(TestContract.Commands.TestCommand(), requiredSigners, optionalSigners)
val requiredSigners=listOf()
val optionalSigners=listOf()
tb.addCommand(TestContract.Commands.TestCommand()、requiredSigners、optionalSigners)

使用现有SDK无法执行上述代码。

如果在创建事务时已知信任级别,则在将
TestCommand()
添加到事务生成器时,我们可以明确指示所需的签名者

一旦事务被签名,它就变得不可变。这意味着我们无法添加其他必需的签名者

为了启用可选签名者,我们将根据事务生成器(或任何其他业务逻辑)的输入和输出调整所需签名者的内容。然后在Corda合同中,我们可以基于相同的业务逻辑验证所需签名的数量

简而言之:命令定义了需要签名的人,但是Corda合同中验证方法中的检查逻辑是查看包含的状态并决定命令中应该包含哪些公钥的逻辑。因此,在所需的签名者周围有条件逻辑是完全可能的