Spartan6 have a nice feature called chip DNA. It's unique 56 bit number. Device can read this, user thru JTAG also can read this. So, little program that read DNA thru JTAG and send this to server. Server makes personalized bitstream for that DNA and waits for payment. When payment is recived sends bitstream to buyer. That particular bitstream will only work with particular chip. And every one is happy, copying almost impossible.
No, the DNA register isn't useful for copy protection. I use it to
keep track of which chips got which error rates at which
frequency/voltage, but not much else.
The DNA register is just a shift register, so if you can get the
design into fpga_editor all you have to do is disconnect two wires and
hook it up to an SRL32 instead; then you can make the design think the
chip has any DNA code you like.
I don't think Xilinx gives you a tool that turns .bit files into .ngc
files that fpga_editor can load, but I also wouldn't be surprised if
somebody else has written one.