Every American citizen of good standing age seventeen, if on active military duty, or older is entitled by the constitution to carry, open or concealed, a firearm of their choice anywhere they please. Any and all regulations/laws to the contrary are ipso facto unconstitutional.
The government should not under any circumstances have access to lists of owners of firearms. That access can only be for one thing, Future confiscation of those firearms.
When a citizen gets their drivers license renewed the DMV checks for wants and warrants, Basically the same check done on someone purchasing a firearm. so simply put a code on the back of the license that allows someone to purchase a gun. That way a background check is done and the government does not get told you now own a firearm. This would work as well as the current system at keeping guns out of the hands of criminals.