Every decision we make as a team towards building
@zksync is driven by our ethos, which is based on integrity and transparency. We have made honest mistakes in the past, but we always did our best to openly acknowledge them and take responsibility. And will always do so in the future.
However, today’s accusations are unfounded, misleading, and extremely disappointing coming from a team I highly respect.
The reader of the Polygon Zero post is left with the impression that Boojum is largely using Plonky2 code with little innovation, and that we allegedly re-used this code without providing any attribution to the original work. These claims could not be further from truth.
I really want to believe in the good intentions of the Polygon Zero team (which I highly respect for their excellent work). I am deeply passionate about the mission of
@zksync and the amazing work our team is doing, and I’m sure the same applies to the authors of the post and their work. Alas, passion can at times lead to rushed arguments and inaccurate statements.
So I’m going to share pure facts here and let the reader come to their own conclusions. Here is what you need to know:
• Both Plonky2 and Boojum are implementations of the RedShift construction (PLONK FRI).
• RedShift (1) was introduced by
@the_matter_labs team 3 years before Plonky2 paper. (2)
• Plonky2 team never gave us credit (although they refered to RedShift in their paper). We never bothered. It’s great to see someone improving on your work!
• Only ~5% of the Boojum code is based on the code of Plonky2.
• For the reused code, a clear attribution is provided in line #1 of the main file of the module. (3)
• The rest of the files are provided as they are. If they contained more information about the authors, we would obviously have copied that.
• In addition, the README file contains an acknowledgement to Plonky2. (4)
• In addition, the intro post contains an attribution to Plonky2, with specific names of the authors. (5)
We could have done it better. The community rightfully pointed out that there is a more standard approach to attributions, which we will wholeheartedly apply from now on.
Open Source is all about genuine cooperation. If the Polygon Zero team wanted additional credit, the easiest way would have been to submit a pull request which we would have happily accepted. Going ahead with public accusations of a complete lack of attribution (even if it was true, which is not the case here) is anything but the spirit of the Open Source movement. If you’re not happy about others – including potential competitors – using parts of your code, maybe Open Source is not for you?
Now, the part that I am most surprised about is complaints about benchmarking.
The whole point of neutral 3rd party benchmarks is to compare apples to apples, going beyond marketing noise and nuances of implementation. If you are unhappy with the choice of the benchmarking function (SHA256) or your implementations being unoptimized, why put your code out for benchmarking in the first place and then endorse it? (6) (7)
If someone can take 5% of the Boojum code and make it 10x faster, not only will we consider this a breakthrough work and immediately hire this person, –
@shamatar will name one of his cats in their honor.
We all stand on the shoulders of giants. Boojum is built leveraging the work of the brightest minds contributing to the field of cryptography. And we fully agree with the Polygon Zero team: “We can sustainably build software in the open, leveraging the combined talent and expertise of entire communities, and everyone benefits.” This is why Boojum was open-sourced under a free permissive license the moment it was released to the public, just like ZK Stack, and like every other software component we will ever create for
@zksync. Each of them is a small step on the long journey to scale Ethereum along with its values.
(1)
eprint.iacr.org/2019/1400.pd…
(2)
github.com/mir-protocol/plon…
(3)
github.com/matter-labs/era-b…
(4)
github.com/matter-labs/era-b…
(5)
zksync.mirror.xyz/HJ2Pj45EJk…
(6)
twitter.com/dlubarov/status/…
(7)
twitter.com/MihailoBjelic/st…