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

Account provisioning: charge BLD for smart wallet #4654

Closed
2 tasks
dckc opened this issue Feb 23, 2022 · 8 comments · Fixed by #6093
Closed
2 tasks

Account provisioning: charge BLD for smart wallet #4654

dckc opened this issue Feb 23, 2022 · 8 comments · Fixed by #6093
Assignees
Labels
cosmic-swingset package: cosmic-swingset enhancement New feature or request security
Milestone

Comments

@dckc
Copy link
Member

dckc commented Feb 23, 2022

What is the Problem Being Solved?

In #4402 we discuss fee aspects of RUN IST onboarding, but there is also a question of provisioning accounts; that is: for creating an on-chain c-list and associating it with a cosmos account (key pair). How do we appropriately recover the cost of this operation?

Our devnet account provisioning process depends on a discord faucet bot on our discord service to mitigate griefing and sybil attacks.

Additional open questions:

  • should we "walk before we run" w.r.t. the number of SMART_WALLET accounts, while we gather confidence in system performance?
  • provisioning ag-solo (REMOTE_WALLET) accounts is higher risk. how to manage that risk?

Description of the Design

?

note Feb 24 proposal

Security Considerations

see problem statement above

Test Plan

IOU

cc @Tartuffo @michaelfig @dtribble @warner

@dckc dckc added enhancement New feature or request cosmic-swingset package: cosmic-swingset security needs-design labels Feb 23, 2022
@dckc
Copy link
Member Author

dckc commented Feb 25, 2022

@michaelfig and I think we have a design:

Scenario: User Una wants to accept (make) an offer (for example, to getRUN or to trade on the AMM or to take out a Vault). How does Una communicate with Zoe or any other object in the Agoric blockchain VM? @michaelfig and I concluded that some introduction mechanism is necessary to join the Agoric society where members enjoy the benefits of offer safety etc. Una must have 1 BLD. Una uses a wallet web UI to send a "please provision" message that (1) liens gp=1 BLD and (2) creates a c-list and on-chain wallet.

Una can then proceed using WalletAction messages as in #4406 .

or RUN?

gp is a governable parameter

p.s. Alice...

@dckc
Copy link
Member Author

dckc commented Mar 2, 2022

cost?
JS "find or create" - small. 3.
cosmos level - more expensive.

option: free if they already have BLD?
easier to game

nearby issue: how to get my friend in Agoric when my BLD is locked? how much does it take to earn 1 BLD in 1 month from staking rewards?
"sponsoring" other "users"?

@Tartuffo
Copy link
Contributor

Tartuffo commented Mar 2, 2022

@dckc I created #4723 to capture the "how to help a friend create an account" use case. Assigned to @rowgraus , and put it in the general Product Backlog (not MN-1).

@dckc
Copy link
Member Author

dckc commented Aug 1, 2022

@samsiegart writes in #5860 (review) :

we will at some point want provideSmartWallet to be callable in this same way so a user can create their wallet from the browser.

The Feb 24 design above is one answer.

But I wonder if it's overkill. In order for the cosmos layer to check a signature, an account has to exist; that is: some tokens must have been sent there. Perhaps that's enough, initially? Yes, somebody could send a worthless token over IBC to get an account created... but maybe that's an acceptable risk, initially?

@dckc
Copy link
Member Author

dckc commented Aug 17, 2022

SMART_WALLET option for instagoric faucet

@samsiegart 's Smart Wallet AMM Trade notes include:

$ make ACCT_ADDR=agoric14l44ylg9kexqafvdxwacrzg5g0fal8ud0wl586 AGORIC_POWERS=SMART_WALLET fund-acct provision-acct

where provision-acct is

provision-acct: wait-for-cosmos
$(AGCH) --chain-id=$(CHAIN_ID) \
--home=t1/bootstrap --keyring-backend=test --from=bootstrap \
tx swingset provision-one t1/$(BASE_PORT) $(ACCT_ADDR) $(AGORIC_POWERS) \
--gas=auto --gas-adjustment=$(GAS_ADJUSTMENT) --broadcast-mode=block --yes

For end-to-end testing of an AMM swap (#5073), I'm inclined to add a corresponding SMART_WALLET option to the instagoric faucet.

cc @arirubinstein

p.s.

@Tartuffo Tartuffo assigned dtribble and rowgraus and unassigned dckc and michaelfig Aug 17, 2022
@Tartuffo Tartuffo changed the title decentralized account provisioning Decentralized account provisioning Aug 17, 2022
@dckc dckc added the pso label Aug 19, 2022
@dckc
Copy link
Member Author

dckc commented Aug 19, 2022

@dtribble @rowgraus as we have discussed, I added a couple questions to the problem statement:

  • should we "walk before we run" w.r.t. the number of SMART_WALLET accounts, while we gather confidence in system performance?
  • provisioning ag-solo (REMOTE_WALLET) accounts is higher risk. how to manage that risk?

@dckc dckc removed the needs-design label Aug 25, 2022
@dckc dckc assigned michaelfig and unassigned dtribble Aug 25, 2022
@dckc
Copy link
Member Author

dckc commented Aug 25, 2022

Today's design: charge 10BLD for a SMART_WALLET account; put proceeds in community fund.

I plan to make a stretch-goal issue to make the 10BLD a cosmos governance parameter.

@dckc dckc changed the title Decentralized account provisioning Account provisioning: charge BLD for smart wallet Aug 26, 2022
@dckc
Copy link
Member Author

dckc commented Aug 26, 2022

Since we're charging execution fees in IST based on message size (#5817), for bootstrapping, should we issue 1IST in exchange for the 10BLD? (or 0.25 IST or whatever)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cosmic-swingset package: cosmic-swingset enhancement New feature or request security
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants