A palavra velhaco vem do «espanhol bellaco (sXIV), "homem de má vida", este de origem obscura; ver velhac-; forma histórica c1560 valhaco». Velhac- (elemento de composição) é «antepositivo, do espanhol bellaco, "homem de má vida", do sXIV; Corominas o crê cognato do catalão antigo bacallar "velhaco, homem de má vida", que crê por sua vez do celta *bakallakos "pastor, camponês", acrescentando que o vocábulo catalão, assim como o francês bachelier "bacharel", antes "jovem que ainda não é cavalheiro", parecem supor uma variante *bakkaros; a origem da palavra castelhana — e, assim, da portuguesa — é, enfim, para Corominas, obscura; a cognação portuguesa inclui: velhaca, velhacaço, velhacada, velhacagem, velhacão, velhacar, velhacaria, velhacaz, velhaco, velhacório, velhaqueado, velhaqueadoiro/velhaqueadouro, velhaqueador, velhaquear, velhaquesco, velhaquete, velhaquez».
O adjectivo velhaco significa «que propositadamente engana, ludibria; enganador» ou «que age mal, trapaceia; traiçoeiro, ordinário, patife»; quer dizer ainda «que manifesta ingenuidade mas age com malícia ou esperteza; finório». Como regionalismo do Nordeste do Brasil, «diz-se de animal que não se deixa prender ou levar com facilidade». Na qualidade de substantivo (nome), trata-se de «indivíduo que se utiliza de má-fé e que engana e prejudica outrem».
[Fonte: Dicionário Eletrônico Houaiss]