Tot nu toe vereiste elk Bitcoin -verbeteringsvoorstel dat cryptografische primitieven vereiste een nieuwe implementatie. De SECP256K1 -curve, evenals gerelateerde algoritmen werden allemaal geïmplementeerd in een aangepaste python. Ze verschilden echter enigszins van elkaar. De inconsistenties creëerden rustige verplichtingen en de beoordeling van BIP’s werd onnodig complex. Het probleem werd onlangs benadrukt in Bitcoin Optech -nieuwsbrief #348Ten minste een kleine groep bitcoin -ontwikkelaars schreeuwen al jaren om een standaard te creëren die herbruikbaar en verenigd is.
De vooruitgang van Blockstream -onderzoekers Tim Ruffing, Jonas Nick van Blockstream en Sebastian Falbesoner vorige week was aanzienlijk. Ze werken hier al aan. Voorstel voor chilldkgHet team heeft uitgebracht SECP256K1LAB. Nieuw, Opzettelijk onzeker Python -bibliotheek om te prototype, experimenteren en BIP -specificatie. Dit is niet bedoeld voor productie (omdat de code geen constante tijd is en dus kwetsbaar is voor zijkanaalaanvallen), maar vult een cruciale kloof. Het biedt een consistente, schone referentie voor SECP256K1-functies, zoals Schnorr-handtekeningen in BIP-340-stijl, ECDH en lage groep/veldrekenen. Het is eenvoudig, het doel is om toekomstige bips gemakkelijker en veiliger te maken door redundante eenmalige implementaties te elimineren. Dit betekent minder codeaanpassing, minder spec -problemen en een duidelijker pad tussen prototypes en voorstellen voor BIP -auteurs.
> Waarom niet gewoon de echte SECP256K1 -bibliotheek gebruiken?
Bitcoin Core wordt geleverd met een C -bibliotheek met een snelle en constante tijd voor SECP256K1 -codering. Dus waarom gebruiken BIP -auteurs het niet?
BIP -auteurs moeten een voorstel indienen dat een referentie -implementatie omvat. Dit is om aan te tonen hoe een idee functioneert. De implementaties hoeven niet in Python te zijn. C is echter te laag niveau voor prototyping. Python maakt het bericht van de schrijver duidelijker, is eenvoudiger te lezen en aan te passen, en gemakkelijker te begrijpen. Het is vooral geschikt voor het creëren van specificaties vanwege deze kwaliteiten.
Om te experimenteren met een nieuw idee in cryptografie, heb je iets eenvoudigs, duidelijk en veilig nodig. In principe zijn tools zoals HACSPEC Ze zijn ook geldig voor roest. In de praktijk is HACSPEC echter moeilijk te lezen en mee te werken, met name voor BIP -gebruikers die Rust niet kennen.
Het gemak van Python blijft de reden dat veel auteurs het kiezen om te beschrijven hoe dingen werken.
Waarom BIP-auteurs SECP256K1 keer op keer opnieuw rollen
Het verhaal begon terug in BIP 340 Schnorr -handtekeningenDe BIP -auteurs hebben de referentiecode oorspronkelijk in Python gemaakt om het voor mensen gemakkelijker te maken om de wiskunde te begrijpen. Ze specificeerden precies hoe Schnorr’s stijl van ondertekening en validatie kon worden bereikt met behulp van SECP256K1 -curve -parameters. Het team moest alles zelf creëren: groepsoperaties, veldrekenkunde en deterministische nonce -generatoren, evenals de coderingsregel. Python was een duidelijke, educatieve taal. De Python -code was duidelijk en leerzaam.
Evenzo, BIP 324 gecodeerd transport P2PDit protocol is gebaseerd op gedeelde geheimen, belangrijke beurzen en symmetrische codering. Het maakt gebruik van het SECP256K1 -algoritme dat wordt gebruikt door BIP 340, maar gebruikt geen implementatiecode. De Python -implementatie van alle cryptografische logica, inclusief ECDH -serialisatie en handshake -patronen, werd helemaal opnieuw herschreven. Hoewel de onderliggende wiskunde hetzelfde is, heeft elke BIP zijn eigen unieke versie van logica. Het resultaat is een duplicatie van werk en de introductie van subtiele inconsistenties.
SECP256K1LAB: Wat is het?
SECP256K1LAB Deze Python -bibliotheek werd gebouwd met één doel voor ogen: om het voor bitcoin -ontwikkelaars en testers gemakkelijker te maken om cryptografische specificaties te creëren. Python is momenteel de meest gebruikte taal om referentie-implementaties voor BIP’s te maken. Een gedeelde bibliotheek die kan worden hergebruikt, is logisch. De bibliotheek is niet gebouwd voor productie. Het is ontworpen voor prototyping en niet voor prestaties. Deze interface biedt een uniforme, schone en leesbare interface voor Core SECP256K1 -functies, evenals minimale installatie. Het is niet langer nodig om je eigen code te maken elke keer dat je met een idee wilt experimenteren of laten zien hoe iets werkt.
Chilldkg
SECP256K1LAB Het eerste prototype werd ontwikkeld in de context van ChilldkgDe nieuwe BIP is een voorstel om gedistribueerde sleutels te genereren. De auteurs hebben geen aangepaste Python -implementatie voor SECP256K1 geschreven, alleen om aan deze specifieke specificatie te voldoen. In plaats daarvan gebruikten ze SECP256K1LAB die alle cryptografische blokken afhandelden zodat iedereen het kon benutten. Ze hopen dat door het hergebruiken van een open, gedeelde codebase Future Bips niet helemaal opnieuw hoeft te worden geschreven. Het SECP256K1LAB-project biedt een open-source foundation voor nieuwe voorstellen om samen te bouwen en te verbeteren.
Wat kan het gaan?
Het is een open vraag. Moet SECP256K1LAB in de BIPS -repository zijn of niet? De bibliotheek is al nuttig voor het delen van cryptografische voorstellen. Er zijn echter voortdurende discussies over de ware plaats in het Bitcoin -ontwikkelingsproces. Of het nu blijft als een op zichzelf staande bibliotheek of nauwer wordt geïntegreerd met de BIP -workflow, één ding is duidelijk – het vult een gat die al jaren bestaat. U kunt ons uw feedback geven als u een auteur bent van BIPS, Spec Reviews of gewoon geïnteresseerd bent in de ontwikkeling van cryptografische tools voor Bitcoin. De Bitcoin-Dev-mailinglist is een geweldige plek om deel te nemen aan het gesprek of u kunt direct bijdragen. SECP256K1LAB Github Repo.
Kiara Bickers heeft een gastblog geschreven. De meningen zijn de auteur en weerspiegelen mogelijk niet BTC Inc.
“DagelijksCrypto is niet verantwoordelijk voor alle activiteiten die u buiten de dagelijkse crypto uitvoert.”

