Too Long; Didn't Read
QuarkChain partitions smart contracts, i.e., putting smart contracts in different shards if a reshard event happens. A smart contract contains code and storage, and the data size could be much larger than a user account. We do not partition user accounts, and a user can easily move its account state (mostly balance) to another shard via cross-shard transactions. This allows a user with a private key to access all resources (smart contracts) in all shards. Each smart contract has a shard key (fullShardId in our codebase), and any batch operations on all smart contracts with the same key are atomic. The behaviors of the smart contracts will be the same before- and after- reshard.