查看https://github.com/ethereum/wiki/wiki/enode-url-format和https://github.com/ethereum/go-ethereum/wiki/Connecting-to-the-network,我可以看到enode包含一些关于节点的信息。
下面是一个示例enode:enode://3414c01c19aa75a34f2dbd2f8d0898dc79d6b219ad77f8155abf1a287ce2ba60f14998a3a98c0cf14915eabfdacf914a92b27a01769de18fa2d049dbf4c17694@[::]:30303 -- //和@之间的部分是用户名。
其他一切看起来都没问题,但是用户名/节点ID部分是什么?https://ethereum.stackexchange.com/a/1196/31933的答案是,它是一些公钥,但它是一个用于什么的公钥?
由于帐户和节点不直接相关(帐户只是利用节点),所以不能有任何特定于帐户的内容(例如帐户的公钥)。那么,如果它是一个公钥,谁有私钥,它可以用来做什么?
发布于 2019-02-11 06:44:31
找到更多信息:https://github.com/ethereum/devp2p/blob/38d70bb9fe9badaa48ef5262e9f78641b46d1ff4/rlpx.md
nodeId是与节点的私钥相对应的secp256k1公钥。
因此,节点有一个私钥,节点ID是对应的公钥。由于私钥是随机选择的,公钥本身就没有意义。它与Ethereum帐户或诸如此类的东西无关,但只被底层协议用于节点间通信。
https://ethereum.stackexchange.com/questions/66858
复制相似问题