링크모음 링크세상
링크세상 링크모음 링크 애니 웹툰 링크 드라마 영화 링크 세상의모든링크

라이트닝 네트워크 – LND 커밋당 비밀 파생

학습 목적으로 LND 채널의 모든 키를 다시 생성하려고 합니다.

MultiSigKey, RevocationBasePoint, PaymentBasePoint, DelayBasePoint, HtlcBasePoint를 재현할 수 있었습니다. 이를 재현하는 워크플로는 24개 단어에서 azeed를 사용하여 HD 노드 루트 키를 생성한 다음 HD Wallet BIP44 사양을 사용하여 정의된 경로로 이러한 키를 계산하는 것이었습니다.

내 HD 노드 루트 키(base58): vprv9DMuxX4ShgxMLHkP4A7EPJr52LoHYn5jD6vn3UfQnf6Tv1uA7mw3RozDzwD2vMxs5MWLAPENaxYvrDERFdARSQLa6RXWBih5bjRqh5hsfJr

(출처: word_local=”토마토 떼 사각형 스키 프레임 위에 버팔로 에어로빅 생강 곤충 감소 키위 주방 안테나 엘리베이터 세기 용감한 종기 가스펠 가스 피크닉 날씨 바구니”)

예를 들어 “m/1017’/1’/1’/0/0” 경로를 사용하여 RevocationBasePoint를 성공적으로 파생할 수 있습니다.
032a1e4b9ba2db7bcdee19cfb6cd9b285af0b99723f401e72990e278ea029a07e3
(채널 데이터를 읽는 데 사용한 실제 키는 찬툴스 구거로에서).

그러나 다음과 같은 Per-commitment-point를 도출할 수 없습니다.
0346d482f460d2a2e53db6c1f2cf06cfcf2d2151088787a4a7637ed35552a22767

BOLT 03에서와 같이 커밋당 비밀을 구현하고 테스트 벡터를 사용하여 성공적으로 테스트했지만 여전히 ‘0346d4..’ 키를 파생할 수 없습니다.

generate_from_seed(seed, I):
    P = seed
    for B in 47 down to 0:
        if B set in I:
            flip(B) in P
            P = SHA256(P)
    return P

나는 디코딩된 확장 개인 키를 시드에 사용합니다.

extended_private_key = "vprv9DMUxX4ShgxMLHkP4A7EPJr52LoHYn5jD6vn3UfQnf6Tv1uA7mw3RozDzwD2vMxs5MWLAPENaxYvrDERFdARSQLa6RXWBih5bjRqh5hsfJr"
decoded_key = base58.b58decode(extended_private_key)
seed = decoded_key[46:78]

인덱스 = 0xFFFFFFFFFFFF # 281474976710655(첫 번째 채널).

나는 올바른 시드를 사용하고 있지 않다고 생각합니다… 누군가 커밋당 비밀을 파생하는 방법을 도와줄 수 있습니까?

Leave A Reply

Your email address will not be published.