The 22-year-old has put pen-to-paper on a three-year deal for an undisclosed fee.
A product of the Everton youth system, Duffy has been with the Merseyside club since the age of 16 when he moved over from Derry, Northern Ireland.
Strong in the air and on the ground, Duffy gained experience on loan with Scunthorpe as a 19-year-old before making his Premier League debut for the Toffees in January 2012.
The defender went on to make 10 first team appearances for Everton before joining Championship side Yeovil Town on loan last September. Initially linking up with the Glovers for a month, impressive displays saw the Irishman's loan deal extended to cover the full season, where he made 39 appearances, scoring once.
On the international stage, Duffy played for Northern Ireland's schoolboy and youth teams up to the age of 21, before opting to switch to play for the Republic of Ireland. His first senior cap came in a 1-1 draw with Costa Rica in May.
The towering defender, who is on standby for the Republic of Ireland squad which faces Oman in a friendly in Dublin on Wednesday, and a Euro 2016 qualifier against Georgia on Sunday, will wear squad number 22.