​Secure access to the IC

This article started as a response to a recent post by Point Network (PN), but it may also serve as background information to recent Tweets about ECDSA integration on the Internet Computer (IC) and its use for integration with the Web technology stack.

​Reading the chain

One aspect mentioned by PN but often neglected in web3 is authenticity of data obtained from a blockchain. Traditionally, there have been three options:

​The Internet Computer instead uses threshold cryptography. In a nutshell, you can think about this as the IC having a single signature public key. Messages from the IC are cryptographically signed, and clients can validate the authenticity of those messages by validating the signature. This validation can easily be performed on any contemporary device, and the only required state is the IC's public key, which can easily be distributed with software.

​Of course, there is a lot more happening under the hood. Threshold cryptography ensures that the private key is securely shared among (a group of) nodes, and creating a signature requires contribution of 2/3 of the relevant nodes. Chain-key cryptography ensures that the public key remains the same even when network membership changes. Subnet delegations and Merkle trees provide tools for scalability. But that all doesn't change that the client only has to validate a signature against a known public key.

Accessing the blockchain from a web browser

Web browsers do not communicate with blockchains natively. So how does one equip a web browser with this additional functionality? There are two main options:
The two approaches serve different user bases: Users that (use one of the supported devices/operating systems/browsers and) are willing to install additional software on their systems will have the best-possible security with the first approach. Users that do not want to jump through additional hoops will still be served by the second option. Note that PN states that they provide a web2 gateway, so they think about the second group of users, too.

HTTP gateways to the IC

As described by PN, the main method of accessing canisters on the IC is through URLs such as https://5ba5l-caaaa-aaaag-qaoja-cai.ic0.app. The .app namespace is owned by Google, the .ic0.app namespace is owned by the DFINITY Foundation, and DNS records for that namespace are (currently) managed through Cloudflare. Certificates for .ic0.app are obtained from Let's Encrypt. Thus, in its current state, this particular method of accessing the IC is not really decentralized.

Future plans for HTTP gateways: Near-term work

Some ongoing and near-term work eases the dependency on .ic0.app by supporting:
These efforts will remove the single dependency on .ic0.app; they provide redundancy but do not fundamentally change the nature of HTTP gateways.

Future plans for HTTP gateways: ​Longer-term work

Accessing a blockchain through an HTTP gateway has three aspects that carry centralization risk:
All of these are solvable, and for each of these the threshold ECDSA functionality that will be rolled out on the IC in the coming weeks is an essential component. Yet none of these problems are easy to solve, even given threshold ECDSA:
In each of these longer-term plans, threshold ECDSA is a crucial component. Each of these will improve security of access from plain browsers in a different, valuable way. At the same time, solving each of these still requires significant additional effort.

​Conclusion

Providing access through additional software (such as a web extension on the user's device, or a mobile app that wraps a web browser) or by serving the assets directly into a plain web browser are not contradictory; they are complementary. They serve different user bases with different needs for security and interoperability. This is true for any blockchain, including the IC.
At this level of comparing additional software with plain browser access, I do not see a contradiction with PN – I do see different strategies in developing both options and different strategies in interoperability with vs. separation from web2. And that's perfectly legitimate.
As far as I understood, PN intends to serve dapp front ends from their own chain but have them interact with smart contracts on other chains. If that is true, it still seems difficult to validate the outputs of those smart contracts. The IC's threshold signatures make that type of validation easy – even in standard browsers; whether via a Web Extension or by code served through HTTPS, and on any device. That seems to be the fundamental difference.
And so, just to answer the question posed in the title of PN's post ("Is Point Network a Threat to Internet Computer ($ICP)/Dfinity?"): No, it's not. (Nor is it doing anything that the IC cannot do today.)
Made with Papyrs