Transparency within the Dfinity Foundation

I apologize, I may have gotten a little carried away. I have a hard time understanding English and I have a difficult time grasping the nuances and intentions.
Dfinity should keep it’s power on the network, but I agree that they could bring more transparency.

From the beginning, I suspected that such an incredible project could not have come from an isolated scientist. ICP was commissioned by a higher authority, and probably funded by it. There must be secret agreements.

@Manu I really like your thinking here. I think NNS voting is, looking at the IC as an isolated system, the area most in need of design thinking and refinements, as per your suggestions. One of the things that made Steve Jobs such a towering figure is that the very core of his thinking was that technology is about people. Where engineers around him would focus often on the tech, its capabilities, its limitations, Jobs kept bringing it back to: how does it affect people?

The NNS is what will define, all being well, the strategic and technical future of the IC, and unless it truly gives voice to the IC community, and makes decisions and chooses priorities according to something other than ICP ownership concentration, I suspect it will buckle.

But the reason this thread, titled “Transparency within the Dfinity Foundation” matters so much, is because, as your post makes clear, the IC itself is not remotely decentralised & decoupled from Dfinity. This goes well beyond voting power. Dfinity shapes the direction of the codebase, the most significant proposals that get put to a vote, and controls access to the code that makes it run. And Dom, alone, controls Dfinity. So the issue is not Dfinity has a board. Nor is it Dfinity has a terribly, scandalously poorly constituted board from the point of view of good practice, accountability and transparency. It is the fact that that board, of Dom (and his token Swiss lawyer), ultimately controls not just the voting, but the codebase and the infrastructure on which the entire IC rests.

Let us say that people adopt all your suggestions. Even more, they follow your advice day in day out in terms of their participation. And then Dom decides to sell the propietary code. Change the infrastructure. Wind up Dfinity. Sack key staff. Declare Dfinity insolvent. Did you know FTX was hiring for 13 positions the day it shut down?

So I think there are two choices: genuinely decouple DFINITY from IC; OR make Dom’s mono-authority transparent and accountable. Option #3, I fear, is disaster on the way. I rather be wrong on this than be Cassandra, but it feels like a gamble. What am I saying? It’s crypto: YOLO!

6 Likes

Ha! Nothing to apologise for! Being carried away is a sign of passion (I don’t think anyone would accuse me here of not doing the same!). I feel, unlike 8-9 months ago, the quality of the discourse here is fantastic, the engagement nuanced and considered and the voices sincere. Keep on getting carried away, and adding to the conversation.

4 Likes

I don’t think that statement is true. The main IC git repository contains the entire code of the replica and the main NNS canisters. Everyone can build all those components entirely from these repositories – and that is also how we internally do test builds to validate determinism. There are a few examples of canisters that live in other repositories such as Internet Identity or the NNS frontend dapp, as well as tooling such as the SDK, but they are all open-sourced. What are you missing?

1 Like

Hi @bjoern , this is a new area of inquiry for me, so I appreciate your answer to @Zane. I guess a simpler way of putting it would be: if Dfinity vanished in a puff of smoke tomorrow, and all its private repos were abruptly wiped is it the case that:

a) some part/s of the IC would break
b) nothing would break
c) Maintaining and developing it over the next year would hit walls from not having access to Dfinity’s private repos
d) The private repos would not be missed

If it’s b+d, then yes, the IC is open source, and we benefit from, but don’t depend on Dfinity’s private code.

If it’s a, c or b+c, then the IC is not fully open source, and the system is beholden to Definity’s internal governance, probity, solvency, and fiat. Which would make Dfinity’s transparency an issue outside Dfinity.

Nore subtly, as @justmythoughts pointed out, the ic api code that powers the dashboard is not open source:

Now, the API is by definition not the source code, but it points to a different kind of dependency: keeping the api private, again, puts the community in a highly vulnerable position of faith. Is the data we are looking at in the Dashboard a faithful reflection to what’s actually going on in IC?

Do we have any ways of querying the data layer as developers and building our own API? If not, then again, the IC as currently constituted, lives at the mercy of what Dfinity chooses to share or not to share, and the issue of accountability and transparency, when that info is ALL the difference to investor and developer decisions, becomes significant.

Genuinely open minded here, even if I am getting a pretty consistent picture emerge every single time I dive into a new area of the question. I’d LOVE to hear that the open source code is enough to run, clone and implement the IC and that the data on its current constituents is not behind an api wall only Dfinity has the means to build or extend.

Source available != open source. I remember reading some parts of the IC are patented by Dfinity and can’t be forked without changing the code. Isn’t that the case anymore?

The FSF would say that the distinction you’re making is “open source” (source is freely downloadable) != “free software” (users can make use of the software however they wish).

5 Likes

I’m a software engineer working on the protocol, not a lawyer, nor even directly involved with the infrastructure work (how everything is built, what is mirrored to the GitHub repository, etc.). So maybe don’t quote me on this, but from what I know you should be able to build the full replica binary (as well as all NNS canisters) from the published source code.

You would be missing much of the infrastructure (CI, testing, metrics and logs collection, etc.) around the IC, but with a bit of work you could put those together quickly enough.

Also (again, IANAL) my understanding of the license under which the code is released is that you are free to modify it in any way as long as it ends up part of the IC. The patents and whatnot only prevent you from taking the code and launching a competing network or service.

1 Like

Thanks a lot! That is really great to hear. I take it, from your understanding that in my scenarios above, Dfinity is teleported away with all its private repos, and we’d need to build our own CI/CD pipeline (fair enough!), but otherwise, we would have everything we need to recreate the IC. That’s fantastic at the level of code.

What about the data layer? Do you know if the Dashboard api works on publicly available data, or are the endpoints pointing to a private data layer? Could the community build its own API to surface extra aspects of, say, NNS data, or do we depend exclusively on what Dfinity chooses to share?

As an example, say I wanted to develop an API to surface the Software Carbon Intensity of the IC (a project I am actually contemplating), meaning being able to map transactions, nodes, canisters, transfers, votes, etc. Could I do that without Dfinity’s participation, or would I depend exclusively on what is exposed by the private api code?

As a simpler example, I understand the API only shares a limited history of votes. If I wanted to get more history than that (assuming that data is preserved in the data layer, even if capped in the API response), could I?

Again, your engagement and clarification are much appreciated.

1 Like

The data behind the public dashboard is provided by a combination of Prometheus (scraping replica metrics and aggregating them to the subnet level – for the most part this just takes the median across replicas) and some database (that I’m not familiar with) that persists voting history and whatnot (since the NNS itself may or may not preserve all of it; and it is likely safer to query a copy rather than the NNS directly, regardless).

The API that serves that data is some Python server that queries the respective data sources.

I cannot speak for the NNS data (although I’m guessing that it’s publicly available directly from the NNS), but regarding the metrics, it’s your run-of-the-mill Prometheus setup. With the replicas currently on a VPN, this means that third parties cannot directly scrape the replicas’ metrics endpoints. We’ve spent some time thinking of how a decentralized monitoring architecture might look like, but short of exposing the metrics endpoint on the public internet (or at least to a vetted set of Prometheus instances) it’s unclear how one could build a scalable system. FWIW the replicas (and orchestrators, and node exporters) produce about 10M time series (scraped every 10 seconds), so even if it was technically feasible, an IC dapp that monitored the IC would be orders of magnitude larger than any dapp currently running on the IC.

2 Likes

You would not need to recreate the IC, even if Dfinity disappeared overnight. Only a small proportion of servers are owned by Dfinity, so all subnets would continue running, even if those servers also disappeared overnight.

The only reason why one may want to recreate the IC from scratch is e.g. if the NNS blockchain (the inputs to the NNS subnet’s state machine; which is being backed up by Dfinity) also disappeared along with Dfinity and for some reason you didn’t trust the NNS at the time. (With the blockchain at hand (and all the replica binaries deployed in the past year and a half) you can replay the whole NNS history, similar to more traditional blockchains.)

1 Like

The increase in voting power stems from an increase in staking, reflecting the continued commitment to the further development of the IC. The voting power is exercised collectively by a small group of professionals voting on proposals on behalf of DFINITY and the ICA.

