{"id":4081,"date":"2021-05-14T12:54:14","date_gmt":"2021-05-14T12:54:14","guid":{"rendered":"http:\/\/43.153.210.228\/\/?p=4081"},"modified":"2021-05-14T12:54:14","modified_gmt":"2021-05-14T12:54:14","slug":"%e4%bd%bf%e7%94%a8bitcoinjs-lib%e4%bb%8ebase58%e6%a0%b9%e5%af%86%e9%92%a5%e7%94%9f%e6%88%90zprv","status":"publish","type":"post","link":"http:\/\/43.153.210.228\/?p=4081","title":{"rendered":"\u4f7f\u7528bitcoinjs lib\u4ecebase58\u6839\u5bc6\u94a5\u751f\u6210zprv"},"content":{"rendered":"<p>var bitcoin=require\uff08&#8217;bitcoinjs-lib&#8217;\uff09\uff1b<br \/>\u8bbebip32=require\uff08&#8217;bip32&#8217;\uff09\uff1b<br \/>\u8ba9rootKey=&#8217;xprv9s21zrqh143k32cfqocqhtbkieb5bqfazxx6jctncnuty3gujxs4csxwi9rcnyhdjdvpic6p1bnyezr2oourq56h6hadweetty1bssetl&#8217;<br \/>const node=bip32.fromBase58\uff08rootKey\uff0cbitcoin.networks.bitcoin\uff09\uff1b<br \/>\/\/\u65e7\u5e10\u6237\u6269\u5c55\u79c1\u94a5<br \/>console.log\uff08\u201c\u9057\u7559\uff1a\u201d+node.derivePath\uff08\u201cm\/44&#8217;\/0&#8217;\/0\u201d\uff09.toBase58\uff08\uff09\uff09<br \/>\/\/xprv9y7nl2k2dilda9bmop94k8pec2wdl998pldvtraxj5jiq36gnlmhvjg4by8fzgqzpabm5hdbi9sgrk1zci14n5j4pk1o6d3j4y6ns4na6<br \/>\uff08\u6309\u9884\u671f\u5de5\u4f5c\uff09<br \/>\/\/segwit\u5e10\u6237\u6269\u5c55\u79c1\u94a5<br \/>\/\/\u5c1d\u8bd5\u4f7f\u7528\u4e0e\u4e0a\u8ff0\u76f8\u540c\u7684\u8f93\u5165\u83b7\u53d6segwit\u6269\u5c55\u79c1\u94a5\uff08zprv\uff09\u3002<br \/>\u6211\u60f3\u5f97\u5230\u4e00\u4e2asegwit\/bech32\u6269\u5c55\u79c1\u94a5\uff0c\u4f7f\u7528\u4e0e\u4e0a\u9762\u76f8\u540c\u7684\u6839\u5bc6\u94a5\u3002\u5982\u4f55\u4f7f\u7528bitcoinjs lib\u5b9e\u73b0\u8fd9\u4e00\u70b9\uff1fBIP84\u53ea\u9002\u7528\u4e8e\u8bb0\u5fc6IIRC\u3002<br \/>\u9694\u79bb\u8bc1\u4eba<br \/>javascript\u8bed\u8a00<br \/>\u5206\u4eab<br \/>\u6539\u8fdb\u8fd9\u4e2a\u95ee\u9898<br \/>\u8ddf\u968f<br \/>17\u5c0f\u65f6\u524d\u95ee\u7684<br \/>\u65e0\u7591\u95ee<br \/>311\u9752\u94dc\u5fbd\u7ae0<br \/>\u65b0\u8d21\u732e\u8005<br \/>\u6dfb\u52a0\u8bc4\u8bba<br \/>1\u4e2a\u7b54\u6848<br \/>0<br \/>\u60a8\u7684xprv\u5df2\u7ecf\u6709\u4e86\u6d3e\u751f\u8def\u5f84\u201cbaked-in\u201d\uff0c\u6240\u4ee5\u5373\u4f7f\u60a8\u53ea\u662f\u8f6c\u6362\u4e3azprv\uff0c\u5b83\u4ecd\u7136\u4f4d\u4e8e\u65e7\u7684m44\/deriv\u8def\u5f84\u4e0b\u3002\u4f60\u4e5f\u4e0d\u80fd\u4ecexprv\u5230hdseed\u3002\u56e0\u6b64\uff0c\u8981\u4ecexprv\u66f4\u6539\u4e3azprv\u6216yprv\uff0c\u60a8\u9700\u8981\u4eceHD seed\u5f00\u59cb\uff0c\u7136\u540e\u58f0\u660e\u60a8\u7684derivePath\uff08\u201cm84\u2019\/\u2026\u201d\uff0c\u201cm49\/\u201d\/\u3002\u3002\u3002\u7b49\u7b49\uff09\uff0c\u7136\u540e\u60a8\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u6269\u5c55\u516c\u94a5\u3002\u7136\u540e\u4f60\u5fc5\u987b\u8f6c\u6362\u6210yprv\uff0czprv\uff0cypub\uff0c\u7b49\u7b49\u3002\u3002\u3002<br \/>\u793a\u4f8b\u4f7f\u7528bitcoinjs lib v3.3.2<br \/>\u51fd\u6570seedToXpub\uff08seed\u3001deriv\u3001account\uff09{<br \/>var root=bitcoin.HDNode.fromSeedHex\uff08\u79cd\u5b50\uff09\uff1b<br \/>var acct=root.derivePath\uff08\u201cm\/\u201d+deriv+\u201c&#8217;\/0&#8217;\/\u201d+account+\u201c&#8217;\u201d\uff09\uff1b<br \/>var xpub=acct.neuted\uff08\uff09.toBase58\uff08\uff09\uff1b<br \/>\u8fd4\u56de{<br \/>xpub\u516c\u53f8<br \/>}<br \/>}<br \/>\u51fd\u6570seedToXprv\uff08seed\u3001deriv\u3001account\uff09{<br \/>var root=bitcoin.HDNode.fromSeedHex\uff08\u79cd\u5b50\uff09\uff1b<br \/>var acct=root.derivePath\uff08\u201cm\/\u201d+deriv+\u201c&#8217;\/0&#8217;\/\u201d+account+\u201c&#8217;\u201d\uff09\uff1b<br \/>var xprv=\u8d26\u6237toBase58\uff08\uff09\uff1b<br \/>\u8fd4\u56de{<br \/>xprv\u516c\u53f8<br \/>}<br \/>}<br \/>\u51fd\u6570convertXpub\uff08xpub\uff0ctarget\uff09{<br \/>\/\/\u8f6c\u6362\u5668\u7684\u6e90\u811a\u672chttps:\/\/github.com\/jlopp\/xpub-converter\/blob\/master\/js\/xpubConvert.js<br \/>const prefixes=\u65b0\u5730\u56fe(<br \/>[<br \/>[&#8216;xpub&#8217;\uff0c&#8217;0488b21e&#8217;]\uff0c<br \/>[&#8216;ypub&#8217;\uff0c&#8217;049d7cb2&#8217;]\uff0c<br \/>[&#8216;Ypub&#8217;\uff0c&#8217;0295b43f&#8217;]\uff0c<br \/>[&#8216;zpub&#8217;\uff0c&#8217;04b24746&#8217;]\uff0c<br \/>[&#8216;Zpub&#8217;\uff0c&#8217;02aa7ed3&#8217;]\uff0c<br \/>[&#8216;xprv&#8217;\uff0c&#8217;04884&#8217;]\uff0c<br \/>[&#8216;yprv&#8217;\uff0c&#8217;049d7878&#8217;]\uff0c<br \/>[&#8216;zprv&#8217;\uff0c&#8217;04b2430c&#8217;]<br \/>]<br \/>);<br \/>xpub=xpub.trim\uff08\uff09\uff1b<br \/>\u8bd5\u8bd5\u770b{<br \/>var data=b58.\u89e3\u7801\uff08xpub\uff09\uff1b<br \/>data=data.slice\uff084\uff09\uff1b<br \/>data=Buffer.concat\uff08[Buffer.from\uff08prefixes.get\uff08target\uff09\uff0c&#8217;hex&#8217;\uff09\uff0cdata]\uff09\uff1b<br \/>\u8fd4\u56deb58.\u7f16\u7801\uff08\u6570\u636e\uff09\uff1b<br \/>}\u6355\u6349\uff08\u9519\u8bef\uff09{<br \/>return\u201c\u6269\u5c55\u516c\u94a5\u65e0\u6548\uff01\u8bf7\u4ed4\u7ec6\u68c0\u67e5\u662f\u5426\u610f\u5916\u7c98\u8d34\u4e86\u989d\u5916\u6570\u636e\u3002\u201c\uff1b<br \/>}&nbsp;&nbsp;&nbsp; <br \/>}<br \/>var mySeed=\u201c114259550292e14ca462e5202875f987fa3c93300306417c8b62de591710e4b34340a9bcdf8241ebbe83cf3cdf428c2f32973c9db68e247ce623fd73b9bd1fb2\u201d\uff1b<br \/>var extPriv=seedToXprv\uff08mySeed\uff0c84,0\uff09\uff1b<br \/>var zprv=convertXpub\uff08extPriv\uff0c\u201czprv\u201d\uff09\uff1b<br \/>\/\/Zprvacihk1ernzufx6zh3v8wemvw5s8y2xkmjdefef3v9x2jbdf9ij4vs5t4po6jhwsjkzjz1tddtenc5dpvsvffymzpzwz8kskci6wkysmuhup<br \/>\u5206\u4eab<br \/>\u6539\u8fdb\u8fd9\u4e2a\u7b54\u6848<br \/>\u8ddf\u968f<\/p>\n<p><a href=\"http:\/\/43.153.210.228\/\/wp-content\/uploads\/2021\/05\/1206blockchainBTCwww.qkl91.com_.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"\u65f6\u5149\u7d20\u6750-\u9999\u8f66\u7f8e\u5973  (1206)blockchainBTC\u6bd4\u7279\u5e01\u533a\u5757\u94fewww.qkl91.com\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"\u65f6\u5149\u7d20\u6750-\u9999\u8f66\u7f8e\u5973  (1206)blockchainBTC\u6bd4\u7279\u5e01\u533a\u5757\u94fewww.qkl91.com\" src=\"http:\/\/43.153.210.228\/\/wp-content\/uploads\/2021\/05\/1206blockchainBTCwww.qkl91.com_thumb.jpg\" width=\"594\" height=\"530\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>var bitcoin=require\uff08&#8217;bitcoinjs-lib&#8217;\uff09\uff1b\u8bbebip32 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4081","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/43.153.210.228\/index.php?rest_route=\/wp\/v2\/posts\/4081"}],"collection":[{"href":"http:\/\/43.153.210.228\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/43.153.210.228\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/43.153.210.228\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/43.153.210.228\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4081"}],"version-history":[{"count":1,"href":"http:\/\/43.153.210.228\/index.php?rest_route=\/wp\/v2\/posts\/4081\/revisions"}],"predecessor-version":[{"id":4082,"href":"http:\/\/43.153.210.228\/index.php?rest_route=\/wp\/v2\/posts\/4081\/revisions\/4082"}],"wp:attachment":[{"href":"http:\/\/43.153.210.228\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/43.153.210.228\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4081"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/43.153.210.228\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}