Community meeting: 4th June 2021

Motoko School
5 min readJun 5, 2021
A new proposal being submitted to the NNS.

The community meeting takes place every Friday at 5PM UTC generally on Discord where we have open discussions about the Internet Computer and all related development going on in this space.

This document is an attempt to sum up a lot of technical discussions that went on, I apologize if it’s not detailed enough.

1) OpenCan.

A place where devs would discuss about standards on the IC.

The NNS system allows some kind of proposal called motion that will not implement any code at all but will make everyone aware that a common agreement has been found. One issue is to discuss before submitting a proposal because submitting a proposal has a cost (though we learned that the cost of a proposal is not fixed and could evolve is the community wants so).

OpenCan would be the “staging” area before submitting a motion, it also include documentation.

Website : https://opencan.io/

Intends to be community-owned; any help appreciated (contact @OpenCan_io)

2) Memory limitation inside a canister and inside a subnet.

The canister 4GB limit was discussed: the limit comes from the WebAssembly 32 bits implementation.

Work is being done for a 64 bits WebAsembly.

Infinite virtual memory was discussed and seems possible (I have no clue about the implementation).

There is currently a “fake” limitation on the subnet memory size to prevent malicious actors from spamming new canisters with low-memory allocation and then increasing the allocation.

A lot more was discussed concerning virtual memory, subnet limits, canisters limitations.

3) What is the maximum number of nodes the IC protocol can support?

Apparently, thousands of nodes are a possibility.

The first implementation was tested with 500 nodes and was working.

The current strategy is to expand the number of nodes for the NNS which is the most important part of the IC.

Partial vs Full mesh ?

In a full mesh structure, all nodes are directly connected to all other nodes whereas in a partial mesh we allow more flexibility with a graph-like structure.

The partial mesh structure can more easily scale up the number of nodes with a drawback : if a node is surrounded by malicious nodes, it cannot communicate its state to other actors in the structure and can be “shut off” by the malicious nodes.

Some experimentations are being bone internally.

4) Security of the network: is node shuffling going to be implemented?

Some people in the community are strongly advocating for node shuffling.

Node shuffling would (as far as I understand) improve security aspects and privacy aspects.

For example, it would prevent or limit any physical actor targeting one special application hosted on the IC by looking at all the replicas nodes and trying to shut all the nodes off.

The shuffling would be needed between subnets and is theoretically possible because of a notion called “catch-up” package that allows any node to enter a subnet at any point and catching up with the state of the consensus.

Side-channels attacks/security enclave/ eclipse attacks were also discussed.

5) Privacy concerns.

A distinction was made between security and privacy. Ethereum is fully secured but it’s not private at all, the transaction ledger is completely transparent.

The Internet Computer would allow more privacy in that regard, but it would still be possible for a bad actor running a node to access data.

The problem is not an IC problem because any cloud computing platform has the same power over your data.

The only difference is that one the IC you trust different independent people instead of one company like Amazon or Google.

It seems that the only way to have true privacy is homomorphic encryption.

Work is planned to have different levels of privacy on the IC regarding the type of data you want to store but for the moment do not store your private key directly in plain text in the IC (just a recommendation).

Datacenters have a legal binding at this current stage so it’s highly improbable they try anything but let’s be cautious.

(More info on those legal bindings would be appreciated).

6) Ethereum vs Internet Computer

I cannot talk about what was discussed here….

Ethereum has different properties than the Internet Computer.

They are probably going to be sister networks, as work is being done with Chain Key technology to allow complete cooperation between the two.

We can foresee a near future where Ethereum applications would use the IC to serve their front-end and a less near future where Ethereum smart contracts would use the power of the IC to expand their possibilities (by storing some data, executing lengthy code…). Or you are free to have any different vision of the future, who knows?

7) Concern about the centralization of the voting power.

Currently and probably for the months to come a lot of neurons in the NNS are following the ICA neuron because it’s just easier and there is an economic incentive to vote for the “right” outcome.

What we are eager to see is the apparition of some community voice, and maybe even communities’ neurons that will propose changes through the NNS.

We probably need a platform or way to discuss (Forum/Discord/Twitter…?).

Maybe we will see some “campaign” going on to discuss about certain ideas/propositions.

Again, OpenCan can help on some topics.

8) More documentation/transparency from Dfinity.

What would be amazing is more transparency from the internal process going at the Dfinity foundation, like for example a list of the things being worked on.

Some public documentation about their security check going on and more. A lot of documentation has been released recently, but the community is always asking for more!

Conclusion :

Many concerns have been brought up to the table, that’s really a postive point: I love seeing the community discussing the eventual flaws of the IC; keeping a critical viewpoint is something highly valuable.

Apart from all those points we are all super excited about what is going on and waiting for more (when open deployment ?!)

After the meeting, Jordan Last has presented his IC implementation of a GraphQL Database called Sudograph, an amazing presentation!

If you want more info about Sudograph: https://github.com/sudograph/sudograph.

--

--

Motoko School

The Motoko school aims to be a place where everyone can join and contribute to make Motoko learning easier.