The 32-year-old also played for Huddersfield in the past.
Vaughan was let go by Bradford City when his contract expired. Now he is a free signing for Tranmere.
He was at Tranmere on loan in the second half of last season, scoring three goals in eight games.
"When I signed on loan at the beginning of the year, the bigger picture was to join on a permanent contract," Vaughan told Rovers' website.
"Since lockdown, we have been working really hard to make it happen."
He added: "I can't wait to join up with the team and get going."