{"action":"created","issue":{"url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1869","repository_url":"https://api.github.com/repos/cosmos/cosmos-sdk","labels_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1869/labels{/name}","comments_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1869/comments","events_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1869/events","html_url":"https://github.com/cosmos/cosmos-sdk/issues/1869","id":345510923,"node_id":"MDU6SXNzdWUzNDU1MTA5MjM=","number":1869,"title":"Genesis bonds have an owner address in place of a validator address","user":{"login":"amrali","id":764671,"node_id":"MDQ6VXNlcjc2NDY3MQ==","avatar_url":"https://avatars0.githubusercontent.com/u/764671?v=4","gravatar_id":"","url":"https://api.github.com/users/amrali","html_url":"https://github.com/amrali","followers_url":"https://api.github.com/users/amrali/followers","following_url":"https://api.github.com/users/amrali/following{/other_user}","gists_url":"https://api.github.com/users/amrali/gists{/gist_id}","starred_url":"https://api.github.com/users/amrali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amrali/subscriptions","organizations_url":"https://api.github.com/users/amrali/orgs","repos_url":"https://api.github.com/users/amrali/repos","events_url":"https://api.github.com/users/amrali/events{/privacy}","received_events_url":"https://api.github.com/users/amrali/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-07-29T07:55:26Z","updated_at":"2018-07-30T16:29:54Z","closed_at":"2018-07-30T05:07:46Z","author_association":"NONE","body":"<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺ \r\nv                            ✰  Thanks for opening an issue! ✰    \r\nv    Before smashing the submit button please review the template.\r\nv    Please also ensure that this is not a duplicate issue :)  \r\n☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >  --> \r\n\r\n## Summary of Bug \r\n<!-- Concisely describe the issue --> \r\nIn the `genesis.json` file the `bonds` list generated by `gaiad init` or filled out by testnet participants contains two addresses, one for the delegator's address and another for the validator's address.\r\n\r\n```json\r\n \"bonds\": [\r\n        {\r\n          \"delegator_addr\": \"cosmosaccaddr1y4rdzkwvl3d3qg54fd4uk6zdz34f2rkck4d9jt\",\r\n          \"validator_addr\": \"cosmosaccaddr1y4rdzkwvl3d3qg54fd4uk6zdz34f2rkck4d9jt\",\r\n          \"shares\": \"100\",\r\n          \"height\": \"0\"\r\n        }\r\n```\r\n\r\nThe `validator_addr` value is the **owner's** account address for a compressed Secp256k1 public key. For my validator Ed25519 public key, the address instead should be `cosmosvaladdr17zxzlwh0842czgxk7hcj60enwx9368kg452u56`.\r\n\r\nWhy does it work on currently running testnets? It doesn't make sense for an owner account to delegate to itself (it doesn't represent the validator identity, does it?).\r\n\r\n## Steps to Reproduce\r\n<!-- What commands in order should someone run to reproduce your problem --> \r\n- `gaiad init`\r\n- Examine the generated `genesis.json` file.\r\n____\r\n#### For Admin Use\r\n - [ ] Not duplicate issue\r\n - [ ] Appropriate labels applied\r\n - [ ] Appropriate contributors tagged\r\n - [ ] Contributor assigned/self-assigned\r\n"},"comment":{"url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/comments/408925917","html_url":"https://github.com/cosmos/cosmos-sdk/issues/1869#issuecomment-408925917","issue_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1869","id":408925917,"node_id":"MDEyOklzc3VlQ29tbWVudDQwODkyNTkxNw==","user":{"login":"rigelrozanski","id":20132176,"node_id":"MDQ6VXNlcjIwMTMyMTc2","avatar_url":"https://avatars1.githubusercontent.com/u/20132176?v=4","gravatar_id":"","url":"https://api.github.com/users/rigelrozanski","html_url":"https://github.com/rigelrozanski","followers_url":"https://api.github.com/users/rigelrozanski/followers","following_url":"https://api.github.com/users/rigelrozanski/following{/other_user}","gists_url":"https://api.github.com/users/rigelrozanski/gists{/gist_id}","starred_url":"https://api.github.com/users/rigelrozanski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rigelrozanski/subscriptions","organizations_url":"https://api.github.com/users/rigelrozanski/orgs","repos_url":"https://api.github.com/users/rigelrozanski/repos","events_url":"https://api.github.com/users/rigelrozanski/events{/privacy}","received_events_url":"https://api.github.com/users/rigelrozanski/received_events","type":"User","site_admin":false},"created_at":"2018-07-30T16:29:53Z","updated_at":"2018-07-30T16:29:53Z","author_association":"MEMBER","body":"@amrali \r\n> So the owner's wallet/key is where the block rewards/provisions will be distributed?\r\n\r\ncorrect, when they submit a \"withdrawal rewards\" transaction (in development) this is the default withdrawal location, although they will also be able to specify a new withdrawal address \r\n\r\n> If so does that mean that the signing key is truly solely used to sign consensus messages and doesn't have any accounting applied to it?\r\n\r\nIf by signing key you mean Tendermint signing key - then yes\r\n\r\n> Also why do we have to specify validator_addr if it will always be the owner's public key address?\r\n\r\nThe bonds are a common struct used for both the validators self-delegation as well as other delegations - thus we use the common struct to represent the self-delegation which is the only type of delegation where those two will be equal - I think abstracting it any further to isolate out for the validator self-delegation case is an over-abstraction.\r\n\r\n@joe-bowman \r\n\r\n> It seems completely unituitive to be delegating to the owner's account, and not the validator. The two are separate entities. \r\n\r\nI agree to a degree - however when you send a delegation to the validator, whether it's indexed by the address with Bech _valAddr_ or _accAddr_ you are still sending it to that validator - not their personal account, they can't spend it right - it's held by the protocol - I think this should be made very clear in the UI (CC @faboweb) but yeah like - it's the delegation index for the validator not the actual destination of the delegated funds\r\n\r\n> I think the \"owner\" concept should simply be replaced with a validator and an associated wallet\r\n\r\nYeah maybe we should rename from \"owner\" to something like \"trustee\" because the validator's creator doesn't actually own the contents of the validator they just operate with it. \r\n\r\n> Treating a wallet (aka owner) account as the validator identity is quite confusing.\r\n\r\nAlthough on some level I agree with you, this issue has been extensively discussed internally, and the conclusion has been that the best index for the validator must be the \"trustee\" (\"owner\") address due to the need to maintain something static as validators may be able to change/rotate through their signing keys which is desirable - this is going to be an ongoing issue, but I'm certain that the tendermint signing-key/address is NOT the correct index to be using. It's possible we may introduce a totally new value, say \"validator-index\" or \"nonce\" which is independent of both addresses and is used as the index - but that is certainly post launch"}}
{"actor":{"display_login":"rigelrozanski"}}