Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Node Public and Private Key #58

Open
navis83 opened this issue Oct 10, 2019 · 7 comments
Open

[Feature Request] Node Public and Private Key #58

navis83 opened this issue Oct 10, 2019 · 7 comments

Comments

@navis83
Copy link

navis83 commented Oct 10, 2019

I would like to discuss with you the opportunity to have Node<->Wallet decoupling.. I understand that it's required that 1 node is linked to 1 wallet in order to declare it as Main node, but at same time that check could be done just checking if the couple between public keys (one wallet public key can be linked to one node public key and viceversa). This change might allow in future some scenarios that currently are not supported: 1) rental service of trusted nodes, just configurable via wallet public key, 2) more security, because there is no way from anyone to access to private key of your wallet in any way , 3) More reusability: if I've configured a trusted node, I can decide to give it away without fear to get stolen my wallet files because of node history or provider registration of console.
The node password allows to encrypt the keys on node, but this means that only the wallet owner can restart the node... not every investor is able to work in linux xD, no? So if I'm rich and I would like to invest in main node, I cannot do it... instead, it might sense to have a node admin that can do it separately from investor that is giving him money to prepare and maintain its node
another consideration, currently the required tokens are 50k which in EUR is around 5k Euro. In the future, mantaining such requirement that is important to avoid million of new nodes, if the CS price arrive to 1 euro or more, the needed value to have a Main node might be so high requiring "multiple investors" to achieve the 50k tokens: making Node<->Wallet decoupling might allow in future to link multiple wallets to same node and, if the 50k tokens are achieved, they can be Main and take rewards based on single wallet budget...
I understand the fear to have such decoupling, but it's an opportunity to have something different from other blockchain.

@navis83
Copy link
Author

navis83 commented Oct 10, 2019

I write here some notes on discussion we had on tech channel about a possible solution that could be implemented.

there is a requirement to be satisfied on block write: the wallet public key can be linked only with 1 node public key, so if your wallet is linked to multiple nodes, it doesn't take rewards.
In order to make it, the check complexity is a constant, because you can consider to have an hashmap, updated when new node is discovered/down in order to be not performed during calculation, where the key is the wallet public key, and the value is the online node list it's linked: the check is get(key).size()>1, where if satisfied the wallet is not rewarded

@navis83 navis83 closed this as completed Oct 10, 2019
@navis83 navis83 reopened this Oct 10, 2019
@VictorShapovalov
Copy link

  1. Architecturally, there is absolutely no difference between the keys. Just when starting a node, she needs a wallet, which will be charged with a commission, which should have 50,000 CS if she wants to participate in consensus. There are no options for creating a special type of keys designed specifically for a node. As for the lease of trusted nodes using a public key, you can consider the option in which the tenant's funds are transferred to a smart contract that will transfer the necessary deductions from the income of trusted nodes. In this case, the tenant does not show his private key anywhere.
    As for the node, it cannot work without a private key, since it needs to sign transaction packages.
  2. On the node, various mechanisms are provided to ensure the security of the key. The highest security option is entering a passphrase when starting a node and disabling key storage on your hard drive
  3. Currently, ideas are being worked out to integrate new functionality into the architecture - storing keys in specialized repositories, which should allow organizing automatic restart of a node without entering a password, and at the same time ensure the required level of security.
    The option of using tokens as a security for the node is interesting, especially in terms of connecting several investors. In the case of positive agreement, it is likely that he may appear in one of the releases.

@navis83
Copy link
Author

navis83 commented Oct 11, 2019

Victor, I understood the reason to have a public and private key on node, indeed I just said to have a completely different couple of Public/Private Keys just for node, not directly linked to "any" wallet. I think it would make sense to have a node configuration to setup only wallet (or multiple wallets based on my first comment) public key(s) receiving the rewards, while for writing block the node private one is used.
About the security of node, until it's a VPS for example, hoster can do anything he wants, for example just install a key logger to maintain the pressed keyboard letters to discovery the password or the passprase.. No? For sure it's not a real scenario, but it's feasible. That's also why I suggest to decouple node from wallet keys, otherwise there is always a way to arrive to wallet deposit..

@hinterlist
Copy link

I think much batter solution would be delegation of tokens to account of node, additionally that would allow users that doesn't have 50k of tokens to collaborate and participate in consensus.

@dawnbass68
Copy link

I would like to discuss with you the opportunity to have Node<->Wallet decoupling.. I understand that it's required that 1 node is linked to 1 wallet in order to declare it as Main node, but at same time that check could be done just checking if the couple between public keys (one wallet public key can be linked to one node public key and viceversa). This change might allow in future some scenarios that currently are not supported: 1) rental service of trusted nodes, just configurable via wallet public key, 2) more security, because there is no way from anyone to access to private key of your wallet in any way , 3) More reusability: if I've configured a trusted node, I can decide to give it away without fear to get stolen my wallet files because of node history or provider registration of console.
The node password allows to encrypt the keys on node, but this means that only the wallet owner can restart the node... not every investor is able to work in linux xD, no? So if I'm rich and I would like to invest in main node, I cannot do it... instead, it might sense to have a node admin that can do it separately from investor that is giving him money to prepare and maintain its node
another consideration, currently the required tokens are 50k which in EUR is around 5k Euro. In the future, mantaining such requirement that is important to avoid million of new nodes, if the CS price arrive to 1 euro or more, the needed value to have a Main node might be so high requiring "multiple investors" to achieve the 50k tokens: making Node<->Wallet decoupling might allow in future to link multiple wallets to same node and, if the 50k tokens are achieved, they can be Main and take rewards based on single wallet budget...
I understand the fear to have such decoupling, but it's an opportunity to have something different from other blockchain.
U guys are very smart I trust your decision and trust u

@botstorm
Copy link

I would like to discuss with you the opportunity to have Node<->Wallet decoupling.. I understand that it's required that 1 node is linked to 1 wallet in order to declare it as Main node, but at same time that check could be done just checking if the couple between public keys (one wallet public key can be linked to one node public key and viceversa). This change might allow in future some scenarios that currently are not supported: 1) rental service of trusted nodes, just configurable via wallet public key, 2) more security, because there is no way from anyone to access to private key of your wallet in any way , 3) More reusability: if I've configured a trusted node, I can decide to give it away without fear to get stolen my wallet files because of node history or provider registration of console.
The node password allows to encrypt the keys on node, but this means that only the wallet owner can restart the node... not every investor is able to work in linux xD, no? So if I'm rich and I would like to invest in main node, I cannot do it... instead, it might sense to have a node admin that can do it separately from investor that is giving him money to prepare and maintain its node
another consideration, currently the required tokens are 50k which in EUR is around 5k Euro. In the future, mantaining such requirement that is important to avoid million of new nodes, if the CS price arrive to 1 euro or more, the needed value to have a Main node might be so high requiring "multiple investors" to achieve the 50k tokens: making Node<->Wallet decoupling might allow in future to link multiple wallets to same node and, if the 50k tokens are achieved, they can be Main and take rewards based on single wallet budget...
I understand the fear to have such decoupling, but it's an opportunity to have something different from other blockchain.
U guys are very smart I trust your decision and trust u

You can use the desktop wallet without a node, for this you need to know the ip address of any node on the mainnet network and change the ip address in the settings.properties file.
Earlier we introduced the delegation function
https://credits.com/en/Home/New_Ins/Delegation_mechanism
Statistics, display and calculations will be presented later, approximately 3 quarter. We do not recommend using delegation on the mainnet network now. If you want to test the delegation function, use Testnet

@dawnbass68
Copy link

dawnbass68 commented Feb 22, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants