Princiapl account

Can a principal be generated in a canister? Can a principal generate multiple AccountID? How is the code implemented