Addresses

如何從編碼的公鑰中獲得兩個點(x,y)?

  • October 10, 2018

這從兩點給出了一個有效的地址;

address(uint256(keccak256(abi.encodePacked(point[0], point[1]))) & 0x00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);

但這是否意味著如果只給你一個地址,你就不能得到用來生成它的兩個點(因為散列函式)?

散列算法的主要特點是它們是單向函式——或者換句話說,你可以從輸入中得到輸出,但你不能從輸出中得到輸入——就像橢圓曲線密碼學一樣,你不能從公鑰中獲取私鑰。在這種情況下:

keccak256(…) 返回 (bytes32)

計算(緊密打包的)參數的 Ethereum-SHA-3 (Keccak-256) 雜湊

在這種情況下,兩點。

基本上,您正在從您指定的點生成散列,如上所述,散列函式是單向函式。因此,您將無法從雜湊中獲取積分。

如果您想了解有關hash fucntions訪問的更多資訊:

https://searchsqlserver.techtarget.com/definition/hashing

keccak256(...)訪問乙太坊文件:

https://solidity.readthedocs.io/en/v0.4.21/units-and-global-variables.html

引用自:https://ethereum.stackexchange.com/questions/60315