Some of your best work yet cm! I also bet you put considerably more time into writing this BSIP. You covered the bases quite well, tho you might consider adding that use of the testnet is important to gauge RAM impact of the added accounts.
Also, unless I missed it, you didn't mention whether accounts could be added as claims are made (When Bitcoin user presents his private key to claim his FBTC UIA tokens) or if they are added in a new genesis block in a HF. The former would require a fee to create the accounts unless an exception is built into the code to waive account creation fees for this purpose. It would also require referencing the BTC snapshot in some manor at the time the claim is made.
Thanks, yeah I've put a few days into this topic & it still needs work. You're right that I skipped over discussing accounts, it's not entirely clear in the docs whether or not you can sharedrop without creating an account for the recipient.
Looking at the BTSX->BTS snapshot, both the initial_balances & sharedrop_balances fields reference the BTSX key not a BTS account, and searching cryptofresh for the account yields nothing. However, this genesis file did create initial accounts so perhaps an account per planned balance sharedrop is required?
Both BTSX and PTS-DPOS created sharedrops against Protoshares which is a smaller version of what would need performed against the BTC network. They both reference raw addresses without pre-registering accounts for these balances.
What would be best is if we could specify an 'uia_balance' for each address, and allow the user to import their BTC private keys into an existing Bitshares account, so we could avoid registering 52 million bitshares accounts (very expensive for the sharedropper).
I'd greatly appreciate any developer input on this topic, some of this is pretty complex and undocumented.
It's possible to pre-register accounts for users, however it's most appropriately performed during the genesis/initialization of a fresh graphene blockchain base than upon the BTS DEX (unless you paid to register all of the accounts, which would be seriously expensive).