Username or EmailPassword
I think software patents can be done in the spirit of a patent, properly. This will also require copyright reform, though.
So, copyright law currently applies to both the binary and the source.
First, change copyright to 5 years.
Then, give the option of using a software patent INSTEAD of copyright. If you do this, the binary and source are protected as if it were copyrighted for 7 years. However, the source is immediately publicly available for review, and after 7 years, is released to the public domain. Now, grant this indiscriminately.
Congratulations, you've now just given an incentive for everyone to open source their stuff.