O melhor que você poderia fazer é Quark ou X11 com blocos de 20 seg.Mas esquece essa parte do premine,ninguem vai querer.O máximo que você pode fazer é,em uma moeda de 500.000.000 total,você poderia minerar 2.500.000 para distribuir como recompensa para a comunidade.
pra justificar um premine vc precisaria fazer um airdrop, ou alguma outra distribuição inicial para o publico geral. Senão ninguem vai aceitar a moeda.
Quanto ao algoritmo para mineração, depende do seu objetivo. use quark ou x11 pra evitar ASIC, blake-256 se o objetivo for evitar asic inicialmente, mas que existam asics no futuro, caso a moeda ou outra do mesmo algoritmo de certo, sha256 ou scrypt se qusier uma base pre-existente de asics. Algo beaseado n oalgoritmo da monero (nao lembro o nome) se quiser mineração em cpu apenas, spread-x11 se quiser evitar pools. Ou algo novo, que precisa ser bem estudado e planejado em questão de segurança.
Blocos de 20 segundos eu não recomendo, porque é muito próximo do tempo de propagação de um bloco pela rede, principalmente se forem blocos com muitas transações. Isso vai gerar MUITO bloco órfão e sobrecarregar a blockchain (além e frustrar os mineradores). 1 minuto é o tempo minimo que eu recomendo pra blocos, nas condições atuais. Existem propostas de tornar os blocos deterministicos, e assim permitir tempos menores de blocos, mas não sei de nenhuma implementação, então a menos que esteja disposto a criar isso do zero, não recomendo.