bips icon indicating copy to clipboard operation
bips copied to clipboard

BIP85: Clarify spec, correct PWD BASE64 test vector, add Portuguese language code

Open akarve opened this issue 1 year ago • 10 comments

Summary of changes:

  • Clarify drng_reader.read is a first-class function (not an evaluation)
  • Clarify possibility for TPRV keys
  • Add new reference implementation in Python
  • Clarify that HD-Seed-WIF uses most significant bits
  • Add language code for Portuguese under BIP-32 application
  • Correct DERIVED ENTROPY for PWD BASE64 test vector. See the following relevant test cases:

Unit tests and complete implementation that led to these suggestions is in akarve/bipsea.

akarve avatar May 26 '24 20:05 akarve

Glad to remove my implementation from reference implementations per #1580 but on review I think you will find that my implementation is more complete and unit-tested than the original. I was also unable to get the original to run at all after install.

akarve avatar May 27 '24 02:05 akarve

Paging @ethankosakovsky

murchandamus avatar May 30 '24 16:05 murchandamus

I will be happy to hear from @ethankosakovsky but he hasn't been active on GH since 2021. I have no idea if there's a procedure for this, nevertheless I volunteer to become a maintainer of this BIP if the author cannot be reached.

akarve avatar Jun 04 '24 02:06 akarve

Hey @akarve, I’ve tried to send an email to Ethan, let’s see what comes back. If we do not hear from Ethan, it seems to me that BIP 2 provides an option for another champion to take over stewardship of an existing BIP when the original Champion falls off the face of the earth.

murchandamus avatar Jun 05 '24 20:06 murchandamus

@murchandamus Howdy. Any luck reaching Ethan?

akarve avatar Jun 22 '24 22:06 akarve

Hey @akarve, I was unable to reach @ethankosakovsky per the email address provided in this BIP.

Sorry, there is very little precedent for this situation, so I’m still making this up as we go. We could have done this in parallel, beside trying to reach out directly, but I would like to propose the following next steps: Please post about your proposed changes on the Bitcoin Developer Mailing list, and point out that you volunteer to become the champion of BIP 85. You could also request in that email that if someone is in touch with Ethan, it would be appreciated if they could reach out to make him aware. Assuming that Ethan isn’t reactivated and nobody objects, we would then try to get some review for your changes, add you as a second BIP champion, and merge this PR.

murchandamus avatar Jun 26 '24 14:06 murchandamus

@murchandamus Done. The mailing list topic is "BIP-85 Champion Unreachable? Please weigh in." in case you'd like to comment.

akarve avatar Jun 27 '24 20:06 akarve

Yeah, I saw that. Could you please add yourself as a champion to the BIP in this PR?

murchandamus avatar Jun 28 '24 18:06 murchandamus

Will do. Can you advise as to whether champions for PRs in Status: Draft should remedy inconsistencies with other BIPs, like this inconsistency with BIP-32 or leave them as is for backwards compatibility?

akarve avatar Jun 29 '24 02:06 akarve

It may be useful to be consistent with bytes or bits in the document.

Preferably use bits throughout?

RandyMcMillan avatar Jul 03 '24 14:07 RandyMcMillan

It may be useful to be consistent with bytes or bits in the document. Preferably use bits throughout?

Yeah, I've done that wherever possible though there are some cases where say BIP-39 uses bits or where one needs an odd number of bits so I've kept those cases as-is.

I was more worried about changing the byte order for the XPRV application but went ahead with it in the name of consistency with BIP-32.

akarve avatar Jul 04 '24 21:07 akarve

@murchandamus hi, we about good to go here?

lmk if i need to do anything for the failing "Diff checks" — it's objecting to changes to the header block, which are necessary in this rare case.

akarve avatar Jul 15 '24 23:07 akarve

Given that this BIP was drafted more than four years ago, there seems to be a good chance that it is already in use. Insofar, it seems best to remain compatible with the original specification rather than fixing inconsistencies with other BIPs.

Compared to BIP-32, WIF is relatively unused. On the chance that there are security implications to the widely used BIP-32 order I stuck with BIP-32 ordering. I can change this if the reviewers don't agree.

akarve avatar Jul 17 '24 22:07 akarve

@murchandamus Change Log added. We should be good to go :) Thanks for your assistance in getting this over the line.

akarve avatar Sep 22 '24 21:09 akarve

@jonatack Thank you. I turned around your feedback and rebased into a single commit for clarity.

akarve avatar Sep 24 '24 02:09 akarve

what is this ? breaking changes after after 3 people talking for 4 months ?

I will be happy to hear from @ethankosakovsky but he hasn't been active on GH since 2021. I have no idea if there's a procedure for this, nevertheless I volunteer to become a maintainer of this BIP if the author cannot be reached.

BS https://github.com/bitcoin/bips/pull/1344#issuecomment-1420909645 (you'd just need to wait bit more, which you should if you're doing breaking changes, anyways)

scgbckbone avatar Oct 04 '24 20:10 scgbckbone

NACK

nvk avatar Oct 04 '24 20:10 nvk

Although the BIP is still in Draft status, I think it should have been marked as proposed or final a long time ago as it does appear to be deployed by a few projects. This should be well past the stage where breaking changes can be implemented. The breaking changes should have been discussed on the mailing list, and I think should have been in a new BIP which could supercede 85. Furthermore, the BIPs process currently has no way to distinguish BIP versions and the way that has been implemented here is confusing.

I think this PR should be reverted and the breaking changes should be first discussed on the mailing list and with the projects that have already implemented BIP 85.

I agree that the original author is unresponsive enough to justify a change of BIP champion, but I don't think that should mean the new champion can add any breaking changes that they wish.

achow101 avatar Oct 04 '24 21:10 achow101

I agree that the original author is unresponsive enough to justify a change of BIP champion, but I don't think that should mean the new champion can add any breaking changes that they wish.

he's only unresponsive on GH, if BIP2 is followed and email sent, he'd resurface imo (as last time)

scgbckbone avatar Oct 04 '24 21:10 scgbckbone

NACK post merge

RandyMcMillan avatar Oct 04 '24 21:10 RandyMcMillan

revert breaking changes PR https://github.com/bitcoin/bips/pull/1673

scgbckbone avatar Oct 04 '24 21:10 scgbckbone

he's only unresponsive on GH, if BIP2 is followed and email sent, he'd resurface imo (as last time)

https://github.com/bitcoin/bips/pull/1600#issuecomment-2150861263 and https://github.com/bitcoin/bips/pull/1600#issuecomment-2191817502 suggests that email was in fact tried, multiple times, and they were unreachable.

achow101 avatar Oct 04 '24 22:10 achow101

#1600 (comment) and #1600 (comment) suggests that email was in fact tried, multiple times, and they were unreachable.

Correct. Moreover an email was sent to the bitcoin dev list looking for him with no results. My understanding is that we followed BIP2 in this regard.

akarve avatar Oct 04 '24 22:10 akarve

Although the BIP is still in Draft status, I think it should have been marked as proposed or final a long time ago as it does appear to be deployed by a few projects.

Will propose that in a week if not proposed by someone before.

Thank you everyone for the feedback.

jonatack avatar Oct 04 '24 23:10 jonatack

I've opened a full revert in #1674 to provide a clean slate. Any desirable changes from this pull can be proposed separately.

jonatack avatar Oct 04 '24 23:10 jonatack

@achow101 @akarve my bad, now I see that BIP2 was followed

scgbckbone avatar Oct 05 '24 12:10 scgbckbone