CREDITSCOM / node

Credits Node is the main module that provide an opportunity to run a node and participate in CREDITS blockchain network.
https://developers.credits.com/
GNU Affero General Public License v3.0
151 stars 16 forks source link

[Feature Request] Node Public and Private Key #58

Open navis83 opened 4 years ago

navis83 commented 4 years ago

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 commented 4 years ago

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

VictorShapovalov commented 4 years ago
  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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

I am interested I really do not have a realistic idea of the numbers I currently have in crypto but I like what your doing here I want to right now get involved in that current airdrop i have never really confirmed and successfully spent coin i need to do the eth and bit airdrops and fast can you help me move money

On Fri, Feb 21, 2020 at 10:39 PM Vladimir Tikhonov notifications@github.com wrote:

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

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/CREDITSCOM/node/issues/58?email_source=notifications&email_token=AORJ4OGOIBR7KRBALQMTBWLREDCAXA5CNFSM4I7KAQD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMUYWSQ#issuecomment-589925194, or unsubscribe https://github.com/notifications/unsubscribe-auth/AORJ4OH7OTUSWH7TTYHDEXLREDCAXANCNFSM4I7KAQDQ .