Tanken bakom Vyper-projektet var att utveckla något som utformades på språknivå för att naturligtvis uppvisa en hög grad av säkerhet. Projektet författades ursprungligen av Vitalik som ett bevis för begreppet ersättare för Serpent, dess föregångare, men strax efter skapandet befann sig Vyper sig utan en dedikerad underhållare. Lyckligtvis fanns det entusiastiska medlemmar i samhället som tog upp facklan och fortsatte utvecklingen av projektet, och vi (EF Python-teamet) blev engagerade i projektet under en tid tidigare i år.

I höst genomfördes en preliminär säkerhetsrevision av Consensys Diligence-teamet på den Python-baserade Vyper-kompilatorn. Du kan läsa resultaten själv här.

Vi uppmuntrar dig att läsa rapporten, men det finns två huvudsakliga uttag.

  1. Det finns flera allvarliga buggar i Vyper-kompilatorn.
  2. Kodbasen har en hög teknisk skuld som kommer att göra adressering av dessa problem komplex.

Eftersom den befintliga Python-baserade Vyper-implementeringen ännu inte är klar för produktion har den flyttats ut från ethereum github-organisationen till sin egen organisation: vyperlang. De befintliga underhållarna planerar att ta itu med problemen ännu en gång, men vi kommer att fortsätta följa projektet nära här:> https://github.com/vyperlang/vyper

Samtidigt fortsätter vårt team arbetet med en rostbaserad kompilator i tandem. Mer om det nedan, men först, här är lite mer om hur vi kom dit vi är idag.

Under året har vi arbetat med projektunderhållarna för att fokusera på att förbättra kodkvaliteten och arkitekturen för projektet. Efter några månader med arbete var vi skeptiska över att pythonkodbasen sannolikt skulle leverera på den idé som Vyper lovade. Kodbasen innehöll en betydande mängd teknisk och arkitektonisk skuld, och ur vårt perspektiv verkade det inte som om de befintliga underhållarna var fokuserade på att fixa detta.

Utforska Rust

Tidigare i år i augusti utforskade vi att producera en version av Vyper-kompilatorn byggd på grundläggande annorlunda arkitektur. Målet var att skriva en kompilator i Rust som utnyttjar det befintliga arbetet från Solidity-teamet och använder YUL-mellanrepresentationen för att vi ska kunna rikta in oss på EVM eller EWASM under sammanställningen. En rostbaserad kompilator kan enkelt kompileras till WASM, vilket gör kompilatorn mycket mer bärbar än en baserad i Python. Genom att bygga ovanpå YUL skulle vi få EVM- och EWASM-samlingen gratis utan kräver bara kompilatorn för att hantera omvandlingen från en Vyper AST till YUL.
Vi var tillräckligt långt tillsammans med vår Rustbaserade Vyper-kompilator när Python Vyper-granskningen släpptes och var säker på riktningen. Granskningen bekräftade många bekymmer kring pythonkodbasen och hjälpte till att validera den riktning vi har tagit.

Arbetet fortsätter

Som sagt, underhållarna av Python Vyper codebase avser att fortsätta med projektet. Även om vi inte planerar att ha fortsatt deltagande i pythonkodbasen, önskar vi dem lycka men ville också notera de senaste händelserna för att undvika oavsiktligt signalering om att projektet var säkert att använda.

Så för närvarande finns det för närvarande två “Vyper” -kompilatorer: Den EF-stödda arbetar för att bygga en kompilator skriven i Rust för att leverera den ursprungliga idén om Vyper, och Python-insatsen som kommer att arbeta oberoende mot samma mål i Python-kodbasen. Vi hoppas att vi kan fortsätta arbeta tillsammans för en enda “Vyper” med flera implementeringar och vi kommer att hålla alla uppdaterade när projektet går framåt.

LEAVE A REPLY

Please enter your comment!
Please enter your name here