This multisig is really fun. After taking all this time to get working, now I just cant stop trying many combinations. All looking quite stable and very solid, but of course it is using localhost, so no real networking errors.
UDP sometimes is pretty finicky, but that is another advantage of the shared secret multisig. It essentially acts as an error correcting code, well at least as long I dont mix in packets that are corrupted. If even one bit gets changed, it will not match the packet crc and so just get ignored, then the decryption will also fail, so I would say the odds of bad data getting processed is ignorable, even using UDP path.
So, that means based on network error rate, we can set the M of N ratio and no only does the multisig give us a lot more privacy, it makes Teleport more reliable. Just imagine 100 rabbits being teleported and if only 40 survive, then the real rabbit can be recreated. That is M of 40, N of 100.
I dont think there is any other crypto that has up to 254 multisig and it is all configurable each time you do a teleport:
{"requestType":"teleport","secret":"","dest":"RUHAPSpJDHeFgFd1J34WHJ69TpkMBsWtBt","amount":".1","coin":"BTCD","minage":"1","M":"128","N":"254"}
The above is the JSON text my code looks for when doing a teleport. The "dest" is the public address and that is something you need to know somehow via different channel. "amount" is the amount of "coin", in this case 0.1 BTCD. "minage" is the youngest telepod you authorize to be used. Remember, the younger the telepod, the higher the attacker's chances of getting some statistical correlation. I would certainly not recommend minage of 1! Then there are the "M" and "N" fields, which are the multisig M of N and that's it. So you can control the teleport's most important parameters, of course we need to get a GUI so you dont have to be editing JSON, but I hope you can understand the basics of using Teleport.
I think I will skip the local encryption and go straight to a linkable library. I want to do some testnet teleports sooner rather than later! Since it is testnet, it wont matter if the telepod file format changes and I cant really test the third onion layer. OK, you convinced me, time to port into BTCD core.
James
Sounds good man. I assume we are starting beta tests when porting to BTCD core is completed and working or are you going to do more testing before beta?