QFinance is a decentralized protocol enabling users to create and join Ethereum-based investment pools in a trustless, decentralized manner. Each pool consists of underlying assets (generally but not necessarily ERC20 tokens on Ethereum) determined at pool creation. QFinance pool is created with a breakdown of assets that represent the portfolio. When new ETH is deposited to the pool, the pool will acquire the tokens as determined by their breakdown and hold them on the user's behalf. At any time, a user may call the withdraw function on the contract to retrieve some or all of their principal.