Our block producing Witnesses define our security. 17 can start as the minimum, but the actual number should be dynamic and at least based on:
#1 A 99% uptime, low latency & ping times
#2 Rapid updates (and logged on a separate chain)
#3 Unique, geographically diverse IP address, port number, Environment Variables AND Webhost (for example: "WhoisHostingThis")
Is our code verifying that Witnesses are geographically unique, every possible attack vector is closed, and as much Sybil resistance is coded in as possible now?
As our market cap grows, it then becomes 31 Witnesses, then 23, then 88, and on up. Network security decisions should be instantaneous as Code cannot be socially engineered.