The ICA was founded under Swiss law as a membership based organization. Its purpose is to allow IC community members to unite their activities and represent their interests. Its highest decision body is the General Assembly of members, typically meeting annually. Admittedly, such activities have to date not taken place under the formal header of the ICA. This should improve as the community develops and comes forward with proposals of how it wishes to organize.

7 Likes

@free this is fantastic, granular information which makes technical sense, and goes a long way toward addressing some of the worst case scenarios I could envisage otherwise. It does suggest that technically IC is pretty much loosely coupled even if cohesive with Dfinity, which bodes much better than I feared for its resilience.

I still think Dfinity’s governance holes represent a strategic risk of grave and potentially existential proportions to IC given its strategic, marketing and political centrality, but it makes a huge difference to know it doesn’t make it a technologically existential risk. It also demonstrates the work the Dfinity team has been doing to decentralise and decouple is substantive and significant. And for that credit must also go to Dom, who has the entire ultimate responsibility.

This discussion, and your contribution in particular, have helped me reconsider my own involvement and given me much to think about. If the strategic as well as the technical “stack”, the ability to set the direction of the IC can also be decoupled and de-risked, then the potential might still be there for some form of take-off. It is hard to see how this happens however without a financial reorientation of Dfinity toward building community capacity to drive and execute the roadmap, or without fundamental governance reform to ensure the direction Dfinity drives the project is more democratic and certainly incomparably more accountable to the community on whom the future of IC depends.

Thanks again.

5 Likes

Context:

Since this is Paul’s first post on developer forum.

@paulaitubi is the VP of Finance at Dfinity.

https://twitter.com/paul_meeusen
https://www.linkedin.com/in/paulmeeusen

8 Likes

Your contribution is very appreciate for the community. Thanks :pray:
I love see people so intelligent join the community

1 Like

Aaaand here we go again. Just as hope was dawning for me again: sigh. Back to even more outrageous, unethical and blatantly dishonest dodginess. Clumsy too, since it is so easily verified.

My first question to myself was, if the ICA is meant to be representing the community as a membership organisation, how can “a small group of professionals” vote on behalf of both, Dfinity and the ICA? Isn’t that yet another even stranger conflict of interest, when Dfinity represents a single man, and a membership organisation is meant to be entirely accountable to its members, of whom I would assume Dom or Dfinty aren’t members, or it would not be “independent” or a community body?

But hey, this is Dom Williams and Dfinity of (in)famous constitutional shenanigans. Assume nothing. So I doule checked. I went to the ICA site:

“The Internet Computer Association (ICA) is a Geneva-based independent members organization that advocates for the Internet Computer network while supporting and coordinating ecosystem participants.”

Fantastic! Exciting! The IC is decoupling. We even have an independent members’ association representing the community with serious voting power. There’s a General Assembly. This is proper accountability at last. Hey, I might even join, personally or via my foundation. Then I’m not just pointing out critical flaws but can do my best to do something about them, with and for the community. This is legitimately my thought process at this point.

OK, so who would be my fellow members, and how do I join? Hmm… Lemme see.

“Members consist of geographically distributed and diverse businesses and nonprofit organizations, including data centers and node providers, startups building decentralized services and their investors, participants in decentralized finance, enterprises migrating to the open internet, universities and research organizatons, educators and many others. The ICA continues to welcome new members that support its mission of stewarding the adoption of the Internet Computer.”

Cool, that sounds like I might be able to contribute and help: let’s check their charter. Nope. Nowhere in site. Off site? Took a while, but I found the association incorporation number, in Geneva. Found their documents. Discovered

“Steering Committee: Dominic Williams, from Great Britain, in Oxford, GBR, president, with collective signature of two, with a director, and Bochsler Gian, of Neuchâtel, in Chéserex, director, with collective signature of two, with the president.”

And then a statement of institutional “mutation”:
" Internet Computer Association, à Genève, CHE-132.001.501 (FOSC du 16.08.2021, p. 0/1005271910). L’inscription no 19857 du 11.08.2021 est complétée en ce sens que le membre Williams Dominic est nommé président."

The member is being made President as mentioned above: henceforth… Dominic Williams.

