回复:不是建议
原始发布页
打开来源页面查看 1 个交叉存档
我还没有理解你的想法。它会向公共网络隐藏任何信息吗?它的优势是什么?
如果至少 50% 的节点对交易进行了充分验证,使得旧交易可以被丢弃,那么所有人都看到了全部内容,也都可以保留一份记录。
公共节点能看到交易的金额吗?它们能看到这个金额来自哪一笔先前交易吗?如果能,它们就知道全部信息。如果不能,它们就无法验证这个金额来自有效来源,因此你也不能把它们生成的链当作对此的验证。
它隐藏的是比特币地址吗?就是这个吗?好吧,如果是这样,我现在也许明白了。
密码学可能提供一种进行“密钥盲化”的办法。我做过一些研究,相关资料很晦涩,但这里可能确实有些东西。“群签名”或许与此有关。
这里有一些属于这个大方向的内容: http://www.users.zetnet.co.uk/hopwood/crypto/rh/
我们需要一种方法,能够生成一个公钥的其他盲化变体。这些盲化变体应当与根公钥具有相同的属性,使私钥能够为其中任意一个生成签名。其他人无法判断某个盲化密钥是否与根密钥相关,也无法判断它是否与同一根密钥的其他盲化密钥相关。这些就是盲化的属性。简而言之,盲化就是 x = (x * large_random_int) mod m。
向一个比特币地址付款时,你每次都要生成一个新的盲化密钥。
然后,你还需要能够签出一种签名,使人无法看出两个签名来自同一个私钥。我不确定始终为不同的盲化公钥签名是否已经能赋予你这种属性。如果不能,我认为这正是群签名发挥作用的地方。有了群签名,某个东西可以被签署,但别人不知道是谁签的。
举个例子,假设必须下令发动某次不得人心的军事进攻,但没人想作为下令者被载入史册。如果有 10 位领导人持有私钥,其中一人就可以签署命令,而你不会知道是谁签的。
英文原文
展开英文原文
I'm not grasping your idea yet. Does it hide any information from the public network? What is the advantage?
If at least 50% of nodes validated transactions enough that old transactions can be discarded, then everyone saw everything and could keep a record of it.
Can public nodes see the values of transactions? Can they see which previous transaction the value came from? If they can, then they know everything. If they can't, then they couldn't verify that the value came from a valid source, so you couldn't take their generated chain as verification of it.
Does it hide the bitcoin addresses? Is that it? OK, maybe now I see, if that's it.
Crypto may offer a way to do "key blinding". I did some research and it was obscure, but there may be something there. "group signatures" may be related.
There's something here in the general area: http://www.users.zetnet.co.uk/hopwood/crypto/rh/
What we need is a way to generate additional blinded variations of a public key. The blinded variations would have the same properties as the root public key, such that the private key could generate a signature for any one of them. Others could not tell if a blinded key is related to the root key, or other blinded keys from the same root key. These are the properties of blinding. Blinding, in a nutshell, is x = (x * large_random_int) mod m.
When paying to a bitcoin address, you would generate a new blinded key for each use.
Then you need to be able to sign a signature such that you can't tell that two signatures came from the same private key. I'm not sure if always signing a different blinded public key would already give you this property. If not, I think that's where group signatures comes in. With group signatures, it is possible for something to be signed but not know who signed it.
As an example, say some unpopular military attack has to be ordered, but nobody wants to go down in history as the one who ordered it. If 10 leaders have private keys, one of them could sign the order and you wouldn't know who did it.