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

Decentralized Beneficiaries #27

Open
treeder opened this issue Dec 6, 2018 · 0 comments
Open

Decentralized Beneficiaries #27

treeder opened this issue Dec 6, 2018 · 0 comments

Comments

@treeder
Copy link
Contributor

treeder commented Dec 6, 2018

One of the primary longer term goals of GoChain is theft and loss prevention. In blockchain, both are equally as bad to a holder of coins or tokens as either way you lose everything. Upgradeable smart contracts which GoChain will be implementing can help prevent theft, but it doesn’t prevent loss. Loss can come in many forms such as losing your private key or death. If you die and your family is unable to obtain your private key, the funds will be inaccessible and any inheritance is lost. This improvement proposal is focused on the death scenario and being able to pass on your funds to your beneficiaries.

What is it?

This feature would allow a user to set a number of beneficiaries tied to an account (an address) that would allow the beneficiaries to claim the user’s funds upon death.

How it would (could) work

The owner of account A can set the beneficiaries of her account through a signed message to a GoChain API endpoint. The user would set which accounts can claim the funds and what percentage they get. The message also includes an inactivity timeout at which point the beneficiaries could claim the funds. There could be multiple levels of beneficiaries in case the first level is unable to claim the funds (ie: they have passed).

An example of this message might look like this:

beneficiaries example

In this example, if account A has no activity for the inactivity timeout, 6 months in this example, then the next level of beneficiaries can “claim” the funds for the timeout set for that level. This can continue for many levels (todo: any limit on levels?).

There could be a final account in the tree that the funds would automatically be transferred to after the last timeout in the tree, without requiring a claim.

How it would work technically

  • User A calls a setBeneficiaries() function with a json message, containing the beneficiary tree, signed by her private key.
  • Inactivity timeouts are defined by the number of blocks or seconds (probably better)
  • User must use their wallet at least once before the inactivity timeout, OR if the funds aren’t claimed yet, to reset the timer. A new "touch()" function will be created to reset without needing to perform an action
  • A beneficiary can make a claim by calling a claim() function. If the time is currently in the window for this beneficiary, the funds will be transferred to their account.
  • If a fallback address is given, the funds will be transferred to that account automatically after the final timeouts have been reached

Notes

  • Need to add consensus verification on claims
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

1 participant