It turns out, I’m sorry to say, that @paulaitubi seems to be, on a charitable reading, disingenuous. Less charitable souls might say outright deceptive.

No, from what I can see, the ICA is NOT a members organisation as suggested in the website, at least not constitutionally. No, there is no publicly available charter, and the statutes of association do not indicate any requirements for a General Assembly, any process for registering members, any accountability to them, or any members’ voting process to establish the Board.

Instead, the board of these “independent members” is, once again, Dom (and his token swiss lawyer). Who now personally controls the voting power of Dfinity, openly, and the voting power of the ICA (behind smoke and mirrors). Unless I am missing something huge (truly happy to stand corrected as I have shown a mere message ago), this is Dom’s most scandalous governance outrage yet, worryingly aided and abetted by… Dfinity’s VP of Finance(!). To paint a cartel as an “independent members” body representing the community, is Kafkaesque.

So who is this, sweetly described, small group of professionals voting on behalf of Dfinity and the independent, non-dfinity community (wut?)? Why is the independent members’ association set to auto follow Dfinity? Might it be because that “small group of professionals” report to the same CEO, President (twice over), Chief Scientist and sole board member of both boards (with his Swiss lawyer)?

And did you know that ICA gives itself the right to invest, take equity, buy businesses? And the funding from this second Dom front organisation, the advertised grants programme: where does it come from, go, who does it enrich? I wouldn’t bet on the General Assembly to inform us in its annual report to members. Because I don’t expect a General Assembly to happen at all. Because from what I can see, no General Assembly constitutionally exists.

And we now find that the defacto voting power of Dfinity, ahem, Dom, is double the nominal one, but by splitting it you manage public relations?

Can @paulaitubi show us the Charter? Can he show us where it provides for a General Assembly? Surely, at the very least, he can tell us whether Dom is the President and sole Board member (with his token Swiss lawyer)?

The fact is that if there was anyone else on the board, it would be reported as a “mutation” in the public records. The only such mutation is Dom becoming President.

For how familiar this is getting, it doesn’t stop being depressing.

6 Likes

I apologise in advance if anything in my inferences above is incorrect and will gladly apologise if my words have in any way maligned @paulaitubi or the ICA. My words are not a negative agenda but a reflection of care, and how very sad and affecting it is when a project so full of potential benefit for the world is undermined at every turn by what appear to me to be scandalous governance issues with the voting power and roadmap control to shape, and sink, the entire project, without community visibility, influence or redress.

1 Like

The code is publicly available on git but not everything is under Apache 2.0 license according to this tweet: https://twitter.com/dfinity/status/1391675345523200003?s=20

All code for the #InternetComputer is licensed under the Apache 2.0 license, except for a few components licensed under the Internet Computer Community Source License and Internet Computer Shared Community Source License.

Would be nice to know why Dfinity chose to restrict those components under a different license, what IC’s proprietary licenses entail and have a concise list of those components.
If Dfinity disappeared overnight or went rogue, the code would be there but it’s ultimately pointless if the community can’t easily fork it and keep working on it.

2 Likes

Hey @Zane I believe @free explained it well already. The licenses you refer to are still hugely permissive, but they protect the project from clone competitors by making the any such projects, if they use Dfinity, useable by Dfinity. It’s a good model I believe, and one I can see myself using in many instances. So much of IC is fantastically designed and I do believe the vast majority of the Dfinity team are good faith, technically brilliant individuals making largey the right calls in the areas under their control, Dom permittimg.

2 Likes

You’re right I missed this part, but tbh I’m not relieved by it, Dfinity owns the repos and a majority of VP, so they can:

  • refuse to approve commits in the repos
  • vote against node upgrade proposals
  • stop anyone else from forking the project

I understand Dfinity wants to prevent random people from stealing their work and starting a competing project, but free software is part of the crypto ethos and with so much reliance on the foundation already not being able to compete with it just seems to further prove the centralization aspect many complain about. Dfinity’s lack of transparency and alleged control by Dom only makes it worse, the IC code is free to use as long as Dfinity, a company controlled by one man, allows. If it ever closed or went against the community’s will, there is nothing we can do other than rework all the code under stricter license, which is yet another obstacle on top of an already tough hypthetical situation.

1 Like