助记词

助记词

加密货币钱包GateHub数据遭泄露,140万账户信息被盗

资讯8btc 发表了文章 • 2019-11-20 12:49 • 来自相关话题

数据泄露索引网站“Have I Been Pwned”的安全研究员表示,有两个网站的220万用户的密码数据和个人信息被泄露。

11月19日,Ars Technica报道称,安全研究员Troy Hunt证实,被盗数据来自加密货币钱包GateHub和RuneScape机器人提供商EpicBot的账户。

Hunt表示,第一批被盗数据来自加密货币钱包GateHub的140万个用户账户的个人信息。第二批包含了自称是世界上最安全的一体化RuneScape机器人提供商EpicBot的约80万个用户账户的数据。

据报道,被盗信息包括注册的电子邮件地址、密码、双因素认证密钥、助记短语和钱包哈希。根据他们的调查结果,GateHub内部人士表示,这些钱包哈希并未被访问。

这已经不是Gatehub第一次遭遇数据泄露了。据报道,今年6月,黑客入侵了大约100个XRP Ledger钱包,导致近1000万美元的资金被盗。

同样在6月,Gatehub警告称,目前出现了针对其加密货币钱包用户的钓鱼欺诈活动。据该公司透露,GateHub的钱包用户收到了恶意邮件,地址看起来像是来自GateHub官方的:分别以“@gatehub.com”和“@gatehub.net”结尾。

去年8月下旬,Gatehub账户数据被发布到一个黑客网站上。三个月前,这家加密货币服务公司报告称,自己遭到了黑客攻击。GateHub称,攻击者窃取了——或者至少试图窃取——1.8万多个用户账户的大量敏感信息。

对此,GateHub表示,网站管理人员通知了受影响的用户,并生成了新的加密密钥和重新加密的敏感信息,比如钱包的密钥。

相比之下,本次遭泄露的数据范围更广。更重要的是,这次泄露影响了多达140万的GateHub用户,而不仅仅是18473名用户。

目前GateHub尚未就本次信息泄露发表评论。

随着技术和安全的提高,黑客们实施的欺诈和攻击手段也越来越多样化。近年来最严重的事件之一就是位于斯洛文尼亚的比特币矿场NiceHash遭遇了黑客攻击。2017年12月,一名黑客窃取了大约4700枚比特币,价值约6400万美元。该平台称这次安全漏洞是一次高度熟练和有组织的攻击,是通过复杂的社交工程进行的。


原文:https://cointelegraph.com/news/gatehub-crypto-wallet-data-breach-compromises-passwords-of-14m-users
作者:Joeri Cant
编译:Wendy 查看全部
201911200340196958.jpg


数据泄露索引网站“Have I Been Pwned”的安全研究员表示,有两个网站的220万用户的密码数据和个人信息被泄露。

11月19日,Ars Technica报道称,安全研究员Troy Hunt证实,被盗数据来自加密货币钱包GateHub和RuneScape机器人提供商EpicBot的账户。

Hunt表示,第一批被盗数据来自加密货币钱包GateHub的140万个用户账户的个人信息。第二批包含了自称是世界上最安全的一体化RuneScape机器人提供商EpicBot的约80万个用户账户的数据。

据报道,被盗信息包括注册的电子邮件地址、密码、双因素认证密钥、助记短语和钱包哈希。根据他们的调查结果,GateHub内部人士表示,这些钱包哈希并未被访问。

这已经不是Gatehub第一次遭遇数据泄露了。据报道,今年6月,黑客入侵了大约100个XRP Ledger钱包,导致近1000万美元的资金被盗。

同样在6月,Gatehub警告称,目前出现了针对其加密货币钱包用户的钓鱼欺诈活动。据该公司透露,GateHub的钱包用户收到了恶意邮件,地址看起来像是来自GateHub官方的:分别以“@gatehub.com”和“@gatehub.net”结尾。

去年8月下旬,Gatehub账户数据被发布到一个黑客网站上。三个月前,这家加密货币服务公司报告称,自己遭到了黑客攻击。GateHub称,攻击者窃取了——或者至少试图窃取——1.8万多个用户账户的大量敏感信息。

对此,GateHub表示,网站管理人员通知了受影响的用户,并生成了新的加密密钥和重新加密的敏感信息,比如钱包的密钥。

相比之下,本次遭泄露的数据范围更广。更重要的是,这次泄露影响了多达140万的GateHub用户,而不仅仅是18473名用户。

目前GateHub尚未就本次信息泄露发表评论。

随着技术和安全的提高,黑客们实施的欺诈和攻击手段也越来越多样化。近年来最严重的事件之一就是位于斯洛文尼亚的比特币矿场NiceHash遭遇了黑客攻击。2017年12月,一名黑客窃取了大约4700枚比特币,价值约6400万美元。该平台称这次安全漏洞是一次高度熟练和有组织的攻击,是通过复杂的社交工程进行的。


原文:https://cointelegraph.com/news/gatehub-crypto-wallet-data-breach-compromises-passwords-of-14m-users
作者:Joeri Cant
编译:Wendy

imToken公告 | MGC 钱包用户请注意安全风险

资讯8btc 发表了文章 • 2019-06-12 16:33 • 来自相关话题

今天 imToken 安全团队收到用户邮件举报,钱包中的 ETH 被恶意盗取。

我们第一时间对被盗钱包地址进行分析,并找到被盗共性 - 所有被盗地址均是使用 MGC 钱包创建的钱包地址。

为了进一步确定盗币手法,我们搜索了关于 MGC 钱包的相关信息,也和被盗用户取得联系,情况如下:

    用户下载使用 MGC 钱包生成助记词
    MGC 钱包生成的助记词是明文存储在 MGC 钱包服务器上的,即 MGC 是一款中心化钱包
    用户将 MGC 生成的钱包导入 imToken 钱包或其他去中心化钱包,但助记词存在 MGC 项目方的服务器中,存在较高的被盗风险。
    所有 MGC 被盗资产全部有规律的转移到两个盗币地址。



imToken 安全团队在这里提醒 MGC 钱包用户,请立即停止使用在 MGC 中生成的钱包,在 imToken 中生成新的钱包地址,并将资产进行转移。被盗币的 MGC 受害用户,请尽快前往当地公安机关报警。

了解更多案件详情,请点击这里


【事件回顾】

此前据区块律动报道,为用户提供搬砖套利服务的数字钱包MGC Token疑似发生被盗事件,大量用户报告资产被盗,资产目前正在批量转移到0x2B290开头的地址中。截止发稿,该地址已经完成了4万次小额转账,资产总额接近300万人民币,疑似该团队正在卷款跑路。 根据MGC Token官方公告,“目前用户反馈发生丢币问题,不要担心,我们会尽快补偿你的损失。请解除第三方钱包的绑定,比如imToken。我们将在48小时内给出解决方案。”、“目前以太坊产业链不稳定,如果发生资产转移请不要担心。我们将做最大努力解决问题。” 对于这一公告,imToken公关负责人表示,MGC Token已被系统标记为传销币,对方曾拿用户来要挟 imToken,威胁不让用户使用imToken钱包,并表示丢币属于imToken的问题。imToken建议受害者尽快报警,避免更多的损失。(巴比特快讯)


作者:imToken 查看全部
shutterstock_1103045441.jpg

今天 imToken 安全团队收到用户邮件举报,钱包中的 ETH 被恶意盗取。

我们第一时间对被盗钱包地址进行分析,并找到被盗共性 - 所有被盗地址均是使用 MGC 钱包创建的钱包地址。

为了进一步确定盗币手法,我们搜索了关于 MGC 钱包的相关信息,也和被盗用户取得联系,情况如下:


    用户下载使用 MGC 钱包生成助记词
    MGC 钱包生成的助记词是明文存储在 MGC 钱包服务器上的,即 MGC 是一款中心化钱包
    用户将 MGC 生成的钱包导入 imToken 钱包或其他去中心化钱包,但助记词存在 MGC 项目方的服务器中,存在较高的被盗风险。
    所有 MGC 被盗资产全部有规律的转移到两个盗币地址。




imToken 安全团队在这里提醒 MGC 钱包用户,请立即停止使用在 MGC 中生成的钱包,在 imToken 中生成新的钱包地址,并将资产进行转移。被盗币的 MGC 受害用户,请尽快前往当地公安机关报警。

了解更多案件详情,请点击这里


【事件回顾】

此前据区块律动报道,为用户提供搬砖套利服务的数字钱包MGC Token疑似发生被盗事件,大量用户报告资产被盗,资产目前正在批量转移到0x2B290开头的地址中。截止发稿,该地址已经完成了4万次小额转账,资产总额接近300万人民币,疑似该团队正在卷款跑路。 根据MGC Token官方公告,“目前用户反馈发生丢币问题,不要担心,我们会尽快补偿你的损失。请解除第三方钱包的绑定,比如imToken。我们将在48小时内给出解决方案。”、“目前以太坊产业链不稳定,如果发生资产转移请不要担心。我们将做最大努力解决问题。” 对于这一公告,imToken公关负责人表示,MGC Token已被系统标记为传销币,对方曾拿用户来要挟 imToken,威胁不让用户使用imToken钱包,并表示丢币属于imToken的问题。imToken建议受害者尽快报警,避免更多的损失。(巴比特快讯)


作者:imToken

2000多枚比特币蒸发,与神鱼一样被清零,70后老矿工的跌宕人生

特写lieyun 发表了文章 • 2019-06-06 18:16 • 来自相关话题

“在币圈被清零是很正常的事,神鱼也被清零过。”



近日,“币圈大佬”孙宇晨天价拍下巴菲特20周年慈善午宴的消息霸占各媒体头条,王小川和孙宇晨的互怼更在为事件的发酵添砖加瓦,喧嚣的背后很少有人注意到飞鹰(化名)的“苦恼”。
 
世界上最遥远的距离是早高峰时你在地铁里我在地铁外,而世界上最悲催的事情飞鹰遇到了。他拥有近200个比特币却忘记了钱包密码。按照当下的市场行情粗略计算,至少有上千万资产。眼看着前面的金山被一道门挡住了却一块儿金子也拿不到,这事儿放在谁身上都着急。
 
6月4 日,飞鹰在社群里面叫卖道,“100万人民币转让内含194个比特币的钱包wallet.dat。密码忘记了,有能力的人可以尝试,需要的联系。”


01 暴力破解是唯一解救之法


对于飞鹰的做法,有网友调侃道:“我200万的银行卡,密码忘记了,让他速速联系我,直接交换。”
 
不得不说的是,忘记银行卡密码和忘记比特币钱包密码可是两码事。带着本人身份证去对应银行进行密码重置,忘记银行卡密码的事便能很好解决,可忘记比特币钱包密码却需要通过私钥和助记词重新导入钱包来再次创建密码。
 
比特币钱包是能确定你对比特币的拥有权的东西,而比特币钱包的最重要的、那个能决定你对此钱包拥有权的文件叫做 wallet.dat 。如果私钥、助记词都忘记了,只有wallet.dat在,想要拿回比特币的时间长度就要视密码长度及参与破解成员数量而定。
 
据降维安全运营负责人庞蟹提供的数据显示,密码长度为1到7位的组织破解只需要1秒钟便可,而个人则需要2秒到10年不等;当密码长度达到14位之时,组织破解需要13年,而个人却需要73年。





密码破解时间图,来源于降维安全


很不幸的是,飞鹰记得他的钱包密码大概有15位之多,在私钥与助记词忘记的情况之下,暴力破解是唯一解救之法。虽然目前已经在运用大量程序运算进行暴力破解,但凭借组织的力量也大约需要22年之久。
 
作为一个70年后,以79年出生来算,飞鹰目前年龄至少是40岁,等破解成功的那个时候已步入花甲之年。


02 损失2000多个比特币


在“贫穷限制了想象力”的人看来,194枚是好大一笔钱,如果能拿回来就成了千万富翁,买一个北京三环的住宅不再是梦。然而,在飞鹰看来,这只是挽回他损失资产的一部分而已,着急也仅是因为时间不等人。

他表示,在币圈久了,早已看惯了币价的起起落落,也经历了比特币的多次得失。
 
早在多年前,飞鹰的“比特币损失之路”便已开始。
 
2010年,当今天的很多圈内人还完全没有听说比特币这个词的时候,飞鹰已经开始了实践的旅程。单位的台式机是他最得力的工具。每天飞鹰下班之后,台式机便正式“上班”,他不记得挖了多少个黑夜,也不记得具体数目,但他确定比特币数量一定不下三位数。

当在单位离职后,飞鹰将台式机交回了,而挖到的比特币也随着台式机一起交回了。他不知道台式机被格式化多少回,他只知道比特币一定是永久丢失了。

除了用单位台式机挖矿外,家里的台式机也不闲着。由于夜里噪音太大影响休息,白天飞鹰上班前便让它开始运转,一共挖了194枚,也就是目前正在尝试找回的那部分。





矿机图片,来源于网络


2011年,神鱼毛世行加入了数字货币领域,尝试投资比特币和挖矿。这一年,“前辈”飞鹰与神鱼相识,并在QQ群内互相交流、打气。

2012年开始,飞鹰大规模买入比特币,但却在门头沟事件及烤猫矿机众筹事件中损失惨重。据他估计,加起来有2000多枚比特币。

对于烤猫众筹比特币研发ASIC矿机,起初飞鹰拿到了约定比例的分配利润,但在后期加大投入后矿机芯片设计出现了问题,并没有达到预期目标。而烤猫失踪,项目夭折,给投资者们当头一棒,包括飞鹰在内的很多人投资的比特币都随着烤猫的消失而归零了。

对于归零一事,飞鹰很淡定地说:“在币圈被清零是很正常的事,神鱼也被清零过。”

烤猫事件之后,吴忌寒以烤猫矿机为基础招募人员成立比特大陆,其他人有的接着在圈活动,有的人选择了退出。飞鹰就是退出人员中的一员。

他表示,因为坚信比特币会取代黄金成为全球央行的储备品,后来低价有闲钱时就买些。就这样,虽然飞鹰离开过区块链行业有一段时间,但一直关注着区块链的发展。如今他又重新投入到这个行业,做着推进数字货币对冲基金的事业。他兴致勃勃地对猎云财经说:“我还要接着投资比特币。”
 
对于孙宇晨巴菲特午餐一事,飞鹰表示,这是变相为数字货币做广告,目前比特币至少在高通胀的国家得到认可,朝鲜、伊朗也会通过比特币来躲避美国的制裁,比特币的未来会有更多应用场景。


03 钱包安全知识详解


在加密货币领域,只有wallet.dat的钱包就如同受了重伤的鸟儿,等待它的或只有死路一条。如果是常见鸟类(资产较少)可能放弃救治,珍贵鸟类(资产较多)还可能救治,但一般只能实行暴力破解。
 
飞鹰的故事大抵如此,但很有必要详细了解一下钱包安全方面的知识,为此,猎云财经专门采访了降维安全运营负责人庞蟹。
                                                            
以下是庞蟹给出的分析:
 
若以银行账户为类比,这5个词分别对应内容如下:

地址=银行卡号
密码=银行卡移动U盾密码
私钥=银行卡号+银行卡密码
助记词=银行卡号+银行卡密码
Keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号

 
一、私钥

私钥=银行卡号+银行卡密码
 
1.导出
创建钱包后,输入密码可以导出私钥,这个私钥属于明文私钥,由64 位字符串组成,一个钱包只有一个私钥且不能修改。
 
2.用途
在导入钱包中,输入私钥并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 

二、助记词

助记词=银行卡号+银行卡密码
助记词=私钥
 
1.备份
创建钱包后,会出现一个备份助记词功能,选择备份助记词,输入密码,会出现12 个单词,每个单词之间有一个空格,这个就是助记词,一个钱包只有一个助记词且不能修改。
 
2.用途
助记词是私钥的另一种表现形式,具有和私钥同样的功能,在导入钱包中,输入助记词并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 
3.特征
助记词只能备份一次,备份后,在钱包中再也不会显示,因此在备份时一定要抄写下来。
 

三、keystore

keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号
keystore=加密私钥
keystore+密码=私钥
 
1.备份
钱包里有一个备份keystore 功能,选择备份keystore,输入密码,会出现一大段字符,这个就是keystore。
 
2.用途
在导入钱包中,选择官方钱包,输入keystore 和密码,就能进入钱包了。需要说明的是,这个密码是本手机原来设置的本钱包密码,这一点和用私钥或助记词导入钱包不一样,用私钥或助记词导入钱包,不需要知道原密码,直接重置密码。
 
3.特征
keystore 属于加密私钥,和钱包密码有很大关联,钱包密码修改后,keystore 也就相应变化,在用keystore 导入钱包时,需要输入密码,这个密码是备份keystore 时的钱包密码,与后来密码的修改无关。


出品 | 猎云财经
文 | 梦月 查看全部
bitcoin-(1).jpg


“在币圈被清零是很正常的事,神鱼也被清零过。”




近日,“币圈大佬”孙宇晨天价拍下巴菲特20周年慈善午宴的消息霸占各媒体头条,王小川和孙宇晨的互怼更在为事件的发酵添砖加瓦,喧嚣的背后很少有人注意到飞鹰(化名)的“苦恼”。
 
世界上最遥远的距离是早高峰时你在地铁里我在地铁外,而世界上最悲催的事情飞鹰遇到了。他拥有近200个比特币却忘记了钱包密码。按照当下的市场行情粗略计算,至少有上千万资产。眼看着前面的金山被一道门挡住了却一块儿金子也拿不到,这事儿放在谁身上都着急。
 
6月4 日,飞鹰在社群里面叫卖道,“100万人民币转让内含194个比特币的钱包wallet.dat。密码忘记了,有能力的人可以尝试,需要的联系。”


01 暴力破解是唯一解救之法


对于飞鹰的做法,有网友调侃道:“我200万的银行卡,密码忘记了,让他速速联系我,直接交换。”
 
不得不说的是,忘记银行卡密码和忘记比特币钱包密码可是两码事。带着本人身份证去对应银行进行密码重置,忘记银行卡密码的事便能很好解决,可忘记比特币钱包密码却需要通过私钥和助记词重新导入钱包来再次创建密码。
 
比特币钱包是能确定你对比特币的拥有权的东西,而比特币钱包的最重要的、那个能决定你对此钱包拥有权的文件叫做 wallet.dat 。如果私钥、助记词都忘记了,只有wallet.dat在,想要拿回比特币的时间长度就要视密码长度及参与破解成员数量而定。
 
据降维安全运营负责人庞蟹提供的数据显示,密码长度为1到7位的组织破解只需要1秒钟便可,而个人则需要2秒到10年不等;当密码长度达到14位之时,组织破解需要13年,而个人却需要73年。

pojie.png

密码破解时间图,来源于降维安全


很不幸的是,飞鹰记得他的钱包密码大概有15位之多,在私钥与助记词忘记的情况之下,暴力破解是唯一解救之法。虽然目前已经在运用大量程序运算进行暴力破解,但凭借组织的力量也大约需要22年之久。
 
作为一个70年后,以79年出生来算,飞鹰目前年龄至少是40岁,等破解成功的那个时候已步入花甲之年。


02 损失2000多个比特币


在“贫穷限制了想象力”的人看来,194枚是好大一笔钱,如果能拿回来就成了千万富翁,买一个北京三环的住宅不再是梦。然而,在飞鹰看来,这只是挽回他损失资产的一部分而已,着急也仅是因为时间不等人。

他表示,在币圈久了,早已看惯了币价的起起落落,也经历了比特币的多次得失。
 
早在多年前,飞鹰的“比特币损失之路”便已开始。
 
2010年,当今天的很多圈内人还完全没有听说比特币这个词的时候,飞鹰已经开始了实践的旅程。单位的台式机是他最得力的工具。每天飞鹰下班之后,台式机便正式“上班”,他不记得挖了多少个黑夜,也不记得具体数目,但他确定比特币数量一定不下三位数。

当在单位离职后,飞鹰将台式机交回了,而挖到的比特币也随着台式机一起交回了。他不知道台式机被格式化多少回,他只知道比特币一定是永久丢失了。

除了用单位台式机挖矿外,家里的台式机也不闲着。由于夜里噪音太大影响休息,白天飞鹰上班前便让它开始运转,一共挖了194枚,也就是目前正在尝试找回的那部分。

kuangji.jpg

矿机图片,来源于网络


2011年,神鱼毛世行加入了数字货币领域,尝试投资比特币和挖矿。这一年,“前辈”飞鹰与神鱼相识,并在QQ群内互相交流、打气。

2012年开始,飞鹰大规模买入比特币,但却在门头沟事件及烤猫矿机众筹事件中损失惨重。据他估计,加起来有2000多枚比特币。

对于烤猫众筹比特币研发ASIC矿机,起初飞鹰拿到了约定比例的分配利润,但在后期加大投入后矿机芯片设计出现了问题,并没有达到预期目标。而烤猫失踪,项目夭折,给投资者们当头一棒,包括飞鹰在内的很多人投资的比特币都随着烤猫的消失而归零了。

对于归零一事,飞鹰很淡定地说:“在币圈被清零是很正常的事,神鱼也被清零过。”

烤猫事件之后,吴忌寒以烤猫矿机为基础招募人员成立比特大陆,其他人有的接着在圈活动,有的人选择了退出。飞鹰就是退出人员中的一员。

他表示,因为坚信比特币会取代黄金成为全球央行的储备品,后来低价有闲钱时就买些。就这样,虽然飞鹰离开过区块链行业有一段时间,但一直关注着区块链的发展。如今他又重新投入到这个行业,做着推进数字货币对冲基金的事业。他兴致勃勃地对猎云财经说:“我还要接着投资比特币。”
 
对于孙宇晨巴菲特午餐一事,飞鹰表示,这是变相为数字货币做广告,目前比特币至少在高通胀的国家得到认可,朝鲜、伊朗也会通过比特币来躲避美国的制裁,比特币的未来会有更多应用场景。


03 钱包安全知识详解


在加密货币领域,只有wallet.dat的钱包就如同受了重伤的鸟儿,等待它的或只有死路一条。如果是常见鸟类(资产较少)可能放弃救治,珍贵鸟类(资产较多)还可能救治,但一般只能实行暴力破解。
 
飞鹰的故事大抵如此,但很有必要详细了解一下钱包安全方面的知识,为此,猎云财经专门采访了降维安全运营负责人庞蟹。
                                                            
以下是庞蟹给出的分析:
 
若以银行账户为类比,这5个词分别对应内容如下:

地址=银行卡号
密码=银行卡移动U盾密码
私钥=银行卡号+银行卡密码
助记词=银行卡号+银行卡密码
Keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号

 
一、私钥

私钥=银行卡号+银行卡密码
 
1.导出
创建钱包后,输入密码可以导出私钥,这个私钥属于明文私钥,由64 位字符串组成,一个钱包只有一个私钥且不能修改。
 
2.用途
在导入钱包中,输入私钥并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 

二、助记词

助记词=银行卡号+银行卡密码
助记词=私钥
 
1.备份
创建钱包后,会出现一个备份助记词功能,选择备份助记词,输入密码,会出现12 个单词,每个单词之间有一个空格,这个就是助记词,一个钱包只有一个助记词且不能修改。
 
2.用途
助记词是私钥的另一种表现形式,具有和私钥同样的功能,在导入钱包中,输入助记词并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 
3.特征
助记词只能备份一次,备份后,在钱包中再也不会显示,因此在备份时一定要抄写下来。
 

三、keystore

keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号
keystore=加密私钥
keystore+密码=私钥
 
1.备份
钱包里有一个备份keystore 功能,选择备份keystore,输入密码,会出现一大段字符,这个就是keystore。
 
2.用途
在导入钱包中,选择官方钱包,输入keystore 和密码,就能进入钱包了。需要说明的是,这个密码是本手机原来设置的本钱包密码,这一点和用私钥或助记词导入钱包不一样,用私钥或助记词导入钱包,不需要知道原密码,直接重置密码。
 
3.特征
keystore 属于加密私钥,和钱包密码有很大关联,钱包密码修改后,keystore 也就相应变化,在用keystore 导入钱包时,需要输入密码,这个密码是备份keystore 时的钱包密码,与后来密码的修改无关。


出品 | 猎云财经
文 | 梦月

币圈首部长篇传记小说《韭菜的记忆》033 钱包余额

特写leekgeek 发表了文章 • 2019-04-07 11:03 • 来自相关话题

12月份,比特币还在持续下跌,看着很快就有可能跌破300美元的整数关口。加密货币市场散发出来的寒意,与小沟村的冬天相比,也是有过之而无不及。
 
矿场的300台S2矿机,5、6月份刚上架的时候,每个月差不多可以挖出当时市值100万元左右的比特币,到现在的12月份差不多只能挖出市值15万元左右的比特币,下个月估计就挖不回每个月9万元左右的电费,需要更新换新的矿机了。
 
S5矿机的算率1155 GH/s,耗电540 W,能耗比与前几个月上市的S4相比,又有了明显的提升,比上半年上市的S2更是有了巨大的进步。
 
宋远把矿场帐户里近3个月结余的现金150多万元,订购了500台S5矿机。
 
S5矿机在12月底送达矿场,宋远几个人忙活了一两天,下架了S2矿机,把S5矿机全部上架并接入矿池,开始了没日没夜的挖矿。
 
宋远给钱亦来打了个电话,随即让康风和康南搬了一百多台S2矿机,加上机架、网线、集线器、交换机等设备,给钱亦来送过去,帮他安装配置好并接入矿场的矿池。
 
每年的12月底和1月初,是小沟村最冷的时候,最低气温低于零下10摄氏度。比特币的价格也跌下了300美元,逼近200美元。
 
宋远算了下2014全年矿场的收支情况,500台S1矿机随挖随卖,到下架的时候,总共挖出了1570多个比特币,卖出均价550美元左右,收回了617万元。支出方面,矿机500万元,电费72万元,其它设备、场地、运营和人力等分摊,50万元,总计622万元。S1矿机基本达到收支平衡,略微亏损5万元。
 
200台S2矿机,从2014年5月份开挖,到年底全部下架,挖出的比特币也是随挖随卖,一共挖出了1330多个比特币,每个比特币卖出的均价接近500美元,一共收回了392万元。支出方面,矿机300万元,电费72万元,其它设备、场地、运营和人力等分摊30万元,总计402万元。S2矿机总体亏损10万元。
 
2014年全年,比特币的价格总体而言一直在持续下跌,如果不是随挖随卖,而是一直留着比特币,到年底的这几天再卖出,S1矿机挖到的比特币差不多只能卖出190万元,S2差不多只能卖出160万元,亏损会更加严重。
 
加密货币市场的寒冬,还不知道要持续到什么时候。而小沟村的严冬过一两个月就将过去,暖春就会随之而来。
 
严冬之中,千里冰封,万里雪飘,小沟村静静地躺在雪白的世界里。
 
2015年1月初的一个下午,宋远一个人在雪地里走了几个小时,登上了矿场附近的一座小山。站在山顶上,寒风夹杂着丝丝雨雪,扑面而来。
 
天地间白茫茫一片,山谷里的矿场已依稀难见。
 
宋远和李莎相识于盛夏的北京。一年前的这个时候,宋远和李莎来到了小沟村。一年后,宋远站立在寒风之中,矿场隐藏在白色的世界里,李莎却杳无音信,不知道是否安好。
 
恍惚之间,宋远忧从中来……
 

采薇
先秦·诗经
 
昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。

 
 
宋远正在山顶上站着,电话突然响了起来,把他从忧思中惊醒过来。
 
宋远一看,是个未知的电话号码,想着是否要挂掉。盯着屏幕看了好一会儿,对方一直在坚持拨打,想想还是接通了。
 
宋远正要问对方是谁,电话那边很快传过来略显急促,又有些沙哑的声音,“你还记得我写的那首诗吗,希望你安好,再见…… ”
 
电话里的声音虽然很是沙哑又急促,跟平常的声音差异很大,不过宋远却第一时间辨识出来,电话那边正是宋远魂牵梦萦的那个人。宋远激动不已,正要叫出对方的名字,电话却断了。
 
宋远赶紧回拨过去,却只能听到“你拨打的电话已关机”的系统应答。回拨了几遍之后,确定对方已关机,宋远又拨打了李莎之前使用的电话号码,也已关机。
 
宋远不由得一阵惶急,在山顶上团团转了几圈。突然心有所想,连滚带爬地下了山,又一路小跑地回了矿场,已是傍晚时分。
 
宋远冲进自己的房间,关上房门,打开笔记本电脑,登上一台乌克兰境内的远程服务器。这些服务器由当地的一些个人或小团队运营,从那里租赁服务器无需提供身份信息,也接受比特币,或者Bytecoin(BCN,早期基于CryptoNoto技术并致力于匿名交换的加密货币)、BitMonero(后来改名Monero,门罗币)等匿名币,匿名支付服务器租赁费用。
 
宋远退出了正在运行的比特币钱包,重命名比特币钱包数据文件。然后重新打开比特币钱包,回想起那天晚上在李莎家,李莎编写的那首诗,把它做了一些转换,作为助记词,导入了相应的钱包地址。
 

在一起时,
冰雪消融,
鸟语花开,
爱在寸心。

 
 
接着在服务器上比特币程序路径里输入命令:
 

./bitcoin-cli getwalletinfo

 
看到了钱包的balance(余额):13520.00000000
 
宋远的心跳骤然加快。即便现在的比特币跌到了200美元附近,钱包里的这些比特币也价值1600多万元。
 
宋远稍加思索,用刚才在山顶上默念的《诗经·采薇》中的一些词语,转换为助记词,生成新的比特币钱包地址和私钥。
 

昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。

 
 
然后把李莎钱包里的比特币全部转到了新的钱包地址。
 
旋即退出了比特币钱包程序,又把钱包文件删除干净,然后断开了远程服务器的连接。
 
……
 
呆坐了一小会儿,接着又拨打刚才山顶上接到的那个电话号码,“你拨打的电话已关机”,又拨打了李莎原先的电话号码,仍然是“你拨打的电话已关机”。
 
稍后又拨打了几遍电话,依然是“你拨打的电话已关机”。
 
惶恐之间,宋远拨通了王乐的电话,电话那边传来吵杂的说话声,以及欧美摇滚音乐声。
 
“嗨,宋远兄弟,好久不见,想起我啦?!真巧啊,我这几天正好在成都,‘欣悦双姝’也都在啊,你有时间也过来一起玩玩啊。” 王乐在那边大声说道。
 
“好啊,王总,噢,王哥,我这边有点事情想请您帮忙…… ” 宋远说道。
 
“有什么事情尽管说啊,咱们哥俩,别那么生分。” 王乐在那边大声说道。
 
宋远也加大声音,说道:“我最近联系不上李莎了,你在老家那边有没有认识的朋友,或者有没有什么办法,可以联系到李莎或者她们家人的。”
 
“噢,我还以为你们俩还一起躲那小山沟里隐居起来了呢,我也有好几个月没跟她联系上了。” 王乐诧异地回答道。
 
“我们俩去年年初分开之后就再也没有见过面了,也不知道她那边怎么样了。我担心她出了什么事情了,得尽快想办法打探清楚了。” 宋远大声地说道,担心王乐那边太吵杂了听不到。
 
“宋远兄弟,我知道了啊,一会我就找老家那边的朋友问问啊,你也别太担心了。” 王乐大声回答道,“我这边还在喝酒应酬,太闹了,不和你多说了。对了,我这儿正好也有点事情要找你,你明天来成都一趟吧,我们一起详谈。”
 
宋远顾不上问王乐那边是什么事情,只想着早点让他打听李莎的情况,就不假思索地答应了下来。
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
033yue.jpg

12月份,比特币还在持续下跌,看着很快就有可能跌破300美元的整数关口。加密货币市场散发出来的寒意,与小沟村的冬天相比,也是有过之而无不及。
 
矿场的300台S2矿机,5、6月份刚上架的时候,每个月差不多可以挖出当时市值100万元左右的比特币,到现在的12月份差不多只能挖出市值15万元左右的比特币,下个月估计就挖不回每个月9万元左右的电费,需要更新换新的矿机了。
 
S5矿机的算率1155 GH/s,耗电540 W,能耗比与前几个月上市的S4相比,又有了明显的提升,比上半年上市的S2更是有了巨大的进步。
 
宋远把矿场帐户里近3个月结余的现金150多万元,订购了500台S5矿机。
 
S5矿机在12月底送达矿场,宋远几个人忙活了一两天,下架了S2矿机,把S5矿机全部上架并接入矿池,开始了没日没夜的挖矿。
 
宋远给钱亦来打了个电话,随即让康风和康南搬了一百多台S2矿机,加上机架、网线、集线器、交换机等设备,给钱亦来送过去,帮他安装配置好并接入矿场的矿池。
 
每年的12月底和1月初,是小沟村最冷的时候,最低气温低于零下10摄氏度。比特币的价格也跌下了300美元,逼近200美元。
 
宋远算了下2014全年矿场的收支情况,500台S1矿机随挖随卖,到下架的时候,总共挖出了1570多个比特币,卖出均价550美元左右,收回了617万元。支出方面,矿机500万元,电费72万元,其它设备、场地、运营和人力等分摊,50万元,总计622万元。S1矿机基本达到收支平衡,略微亏损5万元。
 
200台S2矿机,从2014年5月份开挖,到年底全部下架,挖出的比特币也是随挖随卖,一共挖出了1330多个比特币,每个比特币卖出的均价接近500美元,一共收回了392万元。支出方面,矿机300万元,电费72万元,其它设备、场地、运营和人力等分摊30万元,总计402万元。S2矿机总体亏损10万元。
 
2014年全年,比特币的价格总体而言一直在持续下跌,如果不是随挖随卖,而是一直留着比特币,到年底的这几天再卖出,S1矿机挖到的比特币差不多只能卖出190万元,S2差不多只能卖出160万元,亏损会更加严重。
 
加密货币市场的寒冬,还不知道要持续到什么时候。而小沟村的严冬过一两个月就将过去,暖春就会随之而来。
 
严冬之中,千里冰封,万里雪飘,小沟村静静地躺在雪白的世界里。
 
2015年1月初的一个下午,宋远一个人在雪地里走了几个小时,登上了矿场附近的一座小山。站在山顶上,寒风夹杂着丝丝雨雪,扑面而来。
 
天地间白茫茫一片,山谷里的矿场已依稀难见。
 
宋远和李莎相识于盛夏的北京。一年前的这个时候,宋远和李莎来到了小沟村。一年后,宋远站立在寒风之中,矿场隐藏在白色的世界里,李莎却杳无音信,不知道是否安好。
 
恍惚之间,宋远忧从中来……
 


采薇
先秦·诗经
 
昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。


 
 
宋远正在山顶上站着,电话突然响了起来,把他从忧思中惊醒过来。
 
宋远一看,是个未知的电话号码,想着是否要挂掉。盯着屏幕看了好一会儿,对方一直在坚持拨打,想想还是接通了。
 
宋远正要问对方是谁,电话那边很快传过来略显急促,又有些沙哑的声音,“你还记得我写的那首诗吗,希望你安好,再见…… ”
 
电话里的声音虽然很是沙哑又急促,跟平常的声音差异很大,不过宋远却第一时间辨识出来,电话那边正是宋远魂牵梦萦的那个人。宋远激动不已,正要叫出对方的名字,电话却断了。
 
宋远赶紧回拨过去,却只能听到“你拨打的电话已关机”的系统应答。回拨了几遍之后,确定对方已关机,宋远又拨打了李莎之前使用的电话号码,也已关机。
 
宋远不由得一阵惶急,在山顶上团团转了几圈。突然心有所想,连滚带爬地下了山,又一路小跑地回了矿场,已是傍晚时分。
 
宋远冲进自己的房间,关上房门,打开笔记本电脑,登上一台乌克兰境内的远程服务器。这些服务器由当地的一些个人或小团队运营,从那里租赁服务器无需提供身份信息,也接受比特币,或者Bytecoin(BCN,早期基于CryptoNoto技术并致力于匿名交换的加密货币)、BitMonero(后来改名Monero,门罗币)等匿名币,匿名支付服务器租赁费用。
 
宋远退出了正在运行的比特币钱包,重命名比特币钱包数据文件。然后重新打开比特币钱包,回想起那天晚上在李莎家,李莎编写的那首诗,把它做了一些转换,作为助记词,导入了相应的钱包地址。
 


在一起时,
冰雪消融,
鸟语花开,
爱在寸心。


 
 
接着在服务器上比特币程序路径里输入命令:
 


./bitcoin-cli getwalletinfo


 
看到了钱包的balance(余额):13520.00000000
 
宋远的心跳骤然加快。即便现在的比特币跌到了200美元附近,钱包里的这些比特币也价值1600多万元。
 
宋远稍加思索,用刚才在山顶上默念的《诗经·采薇》中的一些词语,转换为助记词,生成新的比特币钱包地址和私钥。
 


昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。


 
 
然后把李莎钱包里的比特币全部转到了新的钱包地址。
 
旋即退出了比特币钱包程序,又把钱包文件删除干净,然后断开了远程服务器的连接。
 
……
 
呆坐了一小会儿,接着又拨打刚才山顶上接到的那个电话号码,“你拨打的电话已关机”,又拨打了李莎原先的电话号码,仍然是“你拨打的电话已关机”。
 
稍后又拨打了几遍电话,依然是“你拨打的电话已关机”。
 
惶恐之间,宋远拨通了王乐的电话,电话那边传来吵杂的说话声,以及欧美摇滚音乐声。
 
“嗨,宋远兄弟,好久不见,想起我啦?!真巧啊,我这几天正好在成都,‘欣悦双姝’也都在啊,你有时间也过来一起玩玩啊。” 王乐在那边大声说道。
 
“好啊,王总,噢,王哥,我这边有点事情想请您帮忙…… ” 宋远说道。
 
“有什么事情尽管说啊,咱们哥俩,别那么生分。” 王乐在那边大声说道。
 
宋远也加大声音,说道:“我最近联系不上李莎了,你在老家那边有没有认识的朋友,或者有没有什么办法,可以联系到李莎或者她们家人的。”
 
“噢,我还以为你们俩还一起躲那小山沟里隐居起来了呢,我也有好几个月没跟她联系上了。” 王乐诧异地回答道。
 
“我们俩去年年初分开之后就再也没有见过面了,也不知道她那边怎么样了。我担心她出了什么事情了,得尽快想办法打探清楚了。” 宋远大声地说道,担心王乐那边太吵杂了听不到。
 
“宋远兄弟,我知道了啊,一会我就找老家那边的朋友问问啊,你也别太担心了。” 王乐大声回答道,“我这边还在喝酒应酬,太闹了,不和你多说了。对了,我这儿正好也有点事情要找你,你明天来成都一趟吧,我们一起详谈。”
 
宋远顾不上问王乐那边是什么事情,只想着早点让他打听李莎的情况,就不假思索地答应了下来。
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

币圈首部长篇传记小说《韭菜的记忆》006 助记词

特写leekgeek 发表了文章 • 2019-03-23 23:04 • 来自相关话题

书房的桌子上,放着一台大屏幕的 iMac, 李莎站在桌子旁边,弓着身子神神秘秘地用一只手掌挡住键盘,另一只手敲击了几下,登录进了系统,接着打开比特币核心钱包(Bitcoin Core)。然后让宋远坐在屏幕前的大靠背椅上,自己倚着椅子在旁边看着。
 
宋远看了下,钱包已是最新的 0.8.5 版本,因为一直在线,显示已同步到了最新区块,只不过钱包余额还是 0.00000000。
 
“可以啊,之前没白教你,用得不错啊。不过你这钱包里又不放钱,天天开着同步不浪费电吗?” 宋远揶揄道。
 
“我这不还没搞明白地址、公钥、私钥嘛,也还不会导出私钥和备份钱包,就没敢往这里面转钱啊。” 李莎吐了吐舌头。
 
“不错不错,很谨慎嘛。孺子可教也。” 宋远故意一本正经地表扬了一番,然后又现场演示了几遍怎么查看收款地址、加密钱包、解锁钱包、备份钱包文件,怎么导出私钥再用纸币抄写下来。
 
见李莎差不多学明白了,宋远退出了程序,把钱包文件删除了,又打开程序重新生成新的钱包文件,让李莎操作一番,自己则坐在远远的看不到屏幕的地方。
 
“比特币安全守则之一,不要告诉任何人,也不要让任何人看见你的私钥。” 宋远故意不往李莎那边看,在旁边说道,“我没看见你的私钥噢,回头丢了比特币别找我,哈哈。”
 
“啧啧,这人,真是的,把自己摘得挺干净的。不过你放心,万一丢了比特币,第一个找的就是你,谁知道你刚才有没有在我电脑上装个木马啥的,哼。” 李莎边在键盘上敲敲打打,边跟宋远斗嘴。
 
过了一会,李莎很高兴地拿出一个小本子,对着屏幕抄写了一会,又仔细核对了几遍,然后郑重其事地把小本放抽屉了锁上,把钥匙晃了晃,“看清楚了,这是钥匙噢,东西丢了找你。”
 
随后,李莎又让宋远坐回电脑前面,自己则站在后面,顺手给宋远拍了拍肩膀,又捶了捶后背。
 
宋远很享受地哼哼了几声,说道:“又有什么事有求于我吧,说吧。”
 
“这个私钥还真是麻烦,万一弄丢了怎么办?放抽屉里也不踏实啊。刚才在车上你说的什么HD钱包又是怎么回事?”
 
宋远耐心地解释了一番,HD钱包(HD Wallets)的全称是Hierachical Deterministic Wallets, 对应中文是“分层确定性钱包”。可以通过助记词来生成种子,继而生成主私钥,然后派生出海量的子私钥和地址。只要记住助记词就可以掌握所有的地址和私钥,而这些助记词则是方便记住的单词或文字。
 
费了一番口舌,好不容易让李莎理解下来,接下来两人进入了实战演习阶段。宋远下载了助记词转换程序到电脑里,断开网络连接,让李莎想些助记词,来现场生成钱包地址和私钥。
 
李莎想了想,写下了:
 
在一起时,
冰雪消融,
鸟语花开,
爱在寸心。
 
 
宋远把李莎写下的这些词语转换成了HD种子(Seed)、主密钥(Master Key),以及多个比特币地址和私钥。
 
然后又郑重其事地叮嘱李莎,学会之后一定要用新的助记词自己重新生成新的比特币地址和私钥。因为助记词就能推导出私钥,所以助记词和私钥一样可以掌控相应地址上的比特币资产,切记不要泄漏,也不能遗忘。
 
“刚才用来示范过的助记词就不能真的拿来用了,因为已经被我知道了。” 宋远再次强调,“另外,你最好让程序自动帮你生成随机的助记词,这样被人猜出来的可能性会更低,资产也会更安全。当然,你要通过自己的方式把助记词备份好,通过一定的方式把助记词作一些掐头去尾,或加上一些只有自己知道的编码打乱它们,这样万一被人看到了也猜不到真实的内容。”
 
“知道啦,你好啰嗦啊…… ” 李莎吐了吐舌头,嗔怪道,不过却掩饰不住地笑逐颜开。
 
“谢谢你!” 李莎俯身迅速抱了下宋远又马上放开,“给你一个奖励哈哈。”
 
宋远怔了一下,转过身子,发现李莎已经飞奔出了房间,边跑边说:“我去厨房看看夜宵做好了没有。应该差不多了,你也一会就来啊。”
 
宋远答应了一声,然后退出了助记词和私钥转换程序,重新连上网络,打开浏览器登录比特币中国的首页看了一眼,比特币的价格还是在1000美元附近波动。
 
然后又拿出手机,打开聊天软件。虽然已是午夜,比特币的一个QQ群里还是人声鼎沸、热闹非凡。
 
“To The Moon. ”
 
"一币一嫩模!"
 
“何止嫩模,拿稳了,一币一别墅!”
 
“这个月,比特币有可能突破2000美元。 ”
 
“不止吧,11月份都涨了3倍不止…… ”
 
“拿着吧,别管了,发车要紧!”
 
随后好些个人发出了不少图片和表情,群里纷乱不堪
 
……
 
宋远关掉聊天软件,心里隐隐觉得不安,又思索了下是否卖出一部分比特币。正想着,李莎在外面叫了声夜宵好了。
 
“算了,先放着吧。”宋远关掉网页,循声走去餐厅。
 
李莎已经坐在了餐桌边上,桌上放着两盅煲汤,还有一些小花卷和包子。
 
两人之前在蓝蛙都没吃太饱,长途奔波回来,又经历了一场脑力大战费了很多口舌,正有点饥肠辘辘。一阵风卷残云,就把桌上的东西都吃下去了。
 
随后,李莎把宋远带去二楼的客房,房间干净明亮,宽大的床铺上,被子枕头叠放整齐。客房也是一个完整的套间,带有卫生间和更衣室,洗漱用品一应俱全。
 
“你要是有体力,可以泡个热水澡再睡觉,或者偷个懒先睡个好觉,明天早上起来去楼下游泳池游几圈。” 李莎打了个哈欠,“我要先去睡觉了,女孩子不能熬夜,容易变老。”
 
“我的房间就在那边角上,你如果想打地铺随时欢迎过来!哈哈哈。” 李莎边说边往外走。
 
待得李莎走出房门,宋远迅速掩上门,透过门缝说:”我要睡觉了,困死了,之前加了好几个晚上的班。晚上你别过来打扰我啊,不要来偷窥!“
 
”哼,我就不走了!“ 李莎作势往回走。
 
宋远吓得连连摆手,”别别别,算你狠,注意点影响啊,一会你妈过来了。“
 
"禽兽不如…… "
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
738450d14ab8d6bdfc5116765f1bbc3b_GIZTMMBKGE2DMMQ.jpg

书房的桌子上,放着一台大屏幕的 iMac, 李莎站在桌子旁边,弓着身子神神秘秘地用一只手掌挡住键盘,另一只手敲击了几下,登录进了系统,接着打开比特币核心钱包(Bitcoin Core)。然后让宋远坐在屏幕前的大靠背椅上,自己倚着椅子在旁边看着。
 
宋远看了下,钱包已是最新的 0.8.5 版本,因为一直在线,显示已同步到了最新区块,只不过钱包余额还是 0.00000000。
 
“可以啊,之前没白教你,用得不错啊。不过你这钱包里又不放钱,天天开着同步不浪费电吗?” 宋远揶揄道。
 
“我这不还没搞明白地址、公钥、私钥嘛,也还不会导出私钥和备份钱包,就没敢往这里面转钱啊。” 李莎吐了吐舌头。
 
“不错不错,很谨慎嘛。孺子可教也。” 宋远故意一本正经地表扬了一番,然后又现场演示了几遍怎么查看收款地址、加密钱包、解锁钱包、备份钱包文件,怎么导出私钥再用纸币抄写下来。
 
见李莎差不多学明白了,宋远退出了程序,把钱包文件删除了,又打开程序重新生成新的钱包文件,让李莎操作一番,自己则坐在远远的看不到屏幕的地方。
 
“比特币安全守则之一,不要告诉任何人,也不要让任何人看见你的私钥。” 宋远故意不往李莎那边看,在旁边说道,“我没看见你的私钥噢,回头丢了比特币别找我,哈哈。”
 
“啧啧,这人,真是的,把自己摘得挺干净的。不过你放心,万一丢了比特币,第一个找的就是你,谁知道你刚才有没有在我电脑上装个木马啥的,哼。” 李莎边在键盘上敲敲打打,边跟宋远斗嘴。
 
过了一会,李莎很高兴地拿出一个小本子,对着屏幕抄写了一会,又仔细核对了几遍,然后郑重其事地把小本放抽屉了锁上,把钥匙晃了晃,“看清楚了,这是钥匙噢,东西丢了找你。”
 
随后,李莎又让宋远坐回电脑前面,自己则站在后面,顺手给宋远拍了拍肩膀,又捶了捶后背。
 
宋远很享受地哼哼了几声,说道:“又有什么事有求于我吧,说吧。”
 
“这个私钥还真是麻烦,万一弄丢了怎么办?放抽屉里也不踏实啊。刚才在车上你说的什么HD钱包又是怎么回事?”
 
宋远耐心地解释了一番,HD钱包(HD Wallets)的全称是Hierachical Deterministic Wallets, 对应中文是“分层确定性钱包”。可以通过助记词来生成种子,继而生成主私钥,然后派生出海量的子私钥和地址。只要记住助记词就可以掌握所有的地址和私钥,而这些助记词则是方便记住的单词或文字。
 
费了一番口舌,好不容易让李莎理解下来,接下来两人进入了实战演习阶段。宋远下载了助记词转换程序到电脑里,断开网络连接,让李莎想些助记词,来现场生成钱包地址和私钥。
 
李莎想了想,写下了:
 
在一起时,
冰雪消融,
鸟语花开,
爱在寸心。
 
 
宋远把李莎写下的这些词语转换成了HD种子(Seed)、主密钥(Master Key),以及多个比特币地址和私钥。
 
然后又郑重其事地叮嘱李莎,学会之后一定要用新的助记词自己重新生成新的比特币地址和私钥。因为助记词就能推导出私钥,所以助记词和私钥一样可以掌控相应地址上的比特币资产,切记不要泄漏,也不能遗忘。
 
“刚才用来示范过的助记词就不能真的拿来用了,因为已经被我知道了。” 宋远再次强调,“另外,你最好让程序自动帮你生成随机的助记词,这样被人猜出来的可能性会更低,资产也会更安全。当然,你要通过自己的方式把助记词备份好,通过一定的方式把助记词作一些掐头去尾,或加上一些只有自己知道的编码打乱它们,这样万一被人看到了也猜不到真实的内容。”
 
“知道啦,你好啰嗦啊…… ” 李莎吐了吐舌头,嗔怪道,不过却掩饰不住地笑逐颜开。
 
“谢谢你!” 李莎俯身迅速抱了下宋远又马上放开,“给你一个奖励哈哈。”
 
宋远怔了一下,转过身子,发现李莎已经飞奔出了房间,边跑边说:“我去厨房看看夜宵做好了没有。应该差不多了,你也一会就来啊。”
 
宋远答应了一声,然后退出了助记词和私钥转换程序,重新连上网络,打开浏览器登录比特币中国的首页看了一眼,比特币的价格还是在1000美元附近波动。
 
然后又拿出手机,打开聊天软件。虽然已是午夜,比特币的一个QQ群里还是人声鼎沸、热闹非凡。
 
“To The Moon. ”
 
"一币一嫩模!"
 
“何止嫩模,拿稳了,一币一别墅!”
 
“这个月,比特币有可能突破2000美元。 ”
 
“不止吧,11月份都涨了3倍不止…… ”
 
“拿着吧,别管了,发车要紧!”
 
随后好些个人发出了不少图片和表情,群里纷乱不堪
 
……
 
宋远关掉聊天软件,心里隐隐觉得不安,又思索了下是否卖出一部分比特币。正想着,李莎在外面叫了声夜宵好了。
 
“算了,先放着吧。”宋远关掉网页,循声走去餐厅。
 
李莎已经坐在了餐桌边上,桌上放着两盅煲汤,还有一些小花卷和包子。
 
两人之前在蓝蛙都没吃太饱,长途奔波回来,又经历了一场脑力大战费了很多口舌,正有点饥肠辘辘。一阵风卷残云,就把桌上的东西都吃下去了。
 
随后,李莎把宋远带去二楼的客房,房间干净明亮,宽大的床铺上,被子枕头叠放整齐。客房也是一个完整的套间,带有卫生间和更衣室,洗漱用品一应俱全。
 
“你要是有体力,可以泡个热水澡再睡觉,或者偷个懒先睡个好觉,明天早上起来去楼下游泳池游几圈。” 李莎打了个哈欠,“我要先去睡觉了,女孩子不能熬夜,容易变老。”
 
“我的房间就在那边角上,你如果想打地铺随时欢迎过来!哈哈哈。” 李莎边说边往外走。
 
待得李莎走出房门,宋远迅速掩上门,透过门缝说:”我要睡觉了,困死了,之前加了好几个晚上的班。晚上你别过来打扰我啊,不要来偷窥!“
 
”哼,我就不走了!“ 李莎作势往回走。
 
宋远吓得连连摆手,”别别别,算你狠,注意点影响啊,一会你妈过来了。“
 
"禽兽不如…… "
 
 
连载中……
作者:韭菜极客(微信公众号:l
eekgeek)

比特币钱包开发:通过助记词扩展子地址的原理与编码

攻略chaindesk 发表了文章 • 2018-11-28 10:41 • 来自相关话题

目标

    掌握生成助记词的原理
    掌握助记词生成种子的原理
    掌握种子生成子秘钥的原理
    编程实践:从生成助记词到子地址



前言


为了安全尽量保证比特币地址的公钥未在网络上出现过,这就需要我们每次支付时,将支付额转到一个新的账户发起转账,而收款时使用一个新账号地址。为了满足这样的场景,就需要安全管理很多的账号与对应的秘钥,这样显然是不科学的。因此,这里讲解通过助记词生成很多子地址,这样,我们只需保存一份助记词就相当于保存好了2^31个账号的私钥。


一、助记词的生成过程


BIP39是助记词标准的实现,助记词是一个随机数的字序列,用来作为种子产生一个确定性的钱包。单词序列足以重新创建种子,然后再创建钱包和所有派生的密钥。一个实现带有助记词的确定性钱包应用程序在首次创建钱包时将向用户显示12到24个单词的序列。该单词序列是钱包备份,可用于恢复和重新创建相同或任何兼容的钱包应用程序中的所有密钥。记忆单词使用户更容易备份钱包,因为与随机数字序列相比,它们易于阅读和正确地转录。所有的助记词在这里可以查看:助记词词库。

使用BIP39中定义的标准化过程,钱包自动生成助记词。钱包从一个熵源开始,添加一个校验和,然后将熵映射到一个单词列表,具体步骤如下:

    创建128到256位的随机序列(熵)。
    通过获取SHA256哈希的第一(熵长度/ 32)位来创建随机序列的校验和。
    将校验和添加到随机序列的末尾。
    将序列分成11位的部分。
    将每个11位值映射到来自2048个单词的预定义字典中的单词。
    助记词是单词序列。


生成助记词的步骤如下图。







下表描述了初始熵长度(ENT),校验和长度(CS)和单词中生成的助记词(MS)的长度之间的关系。

熵(bits)Checksum(bits)熵+Checksum(bits)助记词长度(words)128413212160516515192619818224723121256826424


二、从助记词到种子


用户可以决定用密码来保护他们的助记符。如果不存在密码短语,则使用空字符串“”。

助记词代表长度为128到256位的熵。然后使用熵通过使用密钥扩展函数PBKDF2来导出更长(512位)的种子。然后,所产生的种子用于构建确定性钱包并获得其密钥。

密钥扩展功能有两个参数:助记词和盐(salt)。密钥扩展功能中的盐的目的是使得难以构建能够进行暴力攻击的查找表。在BIP-39标准中,salt具有另一个目的 - 它允许引入密码短语作为保护种子的额外安全因子。

    PBKDF2密钥扩展功能的第一个参数是从步骤6产生的助记词。
    PBKDF2密钥扩展功能的第二个参数是salt。salt由字符串常量“mnemonic”和可选的用户提供的密码短语字符串组成。
    PBKDF2使用2048轮HMAC-SHA512哈希算法来扩展助记词和salt参数,产生512位值作为其最终输出。那个512位的值就是种子。


使用助记词来生成种子的步骤如下图。







下面演示一下助记词生成种子的实例:

12个长度的助记词,无密码生成种子






9C286891-0902-4F1D-AD31-4EB804F71DF7

12个长度的助记词,有密码生成种子






51FC2016-15A7-4641-A203-43964671B881

24个长度的助记词,无密码生成种子






DE00BE18-E081-446B-9736-69198B2524E0

24个长度的助记词,有密码生成种子






442FFE9B-0929-4C4B-B0B1-7D046B5C85FC


三、种子生成子秘钥


种子通过不可逆HMAC-SHA512算法推算出512位的哈希串,前256位是主私钥Master Private Key (m),后256位是主链码Master Chain Code(c)。

给定父扩展私钥和索引i,可以计算相应的子扩展私钥。

函数CKDpriv((kpar,cpar),i)→(ki,ci)

如果i ≥ 2^31(硬化的子密钥):让I= HMAC-SHA512(Key = cpar,Data = 0x00 || ser256(kpar)|| ser32(i))。 (注意:0x00将私钥补齐到33字节长。)

如果i<2^31(普通的子密钥):让I= HMAC-SHA512(Key = cpar,Data = serP(point(kpar))|| ser32(i))。

给定父扩展公钥和索引i,可以计算相应的子扩展公钥。它只针对未硬化的子密钥定义。

如果i ≥ 2^31(硬化子密钥):返回失败

如果i<2^31(普通子密钥):让I= HMAC-SHA512(Key = cpar, Data = serP(Kpar) || ser32(i)).

扩展私钥的前缀是xprv,如:

tprv8iGPAfgu51nkCZZtua8jFgzVoCQLqHZrLCQonxTo7qdtzutL8ZFZt1yAtpcUF8sHdNyiVhece3SSRsBvtUCKpGkRvxXgV2TMdcDbKQzstta 扩展公钥的前缀是tpub,如:

tpubDExRK5j9DPUR62bgoDoKf6ecNDvGzckkuW1b5UW6Y7SHqQ96kx5A4Wb34w6bkHUStdq5w7ZHPQHkipwRdSQMbGnqTAQj1sEBaJmL9wXvBSu

每个扩展密钥有 2^31 个普通子密钥,2^31个硬化子密钥。这些子密钥都有一个索引,普通子密钥使用索引0到2^31-1,硬化的子密钥使用索引 2^31 到 2^32-1,为了简化硬化密钥索引的符号,数字iH表示i + 2^31。

以上过程再结合BIP43,BIP44,HD钱包就实现了多币种、多账户、多用途等功能。







四、编程实践:从生成助记词到扩展子地址


代码

var bitcoin = require('bitcoinjs-lib');
var bip39 = require("bip39")
var bip32 = require("bip32")

const myNetwork = bitcoin.networks.testnet

const mnemonic = 'eternal list thank chaos trick paper sniff ridge make govern invest abandon'
// const mnemonic = bip39.generateMnemonic()
const seed = bip39.mnemonicToSeed(mnemonic, "lixu1234qwer")
const root = bip32.fromSeed(seed, myNetwork)

for(var i = 0; i < 3; i++) {
    const path = "m/44'/1'/0'/0/"+i
    console.log("路径:", path)
    const keyPair = root.derivePath(path)

    const privateKey = keyPair.toWIF()
    console.log("私钥", privateKey)

    const publicKey = keyPair.publicKey.toString("hex")
    console.log("公钥:", publicKey)

    let address = getAddress(keyPair, myNetwork)
    console.log("地址:", address, "\n")
}

function getAddress(keyPair, network) {
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network})
    return address
}



输出

    下面是在测试网络下生成的私钥、公钥、地址






    下面是在正式网络下生成的私钥、公钥、地址







验证














代码解析

    需要安装库:bitcoinjs-lib、bip39、bip32。
    bitcoin.networks.testnet:指定为测试网络,若切换到正式网络,则为bitcoin.networks.bitcoin,同时需要改变路径。
    bip39.generateMnemonic():用于生成助记词。
    bip39.mnemonicToSeed(mnemonic, "lixu1234qwer"):将助记词与密码转成种子。
    bip32.fromSeed(seed, myNetwork):将种子转为相应网络下的root。
    const path = "m/44'/1'/0'/0/"+i:指定第一个账号的第i个扩展子账号路径。若切换到正式网络,路径则是"m/44'/0'/0'/0/"+i
    root.derivePath(path):获取指定路径的keyPair。
    keyPair.toWIF():获取私钥。
    keyPair.publicKey.toString("hex"):获取公钥。
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network}):获取普通比特币地址,p2pkh这是最常见的比特币交易地址类型。可见:在测试网络中的地址是以m或n开头,在正式网络中是以1开头。



作者:黎跃春,孔壹学院、ChainDesk(http://chaindesk.cn)创始人兼CEO,前北京中油瑞飞信息技术有限公司研究院hybrid架构师,通信和信息技术区块链高级授课专家,16年创办国内区块链职业教育领先品牌孔壹学院,18年5月首创基于区块链的多相脑图分割模型学习社区ChainDesk。 查看全部
d15a22c4-5e33-44e7-997a-fd2f3acfefb6.jpeg

目标


    掌握生成助记词的原理
    掌握助记词生成种子的原理
    掌握种子生成子秘钥的原理
    编程实践:从生成助记词到子地址




前言


为了安全尽量保证比特币地址的公钥未在网络上出现过,这就需要我们每次支付时,将支付额转到一个新的账户发起转账,而收款时使用一个新账号地址。为了满足这样的场景,就需要安全管理很多的账号与对应的秘钥,这样显然是不科学的。因此,这里讲解通过助记词生成很多子地址,这样,我们只需保存一份助记词就相当于保存好了2^31个账号的私钥。


一、助记词的生成过程


BIP39是助记词标准的实现,助记词是一个随机数的字序列,用来作为种子产生一个确定性的钱包。单词序列足以重新创建种子,然后再创建钱包和所有派生的密钥。一个实现带有助记词的确定性钱包应用程序在首次创建钱包时将向用户显示12到24个单词的序列。该单词序列是钱包备份,可用于恢复和重新创建相同或任何兼容的钱包应用程序中的所有密钥。记忆单词使用户更容易备份钱包,因为与随机数字序列相比,它们易于阅读和正确地转录。所有的助记词在这里可以查看:助记词词库。

使用BIP39中定义的标准化过程,钱包自动生成助记词。钱包从一个熵源开始,添加一个校验和,然后将熵映射到一个单词列表,具体步骤如下:


    创建128到256位的随机序列(熵)。
    通过获取SHA256哈希的第一(熵长度/ 32)位来创建随机序列的校验和。
    将校验和添加到随机序列的末尾。
    将序列分成11位的部分。
    将每个11位值映射到来自2048个单词的预定义字典中的单词。
    助记词是单词序列。



生成助记词的步骤如下图。

daf87b21b5cc47648770ac2c0ce45cfd.jpg



下表描述了初始熵长度(ENT),校验和长度(CS)和单词中生成的助记词(MS)的长度之间的关系。

熵(bits)Checksum(bits)熵+Checksum(bits)助记词长度(words)128413212160516515192619818224723121256826424


二、从助记词到种子


用户可以决定用密码来保护他们的助记符。如果不存在密码短语,则使用空字符串“”。

助记词代表长度为128到256位的熵。然后使用熵通过使用密钥扩展函数PBKDF2来导出更长(512位)的种子。然后,所产生的种子用于构建确定性钱包并获得其密钥。

密钥扩展功能有两个参数:助记词和盐(salt)。密钥扩展功能中的盐的目的是使得难以构建能够进行暴力攻击的查找表。在BIP-39标准中,salt具有另一个目的 - 它允许引入密码短语作为保护种子的额外安全因子。


    PBKDF2密钥扩展功能的第一个参数是从步骤6产生的助记词。
    PBKDF2密钥扩展功能的第二个参数是salt。salt由字符串常量“mnemonic”和可选的用户提供的密码短语字符串组成。
    PBKDF2使用2048轮HMAC-SHA512哈希算法来扩展助记词和salt参数,产生512位值作为其最终输出。那个512位的值就是种子。



使用助记词来生成种子的步骤如下图。

7940906315c34475ba9b1ed27f91158c.jpg



下面演示一下助记词生成种子的实例:

12个长度的助记词,无密码生成种子

6ea8e87291814ca98732038822cee54b.jpg


9C286891-0902-4F1D-AD31-4EB804F71DF7

12个长度的助记词,有密码生成种子

5411c336ccc84b4787305c97285ababe.jpg


51FC2016-15A7-4641-A203-43964671B881

24个长度的助记词,无密码生成种子

4c4bc9aafba84ac7bcec500f6822ec10.jpg


DE00BE18-E081-446B-9736-69198B2524E0

24个长度的助记词,有密码生成种子

93bca0aa437e4b10921b86875f8b556e.jpg


442FFE9B-0929-4C4B-B0B1-7D046B5C85FC


三、种子生成子秘钥


种子通过不可逆HMAC-SHA512算法推算出512位的哈希串,前256位是主私钥Master Private Key (m),后256位是主链码Master Chain Code(c)。

给定父扩展私钥和索引i,可以计算相应的子扩展私钥。

函数CKDpriv((kpar,cpar),i)→(ki,ci)

如果i ≥ 2^31(硬化的子密钥):让I= HMAC-SHA512(Key = cpar,Data = 0x00 || ser256(kpar)|| ser32(i))。 (注意:0x00将私钥补齐到33字节长。)

如果i<2^31(普通的子密钥):让I= HMAC-SHA512(Key = cpar,Data = serP(point(kpar))|| ser32(i))。

给定父扩展公钥和索引i,可以计算相应的子扩展公钥。它只针对未硬化的子密钥定义。

如果i ≥ 2^31(硬化子密钥):返回失败

如果i<2^31(普通子密钥):让I= HMAC-SHA512(Key = cpar, Data = serP(Kpar) || ser32(i)).

扩展私钥的前缀是xprv,如:

tprv8iGPAfgu51nkCZZtua8jFgzVoCQLqHZrLCQonxTo7qdtzutL8ZFZt1yAtpcUF8sHdNyiVhece3SSRsBvtUCKpGkRvxXgV2TMdcDbKQzstta 扩展公钥的前缀是tpub,如:

tpubDExRK5j9DPUR62bgoDoKf6ecNDvGzckkuW1b5UW6Y7SHqQ96kx5A4Wb34w6bkHUStdq5w7ZHPQHkipwRdSQMbGnqTAQj1sEBaJmL9wXvBSu

每个扩展密钥有 2^31 个普通子密钥,2^31个硬化子密钥。这些子密钥都有一个索引,普通子密钥使用索引0到2^31-1,硬化的子密钥使用索引 2^31 到 2^32-1,为了简化硬化密钥索引的符号,数字iH表示i + 2^31。

以上过程再结合BIP43,BIP44,HD钱包就实现了多币种、多账户、多用途等功能。

seed.png



四、编程实践:从生成助记词到扩展子地址


代码


var bitcoin = require('bitcoinjs-lib');
var bip39 = require("bip39")
var bip32 = require("bip32")

const myNetwork = bitcoin.networks.testnet

const mnemonic = 'eternal list thank chaos trick paper sniff ridge make govern invest abandon'
// const mnemonic = bip39.generateMnemonic()
const seed = bip39.mnemonicToSeed(mnemonic, "lixu1234qwer")
const root = bip32.fromSeed(seed, myNetwork)

for(var i = 0; i < 3; i++) {
    const path = "m/44'/1'/0'/0/"+i
    console.log("路径:", path)
    const keyPair = root.derivePath(path)

    const privateKey = keyPair.toWIF()
    console.log("私钥", privateKey)

    const publicKey = keyPair.publicKey.toString("hex")
    console.log("公钥:", publicKey)

    let address = getAddress(keyPair, myNetwork)
    console.log("地址:", address, "\n")
}

function getAddress(keyPair, network) {
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network})
    return address
}




输出

    下面是在测试网络下生成的私钥、公钥、地址

A37E562F-6A7A-4471-919B-F3ED347A6A82.png


    下面是在正式网络下生成的私钥、公钥、地址

5139288B-4F69-4CDE-929E-6B2CD15088EF.png



验证


F0374899-E1A8-464B-93DA-06D7C0FF5A0B.png


23817D2B-91A9-4ADC-AAD9-FCDC9BA24B0D.png




代码解析


    需要安装库:bitcoinjs-lib、bip39、bip32。
    bitcoin.networks.testnet:指定为测试网络,若切换到正式网络,则为bitcoin.networks.bitcoin,同时需要改变路径。
    bip39.generateMnemonic():用于生成助记词。
    bip39.mnemonicToSeed(mnemonic, "lixu1234qwer"):将助记词与密码转成种子。
    bip32.fromSeed(seed, myNetwork):将种子转为相应网络下的root。
    const path = "m/44'/1'/0'/0/"+i:指定第一个账号的第i个扩展子账号路径。若切换到正式网络,路径则是"m/44'/0'/0'/0/"+i
    root.derivePath(path):获取指定路径的keyPair。
    keyPair.toWIF():获取私钥。
    keyPair.publicKey.toString("hex"):获取公钥。
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network}):获取普通比特币地址,p2pkh这是最常见的比特币交易地址类型。可见:在测试网络中的地址是以m或n开头,在正式网络中是以1开头。




作者:黎跃春,孔壹学院、ChainDesk(http://chaindesk.cn)创始人兼CEO,前北京中油瑞飞信息技术有限公司研究院hybrid架构师,通信和信息技术区块链高级授课专家,16年创办国内区块链职业教育领先品牌孔壹学院,18年5月首创基于区块链的多相脑图分割模型学习社区ChainDesk。

助记词的前世今生

攻略chaindd 发表了文章 • 2018-11-22 11:17 • 来自相关话题

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?

用过钱包的用户都知道,在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边不要有任何人。

对于普通用户来说,如果只是一味的向他们强调助记词重要性的结论,而不告诉背后的原因的话,是很难调动起人的底层动力的,很可能过几天就忘了助记词的重要性(小编已经看过不少在群里呼唤自己因为助记词丢失而导致破产的杯具)。

作为猎豹区块链的安全大使,今天小豹就来和大家聊聊助记词和它背后的故事。

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?


多账户需求

我们先拿现实生活的例子打一个比方,通常来说,我们存在银行的钱都会有很多账户,有的账户用来买煎饼果子的零钱账户,有的是用来对公业务的账户,有的是存大额资产的账户。这些账户只需要一个身份证就能够办理,我们用一个身份证可以在网银上登录很多账户,万一银行卡不慎丢失了,也可以通过身份证进行补办。在现实生活中,身份证是无比重要的。

而到了数字货币的世界,道理也是一样的,为了业务的方便,我们通常想要有多个账户,满足不同场景的需求。如果说每次创建账户都在公链上生成一个私钥,那就像每次办理银行卡都要记忆一长串的银行卡号一样的反人性。


降低出错概率

众所周知,在区块链世界里,只要保留了私钥,就能解锁账户,但是通常来说私钥是由64位的很长的字符串组成,如果我们想要创建100个账户,那我们就要记100个私钥,记录和保存成本是非常大的,况且,在记录海量的私钥的过程中,可能还会出现地址和私钥匹配不上的问题,或者记录时粗心大意写错字母的问题,等等,总而言之,出错的概率是很高的,由于数字货币这种“只认私钥不认人”的特点,这些小的错误很可能导致资产无法找回。 


保护隐私

由于区块链公有链的公开的特性,链上的所有转账记录任何人都可以查到,如果同一个账户关联的收入支出太多了,最终是可以摸出一些线索,把你和一些交易给匹配起来的,所以为了隐私考虑,我们的很多隐私业务通常会创建出新的账户来进行交易。

聪明的开发人员为了解决上述问题,提出了Bip39协议。Bip39协议的全称是Bitcoin protocol,最初是由比特币社区的开发者提出,后来被其他的主流区块链项目所认可,继而成为了整个行业共识和规范。

BIP39协议的核心是,由12个单词来确定自己的账户,12个单词会生成很大的种子,从2的256次方选出一个数,由于随机生成的数是很大的,所以完全不用担心生成的12个单词会重复。

12个单词生成的账户是固定的,拿到的12个单词就可以创建无数多的私钥、公钥和地址。

用公式表示他们之间的关系,可写成如下形式:

私钥=算法1(助记词)

公钥=算法2 (私钥)

公钥哈希=算法3 (公钥)

地址=算法4 (公钥哈希)

所以,地址=算法4(算法3(算法2(算法1(助记词))))


当然,算法1、2、3、4都是公开的算法。 

通过密码学的保证,生成的单词顺序和内容是不可能会重复的,通过助记词,我们可以生成任意公链的地址,需要多少的地址就能够生成有多少个地址。

大家可以通过https://iancoleman.io/bip39/生成助记词或者查看助记词对应的私钥、公钥和地址。

并且,BIP39协议几乎是支持所有公链的。






小豹拿小豹私人的Matemask的助记词做了个实验:可以看到,通过我的Matemask的助记词创建的账户地址,和网站生成的地址是一模一样的,就连顺序也是高度一致的。


技术角度理解助记词


从技术上的角度来说,BIP39 是通过12个助记词的单词序列,通过 PBKDF2 与 HMAC-SHA512 函数创建出随机种子作为 BIP32 的种子(通常是16进制的)。

相比于BIP32协议,我们可以看出那一种备份起来更友好

//BIP32 随机数种子090ABCB3A6e1400e9345bC60c78a8BE7

//BIP39 助记词种子

candy maple cake sugar pudding cream honey rich smooth crumble sweet treat 

使用助记词作为种子其实包含2个部分:助记词生成及助记词推导出随机种子。


生成助记词

助记词生成的过程是这样的:先生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词,这个过程图示如下:






助记词推导出种子

这个过程使用密钥拉伸(Key stretching)函数,被用来增强弱密钥的安全性,PBKDF2是常用的密钥拉伸算法中的一种。

PBKDF2基本原理是通过一个为随机函数(例如 HMAC 函数),把助记词明文和盐值作为输入参数,然后重复进行运算最终产生生成一个更长的(512 位)密钥种子。这个种子再构建一个确定性钱包并派生出它的密钥。

密钥拉伸函数需要两个参数:助记词和盐。盐可以提高暴力破解的难度。 盐由常量字符串 "mnemonic" 及一个可选的密码组成,注意使用不同密码,则拉伸函数在使用同一个助记词的情况下会产生一个不同的种子,这个过程图示图下:







助记词推动了区块链的普及


有了助记词之后,任何一笔交易,我们都可以创建一个新的账户,账户里面的钱也可以进行自由转移。

在区块链世界,只需要记住12个简单的助记词,就间接记住了所有区块链上的资产,就如同现实生活中的身份证一样便捷、高效。

有了助记词之后,大大减轻了普通用户的使用成本,从体验上来说对用户是非常友好的,这拉进了区块链与普罗大众的距离,同时也满足了高端用户的隐私问题。可以这么说,BIP39协议大大的推动了区块链的普及。

可能有人会说,“我最讨厌英语啊,让我记12个英语单词,简直就是要了我的命啊!”

对于这部分用户我先不做评价,但是聪明的开发者早就想到了这一点,BIP39协议目前是支持了几大主流语言的,英语、日语、西班牙语、韩语、法语,当然也少不了中文,所以大家完全可以用12个汉字作为助记词。

如果连12个汉字都懒得记的话,那我只能说,施主,区块链世界实在与你无缘,找个好人就嫁了吧。

当然,任何事物都有两面性,助记词虽然带来了许多便利,但是,也诞生了另外的安全隐患,那就是一旦12个单词泄露,或者被黑客获取,助记词是未经加密的私钥,任何人得到了你的助记词,可以不费吹灰之力的夺走你的资产控制权。 
在这里给大家几个建议:

(1)助记词就是你数字世界的命根,打死都不能告诉别人。

(2)一定要多次验证备份的助记词是否正确,一旦抄错一两个字母,对后续找回正确的助记词将带来巨大的困难。

(3)助记词最好是用人脑进行记忆,实在怕忘记,用物理方式进行备份,备份好了之后,务必妥善保管(千万不要用任何可联网设备存储)。
 

(作者:猎豹区块链安全;本文仅代表作者观点,不代表链得得官方立场) 查看全部
electrum.jpg

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?

用过钱包的用户都知道,在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边不要有任何人。

对于普通用户来说,如果只是一味的向他们强调助记词重要性的结论,而不告诉背后的原因的话,是很难调动起人的底层动力的,很可能过几天就忘了助记词的重要性(小编已经看过不少在群里呼唤自己因为助记词丢失而导致破产的杯具)。

作为猎豹区块链的安全大使,今天小豹就来和大家聊聊助记词和它背后的故事。

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?


多账户需求

我们先拿现实生活的例子打一个比方,通常来说,我们存在银行的钱都会有很多账户,有的账户用来买煎饼果子的零钱账户,有的是用来对公业务的账户,有的是存大额资产的账户。这些账户只需要一个身份证就能够办理,我们用一个身份证可以在网银上登录很多账户,万一银行卡不慎丢失了,也可以通过身份证进行补办。在现实生活中,身份证是无比重要的。

而到了数字货币的世界,道理也是一样的,为了业务的方便,我们通常想要有多个账户,满足不同场景的需求。如果说每次创建账户都在公链上生成一个私钥,那就像每次办理银行卡都要记忆一长串的银行卡号一样的反人性。


降低出错概率

众所周知,在区块链世界里,只要保留了私钥,就能解锁账户,但是通常来说私钥是由64位的很长的字符串组成,如果我们想要创建100个账户,那我们就要记100个私钥,记录和保存成本是非常大的,况且,在记录海量的私钥的过程中,可能还会出现地址和私钥匹配不上的问题,或者记录时粗心大意写错字母的问题,等等,总而言之,出错的概率是很高的,由于数字货币这种“只认私钥不认人”的特点,这些小的错误很可能导致资产无法找回。 


保护隐私

由于区块链公有链的公开的特性,链上的所有转账记录任何人都可以查到,如果同一个账户关联的收入支出太多了,最终是可以摸出一些线索,把你和一些交易给匹配起来的,所以为了隐私考虑,我们的很多隐私业务通常会创建出新的账户来进行交易。

聪明的开发人员为了解决上述问题,提出了Bip39协议。Bip39协议的全称是Bitcoin protocol,最初是由比特币社区的开发者提出,后来被其他的主流区块链项目所认可,继而成为了整个行业共识和规范。

BIP39协议的核心是,由12个单词来确定自己的账户,12个单词会生成很大的种子,从2的256次方选出一个数,由于随机生成的数是很大的,所以完全不用担心生成的12个单词会重复。

12个单词生成的账户是固定的,拿到的12个单词就可以创建无数多的私钥、公钥和地址。

用公式表示他们之间的关系,可写成如下形式:


私钥=算法1(助记词)

公钥=算法2 (私钥)

公钥哈希=算法3 (公钥)

地址=算法4 (公钥哈希)

所以,地址=算法4(算法3(算法2(算法1(助记词))))



当然,算法1、2、3、4都是公开的算法。 

通过密码学的保证,生成的单词顺序和内容是不可能会重复的,通过助记词,我们可以生成任意公链的地址,需要多少的地址就能够生成有多少个地址。

大家可以通过https://iancoleman.io/bip39/生成助记词或者查看助记词对应的私钥、公钥和地址。

并且,BIP39协议几乎是支持所有公链的。

zhujici1.jpeg


小豹拿小豹私人的Matemask的助记词做了个实验:可以看到,通过我的Matemask的助记词创建的账户地址,和网站生成的地址是一模一样的,就连顺序也是高度一致的。


技术角度理解助记词


从技术上的角度来说,BIP39 是通过12个助记词的单词序列,通过 PBKDF2 与 HMAC-SHA512 函数创建出随机种子作为 BIP32 的种子(通常是16进制的)。

相比于BIP32协议,我们可以看出那一种备份起来更友好

//BIP32 随机数种子090ABCB3A6e1400e9345bC60c78a8BE7

//BIP39 助记词种子

candy maple cake sugar pudding cream honey rich smooth crumble sweet treat 

使用助记词作为种子其实包含2个部分:助记词生成及助记词推导出随机种子。


生成助记词

助记词生成的过程是这样的:先生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词,这个过程图示如下:

zhujici2.jpg


助记词推导出种子

这个过程使用密钥拉伸(Key stretching)函数,被用来增强弱密钥的安全性,PBKDF2是常用的密钥拉伸算法中的一种。

PBKDF2基本原理是通过一个为随机函数(例如 HMAC 函数),把助记词明文和盐值作为输入参数,然后重复进行运算最终产生生成一个更长的(512 位)密钥种子。这个种子再构建一个确定性钱包并派生出它的密钥。

密钥拉伸函数需要两个参数:助记词和盐。盐可以提高暴力破解的难度。 盐由常量字符串 "mnemonic" 及一个可选的密码组成,注意使用不同密码,则拉伸函数在使用同一个助记词的情况下会产生一个不同的种子,这个过程图示图下:

zhujici3.jpg



助记词推动了区块链的普及


有了助记词之后,任何一笔交易,我们都可以创建一个新的账户,账户里面的钱也可以进行自由转移。

在区块链世界,只需要记住12个简单的助记词,就间接记住了所有区块链上的资产,就如同现实生活中的身份证一样便捷、高效。

有了助记词之后,大大减轻了普通用户的使用成本,从体验上来说对用户是非常友好的,这拉进了区块链与普罗大众的距离,同时也满足了高端用户的隐私问题。可以这么说,BIP39协议大大的推动了区块链的普及。

可能有人会说,“我最讨厌英语啊,让我记12个英语单词,简直就是要了我的命啊!”

对于这部分用户我先不做评价,但是聪明的开发者早就想到了这一点,BIP39协议目前是支持了几大主流语言的,英语、日语、西班牙语、韩语、法语,当然也少不了中文,所以大家完全可以用12个汉字作为助记词。

如果连12个汉字都懒得记的话,那我只能说,施主,区块链世界实在与你无缘,找个好人就嫁了吧。

当然,任何事物都有两面性,助记词虽然带来了许多便利,但是,也诞生了另外的安全隐患,那就是一旦12个单词泄露,或者被黑客获取,助记词是未经加密的私钥,任何人得到了你的助记词,可以不费吹灰之力的夺走你的资产控制权。 
在这里给大家几个建议:

(1)助记词就是你数字世界的命根,打死都不能告诉别人。

(2)一定要多次验证备份的助记词是否正确,一旦抄错一两个字母,对后续找回正确的助记词将带来巨大的困难。

(3)助记词最好是用人脑进行记忆,实在怕忘记,用物理方式进行备份,备份好了之后,务必妥善保管(千万不要用任何可联网设备存储)。
 

(作者:猎豹区块链安全;本文仅代表作者观点,不代表链得得官方立场)

加密货币钱包GateHub数据遭泄露,140万账户信息被盗

资讯8btc 发表了文章 • 2019-11-20 12:49 • 来自相关话题

数据泄露索引网站“Have I Been Pwned”的安全研究员表示,有两个网站的220万用户的密码数据和个人信息被泄露。

11月19日,Ars Technica报道称,安全研究员Troy Hunt证实,被盗数据来自加密货币钱包GateHub和RuneScape机器人提供商EpicBot的账户。

Hunt表示,第一批被盗数据来自加密货币钱包GateHub的140万个用户账户的个人信息。第二批包含了自称是世界上最安全的一体化RuneScape机器人提供商EpicBot的约80万个用户账户的数据。

据报道,被盗信息包括注册的电子邮件地址、密码、双因素认证密钥、助记短语和钱包哈希。根据他们的调查结果,GateHub内部人士表示,这些钱包哈希并未被访问。

这已经不是Gatehub第一次遭遇数据泄露了。据报道,今年6月,黑客入侵了大约100个XRP Ledger钱包,导致近1000万美元的资金被盗。

同样在6月,Gatehub警告称,目前出现了针对其加密货币钱包用户的钓鱼欺诈活动。据该公司透露,GateHub的钱包用户收到了恶意邮件,地址看起来像是来自GateHub官方的:分别以“@gatehub.com”和“@gatehub.net”结尾。

去年8月下旬,Gatehub账户数据被发布到一个黑客网站上。三个月前,这家加密货币服务公司报告称,自己遭到了黑客攻击。GateHub称,攻击者窃取了——或者至少试图窃取——1.8万多个用户账户的大量敏感信息。

对此,GateHub表示,网站管理人员通知了受影响的用户,并生成了新的加密密钥和重新加密的敏感信息,比如钱包的密钥。

相比之下,本次遭泄露的数据范围更广。更重要的是,这次泄露影响了多达140万的GateHub用户,而不仅仅是18473名用户。

目前GateHub尚未就本次信息泄露发表评论。

随着技术和安全的提高,黑客们实施的欺诈和攻击手段也越来越多样化。近年来最严重的事件之一就是位于斯洛文尼亚的比特币矿场NiceHash遭遇了黑客攻击。2017年12月,一名黑客窃取了大约4700枚比特币,价值约6400万美元。该平台称这次安全漏洞是一次高度熟练和有组织的攻击,是通过复杂的社交工程进行的。


原文:https://cointelegraph.com/news/gatehub-crypto-wallet-data-breach-compromises-passwords-of-14m-users
作者:Joeri Cant
编译:Wendy 查看全部
201911200340196958.jpg


数据泄露索引网站“Have I Been Pwned”的安全研究员表示,有两个网站的220万用户的密码数据和个人信息被泄露。

11月19日,Ars Technica报道称,安全研究员Troy Hunt证实,被盗数据来自加密货币钱包GateHub和RuneScape机器人提供商EpicBot的账户。

Hunt表示,第一批被盗数据来自加密货币钱包GateHub的140万个用户账户的个人信息。第二批包含了自称是世界上最安全的一体化RuneScape机器人提供商EpicBot的约80万个用户账户的数据。

据报道,被盗信息包括注册的电子邮件地址、密码、双因素认证密钥、助记短语和钱包哈希。根据他们的调查结果,GateHub内部人士表示,这些钱包哈希并未被访问。

这已经不是Gatehub第一次遭遇数据泄露了。据报道,今年6月,黑客入侵了大约100个XRP Ledger钱包,导致近1000万美元的资金被盗。

同样在6月,Gatehub警告称,目前出现了针对其加密货币钱包用户的钓鱼欺诈活动。据该公司透露,GateHub的钱包用户收到了恶意邮件,地址看起来像是来自GateHub官方的:分别以“@gatehub.com”和“@gatehub.net”结尾。

去年8月下旬,Gatehub账户数据被发布到一个黑客网站上。三个月前,这家加密货币服务公司报告称,自己遭到了黑客攻击。GateHub称,攻击者窃取了——或者至少试图窃取——1.8万多个用户账户的大量敏感信息。

对此,GateHub表示,网站管理人员通知了受影响的用户,并生成了新的加密密钥和重新加密的敏感信息,比如钱包的密钥。

相比之下,本次遭泄露的数据范围更广。更重要的是,这次泄露影响了多达140万的GateHub用户,而不仅仅是18473名用户。

目前GateHub尚未就本次信息泄露发表评论。

随着技术和安全的提高,黑客们实施的欺诈和攻击手段也越来越多样化。近年来最严重的事件之一就是位于斯洛文尼亚的比特币矿场NiceHash遭遇了黑客攻击。2017年12月,一名黑客窃取了大约4700枚比特币,价值约6400万美元。该平台称这次安全漏洞是一次高度熟练和有组织的攻击,是通过复杂的社交工程进行的。


原文:https://cointelegraph.com/news/gatehub-crypto-wallet-data-breach-compromises-passwords-of-14m-users
作者:Joeri Cant
编译:Wendy

imToken公告 | MGC 钱包用户请注意安全风险

资讯8btc 发表了文章 • 2019-06-12 16:33 • 来自相关话题

今天 imToken 安全团队收到用户邮件举报,钱包中的 ETH 被恶意盗取。

我们第一时间对被盗钱包地址进行分析,并找到被盗共性 - 所有被盗地址均是使用 MGC 钱包创建的钱包地址。

为了进一步确定盗币手法,我们搜索了关于 MGC 钱包的相关信息,也和被盗用户取得联系,情况如下:

    用户下载使用 MGC 钱包生成助记词
    MGC 钱包生成的助记词是明文存储在 MGC 钱包服务器上的,即 MGC 是一款中心化钱包
    用户将 MGC 生成的钱包导入 imToken 钱包或其他去中心化钱包,但助记词存在 MGC 项目方的服务器中,存在较高的被盗风险。
    所有 MGC 被盗资产全部有规律的转移到两个盗币地址。



imToken 安全团队在这里提醒 MGC 钱包用户,请立即停止使用在 MGC 中生成的钱包,在 imToken 中生成新的钱包地址,并将资产进行转移。被盗币的 MGC 受害用户,请尽快前往当地公安机关报警。

了解更多案件详情,请点击这里


【事件回顾】

此前据区块律动报道,为用户提供搬砖套利服务的数字钱包MGC Token疑似发生被盗事件,大量用户报告资产被盗,资产目前正在批量转移到0x2B290开头的地址中。截止发稿,该地址已经完成了4万次小额转账,资产总额接近300万人民币,疑似该团队正在卷款跑路。 根据MGC Token官方公告,“目前用户反馈发生丢币问题,不要担心,我们会尽快补偿你的损失。请解除第三方钱包的绑定,比如imToken。我们将在48小时内给出解决方案。”、“目前以太坊产业链不稳定,如果发生资产转移请不要担心。我们将做最大努力解决问题。” 对于这一公告,imToken公关负责人表示,MGC Token已被系统标记为传销币,对方曾拿用户来要挟 imToken,威胁不让用户使用imToken钱包,并表示丢币属于imToken的问题。imToken建议受害者尽快报警,避免更多的损失。(巴比特快讯)


作者:imToken 查看全部
shutterstock_1103045441.jpg

今天 imToken 安全团队收到用户邮件举报,钱包中的 ETH 被恶意盗取。

我们第一时间对被盗钱包地址进行分析,并找到被盗共性 - 所有被盗地址均是使用 MGC 钱包创建的钱包地址。

为了进一步确定盗币手法,我们搜索了关于 MGC 钱包的相关信息,也和被盗用户取得联系,情况如下:


    用户下载使用 MGC 钱包生成助记词
    MGC 钱包生成的助记词是明文存储在 MGC 钱包服务器上的,即 MGC 是一款中心化钱包
    用户将 MGC 生成的钱包导入 imToken 钱包或其他去中心化钱包,但助记词存在 MGC 项目方的服务器中,存在较高的被盗风险。
    所有 MGC 被盗资产全部有规律的转移到两个盗币地址。




imToken 安全团队在这里提醒 MGC 钱包用户,请立即停止使用在 MGC 中生成的钱包,在 imToken 中生成新的钱包地址,并将资产进行转移。被盗币的 MGC 受害用户,请尽快前往当地公安机关报警。

了解更多案件详情,请点击这里


【事件回顾】

此前据区块律动报道,为用户提供搬砖套利服务的数字钱包MGC Token疑似发生被盗事件,大量用户报告资产被盗,资产目前正在批量转移到0x2B290开头的地址中。截止发稿,该地址已经完成了4万次小额转账,资产总额接近300万人民币,疑似该团队正在卷款跑路。 根据MGC Token官方公告,“目前用户反馈发生丢币问题,不要担心,我们会尽快补偿你的损失。请解除第三方钱包的绑定,比如imToken。我们将在48小时内给出解决方案。”、“目前以太坊产业链不稳定,如果发生资产转移请不要担心。我们将做最大努力解决问题。” 对于这一公告,imToken公关负责人表示,MGC Token已被系统标记为传销币,对方曾拿用户来要挟 imToken,威胁不让用户使用imToken钱包,并表示丢币属于imToken的问题。imToken建议受害者尽快报警,避免更多的损失。(巴比特快讯)


作者:imToken

2000多枚比特币蒸发,与神鱼一样被清零,70后老矿工的跌宕人生

特写lieyun 发表了文章 • 2019-06-06 18:16 • 来自相关话题

“在币圈被清零是很正常的事,神鱼也被清零过。”



近日,“币圈大佬”孙宇晨天价拍下巴菲特20周年慈善午宴的消息霸占各媒体头条,王小川和孙宇晨的互怼更在为事件的发酵添砖加瓦,喧嚣的背后很少有人注意到飞鹰(化名)的“苦恼”。
 
世界上最遥远的距离是早高峰时你在地铁里我在地铁外,而世界上最悲催的事情飞鹰遇到了。他拥有近200个比特币却忘记了钱包密码。按照当下的市场行情粗略计算,至少有上千万资产。眼看着前面的金山被一道门挡住了却一块儿金子也拿不到,这事儿放在谁身上都着急。
 
6月4 日,飞鹰在社群里面叫卖道,“100万人民币转让内含194个比特币的钱包wallet.dat。密码忘记了,有能力的人可以尝试,需要的联系。”


01 暴力破解是唯一解救之法


对于飞鹰的做法,有网友调侃道:“我200万的银行卡,密码忘记了,让他速速联系我,直接交换。”
 
不得不说的是,忘记银行卡密码和忘记比特币钱包密码可是两码事。带着本人身份证去对应银行进行密码重置,忘记银行卡密码的事便能很好解决,可忘记比特币钱包密码却需要通过私钥和助记词重新导入钱包来再次创建密码。
 
比特币钱包是能确定你对比特币的拥有权的东西,而比特币钱包的最重要的、那个能决定你对此钱包拥有权的文件叫做 wallet.dat 。如果私钥、助记词都忘记了,只有wallet.dat在,想要拿回比特币的时间长度就要视密码长度及参与破解成员数量而定。
 
据降维安全运营负责人庞蟹提供的数据显示,密码长度为1到7位的组织破解只需要1秒钟便可,而个人则需要2秒到10年不等;当密码长度达到14位之时,组织破解需要13年,而个人却需要73年。





密码破解时间图,来源于降维安全


很不幸的是,飞鹰记得他的钱包密码大概有15位之多,在私钥与助记词忘记的情况之下,暴力破解是唯一解救之法。虽然目前已经在运用大量程序运算进行暴力破解,但凭借组织的力量也大约需要22年之久。
 
作为一个70年后,以79年出生来算,飞鹰目前年龄至少是40岁,等破解成功的那个时候已步入花甲之年。


02 损失2000多个比特币


在“贫穷限制了想象力”的人看来,194枚是好大一笔钱,如果能拿回来就成了千万富翁,买一个北京三环的住宅不再是梦。然而,在飞鹰看来,这只是挽回他损失资产的一部分而已,着急也仅是因为时间不等人。

他表示,在币圈久了,早已看惯了币价的起起落落,也经历了比特币的多次得失。
 
早在多年前,飞鹰的“比特币损失之路”便已开始。
 
2010年,当今天的很多圈内人还完全没有听说比特币这个词的时候,飞鹰已经开始了实践的旅程。单位的台式机是他最得力的工具。每天飞鹰下班之后,台式机便正式“上班”,他不记得挖了多少个黑夜,也不记得具体数目,但他确定比特币数量一定不下三位数。

当在单位离职后,飞鹰将台式机交回了,而挖到的比特币也随着台式机一起交回了。他不知道台式机被格式化多少回,他只知道比特币一定是永久丢失了。

除了用单位台式机挖矿外,家里的台式机也不闲着。由于夜里噪音太大影响休息,白天飞鹰上班前便让它开始运转,一共挖了194枚,也就是目前正在尝试找回的那部分。





矿机图片,来源于网络


2011年,神鱼毛世行加入了数字货币领域,尝试投资比特币和挖矿。这一年,“前辈”飞鹰与神鱼相识,并在QQ群内互相交流、打气。

2012年开始,飞鹰大规模买入比特币,但却在门头沟事件及烤猫矿机众筹事件中损失惨重。据他估计,加起来有2000多枚比特币。

对于烤猫众筹比特币研发ASIC矿机,起初飞鹰拿到了约定比例的分配利润,但在后期加大投入后矿机芯片设计出现了问题,并没有达到预期目标。而烤猫失踪,项目夭折,给投资者们当头一棒,包括飞鹰在内的很多人投资的比特币都随着烤猫的消失而归零了。

对于归零一事,飞鹰很淡定地说:“在币圈被清零是很正常的事,神鱼也被清零过。”

烤猫事件之后,吴忌寒以烤猫矿机为基础招募人员成立比特大陆,其他人有的接着在圈活动,有的人选择了退出。飞鹰就是退出人员中的一员。

他表示,因为坚信比特币会取代黄金成为全球央行的储备品,后来低价有闲钱时就买些。就这样,虽然飞鹰离开过区块链行业有一段时间,但一直关注着区块链的发展。如今他又重新投入到这个行业,做着推进数字货币对冲基金的事业。他兴致勃勃地对猎云财经说:“我还要接着投资比特币。”
 
对于孙宇晨巴菲特午餐一事,飞鹰表示,这是变相为数字货币做广告,目前比特币至少在高通胀的国家得到认可,朝鲜、伊朗也会通过比特币来躲避美国的制裁,比特币的未来会有更多应用场景。


03 钱包安全知识详解


在加密货币领域,只有wallet.dat的钱包就如同受了重伤的鸟儿,等待它的或只有死路一条。如果是常见鸟类(资产较少)可能放弃救治,珍贵鸟类(资产较多)还可能救治,但一般只能实行暴力破解。
 
飞鹰的故事大抵如此,但很有必要详细了解一下钱包安全方面的知识,为此,猎云财经专门采访了降维安全运营负责人庞蟹。
                                                            
以下是庞蟹给出的分析:
 
若以银行账户为类比,这5个词分别对应内容如下:

地址=银行卡号
密码=银行卡移动U盾密码
私钥=银行卡号+银行卡密码
助记词=银行卡号+银行卡密码
Keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号

 
一、私钥

私钥=银行卡号+银行卡密码
 
1.导出
创建钱包后,输入密码可以导出私钥,这个私钥属于明文私钥,由64 位字符串组成,一个钱包只有一个私钥且不能修改。
 
2.用途
在导入钱包中,输入私钥并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 

二、助记词

助记词=银行卡号+银行卡密码
助记词=私钥
 
1.备份
创建钱包后,会出现一个备份助记词功能,选择备份助记词,输入密码,会出现12 个单词,每个单词之间有一个空格,这个就是助记词,一个钱包只有一个助记词且不能修改。
 
2.用途
助记词是私钥的另一种表现形式,具有和私钥同样的功能,在导入钱包中,输入助记词并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 
3.特征
助记词只能备份一次,备份后,在钱包中再也不会显示,因此在备份时一定要抄写下来。
 

三、keystore

keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号
keystore=加密私钥
keystore+密码=私钥
 
1.备份
钱包里有一个备份keystore 功能,选择备份keystore,输入密码,会出现一大段字符,这个就是keystore。
 
2.用途
在导入钱包中,选择官方钱包,输入keystore 和密码,就能进入钱包了。需要说明的是,这个密码是本手机原来设置的本钱包密码,这一点和用私钥或助记词导入钱包不一样,用私钥或助记词导入钱包,不需要知道原密码,直接重置密码。
 
3.特征
keystore 属于加密私钥,和钱包密码有很大关联,钱包密码修改后,keystore 也就相应变化,在用keystore 导入钱包时,需要输入密码,这个密码是备份keystore 时的钱包密码,与后来密码的修改无关。


出品 | 猎云财经
文 | 梦月 查看全部
bitcoin-(1).jpg


“在币圈被清零是很正常的事,神鱼也被清零过。”




近日,“币圈大佬”孙宇晨天价拍下巴菲特20周年慈善午宴的消息霸占各媒体头条,王小川和孙宇晨的互怼更在为事件的发酵添砖加瓦,喧嚣的背后很少有人注意到飞鹰(化名)的“苦恼”。
 
世界上最遥远的距离是早高峰时你在地铁里我在地铁外,而世界上最悲催的事情飞鹰遇到了。他拥有近200个比特币却忘记了钱包密码。按照当下的市场行情粗略计算,至少有上千万资产。眼看着前面的金山被一道门挡住了却一块儿金子也拿不到,这事儿放在谁身上都着急。
 
6月4 日,飞鹰在社群里面叫卖道,“100万人民币转让内含194个比特币的钱包wallet.dat。密码忘记了,有能力的人可以尝试,需要的联系。”


01 暴力破解是唯一解救之法


对于飞鹰的做法,有网友调侃道:“我200万的银行卡,密码忘记了,让他速速联系我,直接交换。”
 
不得不说的是,忘记银行卡密码和忘记比特币钱包密码可是两码事。带着本人身份证去对应银行进行密码重置,忘记银行卡密码的事便能很好解决,可忘记比特币钱包密码却需要通过私钥和助记词重新导入钱包来再次创建密码。
 
比特币钱包是能确定你对比特币的拥有权的东西,而比特币钱包的最重要的、那个能决定你对此钱包拥有权的文件叫做 wallet.dat 。如果私钥、助记词都忘记了,只有wallet.dat在,想要拿回比特币的时间长度就要视密码长度及参与破解成员数量而定。
 
据降维安全运营负责人庞蟹提供的数据显示,密码长度为1到7位的组织破解只需要1秒钟便可,而个人则需要2秒到10年不等;当密码长度达到14位之时,组织破解需要13年,而个人却需要73年。

pojie.png

密码破解时间图,来源于降维安全


很不幸的是,飞鹰记得他的钱包密码大概有15位之多,在私钥与助记词忘记的情况之下,暴力破解是唯一解救之法。虽然目前已经在运用大量程序运算进行暴力破解,但凭借组织的力量也大约需要22年之久。
 
作为一个70年后,以79年出生来算,飞鹰目前年龄至少是40岁,等破解成功的那个时候已步入花甲之年。


02 损失2000多个比特币


在“贫穷限制了想象力”的人看来,194枚是好大一笔钱,如果能拿回来就成了千万富翁,买一个北京三环的住宅不再是梦。然而,在飞鹰看来,这只是挽回他损失资产的一部分而已,着急也仅是因为时间不等人。

他表示,在币圈久了,早已看惯了币价的起起落落,也经历了比特币的多次得失。
 
早在多年前,飞鹰的“比特币损失之路”便已开始。
 
2010年,当今天的很多圈内人还完全没有听说比特币这个词的时候,飞鹰已经开始了实践的旅程。单位的台式机是他最得力的工具。每天飞鹰下班之后,台式机便正式“上班”,他不记得挖了多少个黑夜,也不记得具体数目,但他确定比特币数量一定不下三位数。

当在单位离职后,飞鹰将台式机交回了,而挖到的比特币也随着台式机一起交回了。他不知道台式机被格式化多少回,他只知道比特币一定是永久丢失了。

除了用单位台式机挖矿外,家里的台式机也不闲着。由于夜里噪音太大影响休息,白天飞鹰上班前便让它开始运转,一共挖了194枚,也就是目前正在尝试找回的那部分。

kuangji.jpg

矿机图片,来源于网络


2011年,神鱼毛世行加入了数字货币领域,尝试投资比特币和挖矿。这一年,“前辈”飞鹰与神鱼相识,并在QQ群内互相交流、打气。

2012年开始,飞鹰大规模买入比特币,但却在门头沟事件及烤猫矿机众筹事件中损失惨重。据他估计,加起来有2000多枚比特币。

对于烤猫众筹比特币研发ASIC矿机,起初飞鹰拿到了约定比例的分配利润,但在后期加大投入后矿机芯片设计出现了问题,并没有达到预期目标。而烤猫失踪,项目夭折,给投资者们当头一棒,包括飞鹰在内的很多人投资的比特币都随着烤猫的消失而归零了。

对于归零一事,飞鹰很淡定地说:“在币圈被清零是很正常的事,神鱼也被清零过。”

烤猫事件之后,吴忌寒以烤猫矿机为基础招募人员成立比特大陆,其他人有的接着在圈活动,有的人选择了退出。飞鹰就是退出人员中的一员。

他表示,因为坚信比特币会取代黄金成为全球央行的储备品,后来低价有闲钱时就买些。就这样,虽然飞鹰离开过区块链行业有一段时间,但一直关注着区块链的发展。如今他又重新投入到这个行业,做着推进数字货币对冲基金的事业。他兴致勃勃地对猎云财经说:“我还要接着投资比特币。”
 
对于孙宇晨巴菲特午餐一事,飞鹰表示,这是变相为数字货币做广告,目前比特币至少在高通胀的国家得到认可,朝鲜、伊朗也会通过比特币来躲避美国的制裁,比特币的未来会有更多应用场景。


03 钱包安全知识详解


在加密货币领域,只有wallet.dat的钱包就如同受了重伤的鸟儿,等待它的或只有死路一条。如果是常见鸟类(资产较少)可能放弃救治,珍贵鸟类(资产较多)还可能救治,但一般只能实行暴力破解。
 
飞鹰的故事大抵如此,但很有必要详细了解一下钱包安全方面的知识,为此,猎云财经专门采访了降维安全运营负责人庞蟹。
                                                            
以下是庞蟹给出的分析:
 
若以银行账户为类比,这5个词分别对应内容如下:

地址=银行卡号
密码=银行卡移动U盾密码
私钥=银行卡号+银行卡密码
助记词=银行卡号+银行卡密码
Keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号

 
一、私钥

私钥=银行卡号+银行卡密码
 
1.导出
创建钱包后,输入密码可以导出私钥,这个私钥属于明文私钥,由64 位字符串组成,一个钱包只有一个私钥且不能修改。
 
2.用途
在导入钱包中,输入私钥并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 

二、助记词

助记词=银行卡号+银行卡密码
助记词=私钥
 
1.备份
创建钱包后,会出现一个备份助记词功能,选择备份助记词,输入密码,会出现12 个单词,每个单词之间有一个空格,这个就是助记词,一个钱包只有一个助记词且不能修改。
 
2.用途
助记词是私钥的另一种表现形式,具有和私钥同样的功能,在导入钱包中,输入助记词并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。
 
3.特征
助记词只能备份一次,备份后,在钱包中再也不会显示,因此在备份时一定要抄写下来。
 

三、keystore

keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号
keystore=加密私钥
keystore+密码=私钥
 
1.备份
钱包里有一个备份keystore 功能,选择备份keystore,输入密码,会出现一大段字符,这个就是keystore。
 
2.用途
在导入钱包中,选择官方钱包,输入keystore 和密码,就能进入钱包了。需要说明的是,这个密码是本手机原来设置的本钱包密码,这一点和用私钥或助记词导入钱包不一样,用私钥或助记词导入钱包,不需要知道原密码,直接重置密码。
 
3.特征
keystore 属于加密私钥,和钱包密码有很大关联,钱包密码修改后,keystore 也就相应变化,在用keystore 导入钱包时,需要输入密码,这个密码是备份keystore 时的钱包密码,与后来密码的修改无关。


出品 | 猎云财经
文 | 梦月

币圈首部长篇传记小说《韭菜的记忆》033 钱包余额

特写leekgeek 发表了文章 • 2019-04-07 11:03 • 来自相关话题

12月份,比特币还在持续下跌,看着很快就有可能跌破300美元的整数关口。加密货币市场散发出来的寒意,与小沟村的冬天相比,也是有过之而无不及。
 
矿场的300台S2矿机,5、6月份刚上架的时候,每个月差不多可以挖出当时市值100万元左右的比特币,到现在的12月份差不多只能挖出市值15万元左右的比特币,下个月估计就挖不回每个月9万元左右的电费,需要更新换新的矿机了。
 
S5矿机的算率1155 GH/s,耗电540 W,能耗比与前几个月上市的S4相比,又有了明显的提升,比上半年上市的S2更是有了巨大的进步。
 
宋远把矿场帐户里近3个月结余的现金150多万元,订购了500台S5矿机。
 
S5矿机在12月底送达矿场,宋远几个人忙活了一两天,下架了S2矿机,把S5矿机全部上架并接入矿池,开始了没日没夜的挖矿。
 
宋远给钱亦来打了个电话,随即让康风和康南搬了一百多台S2矿机,加上机架、网线、集线器、交换机等设备,给钱亦来送过去,帮他安装配置好并接入矿场的矿池。
 
每年的12月底和1月初,是小沟村最冷的时候,最低气温低于零下10摄氏度。比特币的价格也跌下了300美元,逼近200美元。
 
宋远算了下2014全年矿场的收支情况,500台S1矿机随挖随卖,到下架的时候,总共挖出了1570多个比特币,卖出均价550美元左右,收回了617万元。支出方面,矿机500万元,电费72万元,其它设备、场地、运营和人力等分摊,50万元,总计622万元。S1矿机基本达到收支平衡,略微亏损5万元。
 
200台S2矿机,从2014年5月份开挖,到年底全部下架,挖出的比特币也是随挖随卖,一共挖出了1330多个比特币,每个比特币卖出的均价接近500美元,一共收回了392万元。支出方面,矿机300万元,电费72万元,其它设备、场地、运营和人力等分摊30万元,总计402万元。S2矿机总体亏损10万元。
 
2014年全年,比特币的价格总体而言一直在持续下跌,如果不是随挖随卖,而是一直留着比特币,到年底的这几天再卖出,S1矿机挖到的比特币差不多只能卖出190万元,S2差不多只能卖出160万元,亏损会更加严重。
 
加密货币市场的寒冬,还不知道要持续到什么时候。而小沟村的严冬过一两个月就将过去,暖春就会随之而来。
 
严冬之中,千里冰封,万里雪飘,小沟村静静地躺在雪白的世界里。
 
2015年1月初的一个下午,宋远一个人在雪地里走了几个小时,登上了矿场附近的一座小山。站在山顶上,寒风夹杂着丝丝雨雪,扑面而来。
 
天地间白茫茫一片,山谷里的矿场已依稀难见。
 
宋远和李莎相识于盛夏的北京。一年前的这个时候,宋远和李莎来到了小沟村。一年后,宋远站立在寒风之中,矿场隐藏在白色的世界里,李莎却杳无音信,不知道是否安好。
 
恍惚之间,宋远忧从中来……
 

采薇
先秦·诗经
 
昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。

 
 
宋远正在山顶上站着,电话突然响了起来,把他从忧思中惊醒过来。
 
宋远一看,是个未知的电话号码,想着是否要挂掉。盯着屏幕看了好一会儿,对方一直在坚持拨打,想想还是接通了。
 
宋远正要问对方是谁,电话那边很快传过来略显急促,又有些沙哑的声音,“你还记得我写的那首诗吗,希望你安好,再见…… ”
 
电话里的声音虽然很是沙哑又急促,跟平常的声音差异很大,不过宋远却第一时间辨识出来,电话那边正是宋远魂牵梦萦的那个人。宋远激动不已,正要叫出对方的名字,电话却断了。
 
宋远赶紧回拨过去,却只能听到“你拨打的电话已关机”的系统应答。回拨了几遍之后,确定对方已关机,宋远又拨打了李莎之前使用的电话号码,也已关机。
 
宋远不由得一阵惶急,在山顶上团团转了几圈。突然心有所想,连滚带爬地下了山,又一路小跑地回了矿场,已是傍晚时分。
 
宋远冲进自己的房间,关上房门,打开笔记本电脑,登上一台乌克兰境内的远程服务器。这些服务器由当地的一些个人或小团队运营,从那里租赁服务器无需提供身份信息,也接受比特币,或者Bytecoin(BCN,早期基于CryptoNoto技术并致力于匿名交换的加密货币)、BitMonero(后来改名Monero,门罗币)等匿名币,匿名支付服务器租赁费用。
 
宋远退出了正在运行的比特币钱包,重命名比特币钱包数据文件。然后重新打开比特币钱包,回想起那天晚上在李莎家,李莎编写的那首诗,把它做了一些转换,作为助记词,导入了相应的钱包地址。
 

在一起时,
冰雪消融,
鸟语花开,
爱在寸心。

 
 
接着在服务器上比特币程序路径里输入命令:
 

./bitcoin-cli getwalletinfo

 
看到了钱包的balance(余额):13520.00000000
 
宋远的心跳骤然加快。即便现在的比特币跌到了200美元附近,钱包里的这些比特币也价值1600多万元。
 
宋远稍加思索,用刚才在山顶上默念的《诗经·采薇》中的一些词语,转换为助记词,生成新的比特币钱包地址和私钥。
 

昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。

 
 
然后把李莎钱包里的比特币全部转到了新的钱包地址。
 
旋即退出了比特币钱包程序,又把钱包文件删除干净,然后断开了远程服务器的连接。
 
……
 
呆坐了一小会儿,接着又拨打刚才山顶上接到的那个电话号码,“你拨打的电话已关机”,又拨打了李莎原先的电话号码,仍然是“你拨打的电话已关机”。
 
稍后又拨打了几遍电话,依然是“你拨打的电话已关机”。
 
惶恐之间,宋远拨通了王乐的电话,电话那边传来吵杂的说话声,以及欧美摇滚音乐声。
 
“嗨,宋远兄弟,好久不见,想起我啦?!真巧啊,我这几天正好在成都,‘欣悦双姝’也都在啊,你有时间也过来一起玩玩啊。” 王乐在那边大声说道。
 
“好啊,王总,噢,王哥,我这边有点事情想请您帮忙…… ” 宋远说道。
 
“有什么事情尽管说啊,咱们哥俩,别那么生分。” 王乐在那边大声说道。
 
宋远也加大声音,说道:“我最近联系不上李莎了,你在老家那边有没有认识的朋友,或者有没有什么办法,可以联系到李莎或者她们家人的。”
 
“噢,我还以为你们俩还一起躲那小山沟里隐居起来了呢,我也有好几个月没跟她联系上了。” 王乐诧异地回答道。
 
“我们俩去年年初分开之后就再也没有见过面了,也不知道她那边怎么样了。我担心她出了什么事情了,得尽快想办法打探清楚了。” 宋远大声地说道,担心王乐那边太吵杂了听不到。
 
“宋远兄弟,我知道了啊,一会我就找老家那边的朋友问问啊,你也别太担心了。” 王乐大声回答道,“我这边还在喝酒应酬,太闹了,不和你多说了。对了,我这儿正好也有点事情要找你,你明天来成都一趟吧,我们一起详谈。”
 
宋远顾不上问王乐那边是什么事情,只想着早点让他打听李莎的情况,就不假思索地答应了下来。
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
033yue.jpg

12月份,比特币还在持续下跌,看着很快就有可能跌破300美元的整数关口。加密货币市场散发出来的寒意,与小沟村的冬天相比,也是有过之而无不及。
 
矿场的300台S2矿机,5、6月份刚上架的时候,每个月差不多可以挖出当时市值100万元左右的比特币,到现在的12月份差不多只能挖出市值15万元左右的比特币,下个月估计就挖不回每个月9万元左右的电费,需要更新换新的矿机了。
 
S5矿机的算率1155 GH/s,耗电540 W,能耗比与前几个月上市的S4相比,又有了明显的提升,比上半年上市的S2更是有了巨大的进步。
 
宋远把矿场帐户里近3个月结余的现金150多万元,订购了500台S5矿机。
 
S5矿机在12月底送达矿场,宋远几个人忙活了一两天,下架了S2矿机,把S5矿机全部上架并接入矿池,开始了没日没夜的挖矿。
 
宋远给钱亦来打了个电话,随即让康风和康南搬了一百多台S2矿机,加上机架、网线、集线器、交换机等设备,给钱亦来送过去,帮他安装配置好并接入矿场的矿池。
 
每年的12月底和1月初,是小沟村最冷的时候,最低气温低于零下10摄氏度。比特币的价格也跌下了300美元,逼近200美元。
 
宋远算了下2014全年矿场的收支情况,500台S1矿机随挖随卖,到下架的时候,总共挖出了1570多个比特币,卖出均价550美元左右,收回了617万元。支出方面,矿机500万元,电费72万元,其它设备、场地、运营和人力等分摊,50万元,总计622万元。S1矿机基本达到收支平衡,略微亏损5万元。
 
200台S2矿机,从2014年5月份开挖,到年底全部下架,挖出的比特币也是随挖随卖,一共挖出了1330多个比特币,每个比特币卖出的均价接近500美元,一共收回了392万元。支出方面,矿机300万元,电费72万元,其它设备、场地、运营和人力等分摊30万元,总计402万元。S2矿机总体亏损10万元。
 
2014年全年,比特币的价格总体而言一直在持续下跌,如果不是随挖随卖,而是一直留着比特币,到年底的这几天再卖出,S1矿机挖到的比特币差不多只能卖出190万元,S2差不多只能卖出160万元,亏损会更加严重。
 
加密货币市场的寒冬,还不知道要持续到什么时候。而小沟村的严冬过一两个月就将过去,暖春就会随之而来。
 
严冬之中,千里冰封,万里雪飘,小沟村静静地躺在雪白的世界里。
 
2015年1月初的一个下午,宋远一个人在雪地里走了几个小时,登上了矿场附近的一座小山。站在山顶上,寒风夹杂着丝丝雨雪,扑面而来。
 
天地间白茫茫一片,山谷里的矿场已依稀难见。
 
宋远和李莎相识于盛夏的北京。一年前的这个时候,宋远和李莎来到了小沟村。一年后,宋远站立在寒风之中,矿场隐藏在白色的世界里,李莎却杳无音信,不知道是否安好。
 
恍惚之间,宋远忧从中来……
 


采薇
先秦·诗经
 
昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。


 
 
宋远正在山顶上站着,电话突然响了起来,把他从忧思中惊醒过来。
 
宋远一看,是个未知的电话号码,想着是否要挂掉。盯着屏幕看了好一会儿,对方一直在坚持拨打,想想还是接通了。
 
宋远正要问对方是谁,电话那边很快传过来略显急促,又有些沙哑的声音,“你还记得我写的那首诗吗,希望你安好,再见…… ”
 
电话里的声音虽然很是沙哑又急促,跟平常的声音差异很大,不过宋远却第一时间辨识出来,电话那边正是宋远魂牵梦萦的那个人。宋远激动不已,正要叫出对方的名字,电话却断了。
 
宋远赶紧回拨过去,却只能听到“你拨打的电话已关机”的系统应答。回拨了几遍之后,确定对方已关机,宋远又拨打了李莎之前使用的电话号码,也已关机。
 
宋远不由得一阵惶急,在山顶上团团转了几圈。突然心有所想,连滚带爬地下了山,又一路小跑地回了矿场,已是傍晚时分。
 
宋远冲进自己的房间,关上房门,打开笔记本电脑,登上一台乌克兰境内的远程服务器。这些服务器由当地的一些个人或小团队运营,从那里租赁服务器无需提供身份信息,也接受比特币,或者Bytecoin(BCN,早期基于CryptoNoto技术并致力于匿名交换的加密货币)、BitMonero(后来改名Monero,门罗币)等匿名币,匿名支付服务器租赁费用。
 
宋远退出了正在运行的比特币钱包,重命名比特币钱包数据文件。然后重新打开比特币钱包,回想起那天晚上在李莎家,李莎编写的那首诗,把它做了一些转换,作为助记词,导入了相应的钱包地址。
 


在一起时,
冰雪消融,
鸟语花开,
爱在寸心。


 
 
接着在服务器上比特币程序路径里输入命令:
 


./bitcoin-cli getwalletinfo


 
看到了钱包的balance(余额):13520.00000000
 
宋远的心跳骤然加快。即便现在的比特币跌到了200美元附近,钱包里的这些比特币也价值1600多万元。
 
宋远稍加思索,用刚才在山顶上默念的《诗经·采薇》中的一些词语,转换为助记词,生成新的比特币钱包地址和私钥。
 


昔我往矣,杨柳依依。
今我来思,雨雪霏霏。
行道迟迟,载饥载渴。
我心伤悲,莫知我哀。


 
 
然后把李莎钱包里的比特币全部转到了新的钱包地址。
 
旋即退出了比特币钱包程序,又把钱包文件删除干净,然后断开了远程服务器的连接。
 
……
 
呆坐了一小会儿,接着又拨打刚才山顶上接到的那个电话号码,“你拨打的电话已关机”,又拨打了李莎原先的电话号码,仍然是“你拨打的电话已关机”。
 
稍后又拨打了几遍电话,依然是“你拨打的电话已关机”。
 
惶恐之间,宋远拨通了王乐的电话,电话那边传来吵杂的说话声,以及欧美摇滚音乐声。
 
“嗨,宋远兄弟,好久不见,想起我啦?!真巧啊,我这几天正好在成都,‘欣悦双姝’也都在啊,你有时间也过来一起玩玩啊。” 王乐在那边大声说道。
 
“好啊,王总,噢,王哥,我这边有点事情想请您帮忙…… ” 宋远说道。
 
“有什么事情尽管说啊,咱们哥俩,别那么生分。” 王乐在那边大声说道。
 
宋远也加大声音,说道:“我最近联系不上李莎了,你在老家那边有没有认识的朋友,或者有没有什么办法,可以联系到李莎或者她们家人的。”
 
“噢,我还以为你们俩还一起躲那小山沟里隐居起来了呢,我也有好几个月没跟她联系上了。” 王乐诧异地回答道。
 
“我们俩去年年初分开之后就再也没有见过面了,也不知道她那边怎么样了。我担心她出了什么事情了,得尽快想办法打探清楚了。” 宋远大声地说道,担心王乐那边太吵杂了听不到。
 
“宋远兄弟,我知道了啊,一会我就找老家那边的朋友问问啊,你也别太担心了。” 王乐大声回答道,“我这边还在喝酒应酬,太闹了,不和你多说了。对了,我这儿正好也有点事情要找你,你明天来成都一趟吧,我们一起详谈。”
 
宋远顾不上问王乐那边是什么事情,只想着早点让他打听李莎的情况,就不假思索地答应了下来。
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

币圈首部长篇传记小说《韭菜的记忆》006 助记词

特写leekgeek 发表了文章 • 2019-03-23 23:04 • 来自相关话题

书房的桌子上,放着一台大屏幕的 iMac, 李莎站在桌子旁边,弓着身子神神秘秘地用一只手掌挡住键盘,另一只手敲击了几下,登录进了系统,接着打开比特币核心钱包(Bitcoin Core)。然后让宋远坐在屏幕前的大靠背椅上,自己倚着椅子在旁边看着。
 
宋远看了下,钱包已是最新的 0.8.5 版本,因为一直在线,显示已同步到了最新区块,只不过钱包余额还是 0.00000000。
 
“可以啊,之前没白教你,用得不错啊。不过你这钱包里又不放钱,天天开着同步不浪费电吗?” 宋远揶揄道。
 
“我这不还没搞明白地址、公钥、私钥嘛,也还不会导出私钥和备份钱包,就没敢往这里面转钱啊。” 李莎吐了吐舌头。
 
“不错不错,很谨慎嘛。孺子可教也。” 宋远故意一本正经地表扬了一番,然后又现场演示了几遍怎么查看收款地址、加密钱包、解锁钱包、备份钱包文件,怎么导出私钥再用纸币抄写下来。
 
见李莎差不多学明白了,宋远退出了程序,把钱包文件删除了,又打开程序重新生成新的钱包文件,让李莎操作一番,自己则坐在远远的看不到屏幕的地方。
 
“比特币安全守则之一,不要告诉任何人,也不要让任何人看见你的私钥。” 宋远故意不往李莎那边看,在旁边说道,“我没看见你的私钥噢,回头丢了比特币别找我,哈哈。”
 
“啧啧,这人,真是的,把自己摘得挺干净的。不过你放心,万一丢了比特币,第一个找的就是你,谁知道你刚才有没有在我电脑上装个木马啥的,哼。” 李莎边在键盘上敲敲打打,边跟宋远斗嘴。
 
过了一会,李莎很高兴地拿出一个小本子,对着屏幕抄写了一会,又仔细核对了几遍,然后郑重其事地把小本放抽屉了锁上,把钥匙晃了晃,“看清楚了,这是钥匙噢,东西丢了找你。”
 
随后,李莎又让宋远坐回电脑前面,自己则站在后面,顺手给宋远拍了拍肩膀,又捶了捶后背。
 
宋远很享受地哼哼了几声,说道:“又有什么事有求于我吧,说吧。”
 
“这个私钥还真是麻烦,万一弄丢了怎么办?放抽屉里也不踏实啊。刚才在车上你说的什么HD钱包又是怎么回事?”
 
宋远耐心地解释了一番,HD钱包(HD Wallets)的全称是Hierachical Deterministic Wallets, 对应中文是“分层确定性钱包”。可以通过助记词来生成种子,继而生成主私钥,然后派生出海量的子私钥和地址。只要记住助记词就可以掌握所有的地址和私钥,而这些助记词则是方便记住的单词或文字。
 
费了一番口舌,好不容易让李莎理解下来,接下来两人进入了实战演习阶段。宋远下载了助记词转换程序到电脑里,断开网络连接,让李莎想些助记词,来现场生成钱包地址和私钥。
 
李莎想了想,写下了:
 
在一起时,
冰雪消融,
鸟语花开,
爱在寸心。
 
 
宋远把李莎写下的这些词语转换成了HD种子(Seed)、主密钥(Master Key),以及多个比特币地址和私钥。
 
然后又郑重其事地叮嘱李莎,学会之后一定要用新的助记词自己重新生成新的比特币地址和私钥。因为助记词就能推导出私钥,所以助记词和私钥一样可以掌控相应地址上的比特币资产,切记不要泄漏,也不能遗忘。
 
“刚才用来示范过的助记词就不能真的拿来用了,因为已经被我知道了。” 宋远再次强调,“另外,你最好让程序自动帮你生成随机的助记词,这样被人猜出来的可能性会更低,资产也会更安全。当然,你要通过自己的方式把助记词备份好,通过一定的方式把助记词作一些掐头去尾,或加上一些只有自己知道的编码打乱它们,这样万一被人看到了也猜不到真实的内容。”
 
“知道啦,你好啰嗦啊…… ” 李莎吐了吐舌头,嗔怪道,不过却掩饰不住地笑逐颜开。
 
“谢谢你!” 李莎俯身迅速抱了下宋远又马上放开,“给你一个奖励哈哈。”
 
宋远怔了一下,转过身子,发现李莎已经飞奔出了房间,边跑边说:“我去厨房看看夜宵做好了没有。应该差不多了,你也一会就来啊。”
 
宋远答应了一声,然后退出了助记词和私钥转换程序,重新连上网络,打开浏览器登录比特币中国的首页看了一眼,比特币的价格还是在1000美元附近波动。
 
然后又拿出手机,打开聊天软件。虽然已是午夜,比特币的一个QQ群里还是人声鼎沸、热闹非凡。
 
“To The Moon. ”
 
"一币一嫩模!"
 
“何止嫩模,拿稳了,一币一别墅!”
 
“这个月,比特币有可能突破2000美元。 ”
 
“不止吧,11月份都涨了3倍不止…… ”
 
“拿着吧,别管了,发车要紧!”
 
随后好些个人发出了不少图片和表情,群里纷乱不堪
 
……
 
宋远关掉聊天软件,心里隐隐觉得不安,又思索了下是否卖出一部分比特币。正想着,李莎在外面叫了声夜宵好了。
 
“算了,先放着吧。”宋远关掉网页,循声走去餐厅。
 
李莎已经坐在了餐桌边上,桌上放着两盅煲汤,还有一些小花卷和包子。
 
两人之前在蓝蛙都没吃太饱,长途奔波回来,又经历了一场脑力大战费了很多口舌,正有点饥肠辘辘。一阵风卷残云,就把桌上的东西都吃下去了。
 
随后,李莎把宋远带去二楼的客房,房间干净明亮,宽大的床铺上,被子枕头叠放整齐。客房也是一个完整的套间,带有卫生间和更衣室,洗漱用品一应俱全。
 
“你要是有体力,可以泡个热水澡再睡觉,或者偷个懒先睡个好觉,明天早上起来去楼下游泳池游几圈。” 李莎打了个哈欠,“我要先去睡觉了,女孩子不能熬夜,容易变老。”
 
“我的房间就在那边角上,你如果想打地铺随时欢迎过来!哈哈哈。” 李莎边说边往外走。
 
待得李莎走出房门,宋远迅速掩上门,透过门缝说:”我要睡觉了,困死了,之前加了好几个晚上的班。晚上你别过来打扰我啊,不要来偷窥!“
 
”哼,我就不走了!“ 李莎作势往回走。
 
宋远吓得连连摆手,”别别别,算你狠,注意点影响啊,一会你妈过来了。“
 
"禽兽不如…… "
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
738450d14ab8d6bdfc5116765f1bbc3b_GIZTMMBKGE2DMMQ.jpg

书房的桌子上,放着一台大屏幕的 iMac, 李莎站在桌子旁边,弓着身子神神秘秘地用一只手掌挡住键盘,另一只手敲击了几下,登录进了系统,接着打开比特币核心钱包(Bitcoin Core)。然后让宋远坐在屏幕前的大靠背椅上,自己倚着椅子在旁边看着。
 
宋远看了下,钱包已是最新的 0.8.5 版本,因为一直在线,显示已同步到了最新区块,只不过钱包余额还是 0.00000000。
 
“可以啊,之前没白教你,用得不错啊。不过你这钱包里又不放钱,天天开着同步不浪费电吗?” 宋远揶揄道。
 
“我这不还没搞明白地址、公钥、私钥嘛,也还不会导出私钥和备份钱包,就没敢往这里面转钱啊。” 李莎吐了吐舌头。
 
“不错不错,很谨慎嘛。孺子可教也。” 宋远故意一本正经地表扬了一番,然后又现场演示了几遍怎么查看收款地址、加密钱包、解锁钱包、备份钱包文件,怎么导出私钥再用纸币抄写下来。
 
见李莎差不多学明白了,宋远退出了程序,把钱包文件删除了,又打开程序重新生成新的钱包文件,让李莎操作一番,自己则坐在远远的看不到屏幕的地方。
 
“比特币安全守则之一,不要告诉任何人,也不要让任何人看见你的私钥。” 宋远故意不往李莎那边看,在旁边说道,“我没看见你的私钥噢,回头丢了比特币别找我,哈哈。”
 
“啧啧,这人,真是的,把自己摘得挺干净的。不过你放心,万一丢了比特币,第一个找的就是你,谁知道你刚才有没有在我电脑上装个木马啥的,哼。” 李莎边在键盘上敲敲打打,边跟宋远斗嘴。
 
过了一会,李莎很高兴地拿出一个小本子,对着屏幕抄写了一会,又仔细核对了几遍,然后郑重其事地把小本放抽屉了锁上,把钥匙晃了晃,“看清楚了,这是钥匙噢,东西丢了找你。”
 
随后,李莎又让宋远坐回电脑前面,自己则站在后面,顺手给宋远拍了拍肩膀,又捶了捶后背。
 
宋远很享受地哼哼了几声,说道:“又有什么事有求于我吧,说吧。”
 
“这个私钥还真是麻烦,万一弄丢了怎么办?放抽屉里也不踏实啊。刚才在车上你说的什么HD钱包又是怎么回事?”
 
宋远耐心地解释了一番,HD钱包(HD Wallets)的全称是Hierachical Deterministic Wallets, 对应中文是“分层确定性钱包”。可以通过助记词来生成种子,继而生成主私钥,然后派生出海量的子私钥和地址。只要记住助记词就可以掌握所有的地址和私钥,而这些助记词则是方便记住的单词或文字。
 
费了一番口舌,好不容易让李莎理解下来,接下来两人进入了实战演习阶段。宋远下载了助记词转换程序到电脑里,断开网络连接,让李莎想些助记词,来现场生成钱包地址和私钥。
 
李莎想了想,写下了:
 
在一起时,
冰雪消融,
鸟语花开,
爱在寸心。
 
 
宋远把李莎写下的这些词语转换成了HD种子(Seed)、主密钥(Master Key),以及多个比特币地址和私钥。
 
然后又郑重其事地叮嘱李莎,学会之后一定要用新的助记词自己重新生成新的比特币地址和私钥。因为助记词就能推导出私钥,所以助记词和私钥一样可以掌控相应地址上的比特币资产,切记不要泄漏,也不能遗忘。
 
“刚才用来示范过的助记词就不能真的拿来用了,因为已经被我知道了。” 宋远再次强调,“另外,你最好让程序自动帮你生成随机的助记词,这样被人猜出来的可能性会更低,资产也会更安全。当然,你要通过自己的方式把助记词备份好,通过一定的方式把助记词作一些掐头去尾,或加上一些只有自己知道的编码打乱它们,这样万一被人看到了也猜不到真实的内容。”
 
“知道啦,你好啰嗦啊…… ” 李莎吐了吐舌头,嗔怪道,不过却掩饰不住地笑逐颜开。
 
“谢谢你!” 李莎俯身迅速抱了下宋远又马上放开,“给你一个奖励哈哈。”
 
宋远怔了一下,转过身子,发现李莎已经飞奔出了房间,边跑边说:“我去厨房看看夜宵做好了没有。应该差不多了,你也一会就来啊。”
 
宋远答应了一声,然后退出了助记词和私钥转换程序,重新连上网络,打开浏览器登录比特币中国的首页看了一眼,比特币的价格还是在1000美元附近波动。
 
然后又拿出手机,打开聊天软件。虽然已是午夜,比特币的一个QQ群里还是人声鼎沸、热闹非凡。
 
“To The Moon. ”
 
"一币一嫩模!"
 
“何止嫩模,拿稳了,一币一别墅!”
 
“这个月,比特币有可能突破2000美元。 ”
 
“不止吧,11月份都涨了3倍不止…… ”
 
“拿着吧,别管了,发车要紧!”
 
随后好些个人发出了不少图片和表情,群里纷乱不堪
 
……
 
宋远关掉聊天软件,心里隐隐觉得不安,又思索了下是否卖出一部分比特币。正想着,李莎在外面叫了声夜宵好了。
 
“算了,先放着吧。”宋远关掉网页,循声走去餐厅。
 
李莎已经坐在了餐桌边上,桌上放着两盅煲汤,还有一些小花卷和包子。
 
两人之前在蓝蛙都没吃太饱,长途奔波回来,又经历了一场脑力大战费了很多口舌,正有点饥肠辘辘。一阵风卷残云,就把桌上的东西都吃下去了。
 
随后,李莎把宋远带去二楼的客房,房间干净明亮,宽大的床铺上,被子枕头叠放整齐。客房也是一个完整的套间,带有卫生间和更衣室,洗漱用品一应俱全。
 
“你要是有体力,可以泡个热水澡再睡觉,或者偷个懒先睡个好觉,明天早上起来去楼下游泳池游几圈。” 李莎打了个哈欠,“我要先去睡觉了,女孩子不能熬夜,容易变老。”
 
“我的房间就在那边角上,你如果想打地铺随时欢迎过来!哈哈哈。” 李莎边说边往外走。
 
待得李莎走出房门,宋远迅速掩上门,透过门缝说:”我要睡觉了,困死了,之前加了好几个晚上的班。晚上你别过来打扰我啊,不要来偷窥!“
 
”哼,我就不走了!“ 李莎作势往回走。
 
宋远吓得连连摆手,”别别别,算你狠,注意点影响啊,一会你妈过来了。“
 
"禽兽不如…… "
 
 
连载中……
作者:韭菜极客(微信公众号:l
eekgeek)

比特币钱包开发:通过助记词扩展子地址的原理与编码

攻略chaindesk 发表了文章 • 2018-11-28 10:41 • 来自相关话题

目标

    掌握生成助记词的原理
    掌握助记词生成种子的原理
    掌握种子生成子秘钥的原理
    编程实践:从生成助记词到子地址



前言


为了安全尽量保证比特币地址的公钥未在网络上出现过,这就需要我们每次支付时,将支付额转到一个新的账户发起转账,而收款时使用一个新账号地址。为了满足这样的场景,就需要安全管理很多的账号与对应的秘钥,这样显然是不科学的。因此,这里讲解通过助记词生成很多子地址,这样,我们只需保存一份助记词就相当于保存好了2^31个账号的私钥。


一、助记词的生成过程


BIP39是助记词标准的实现,助记词是一个随机数的字序列,用来作为种子产生一个确定性的钱包。单词序列足以重新创建种子,然后再创建钱包和所有派生的密钥。一个实现带有助记词的确定性钱包应用程序在首次创建钱包时将向用户显示12到24个单词的序列。该单词序列是钱包备份,可用于恢复和重新创建相同或任何兼容的钱包应用程序中的所有密钥。记忆单词使用户更容易备份钱包,因为与随机数字序列相比,它们易于阅读和正确地转录。所有的助记词在这里可以查看:助记词词库。

使用BIP39中定义的标准化过程,钱包自动生成助记词。钱包从一个熵源开始,添加一个校验和,然后将熵映射到一个单词列表,具体步骤如下:

    创建128到256位的随机序列(熵)。
    通过获取SHA256哈希的第一(熵长度/ 32)位来创建随机序列的校验和。
    将校验和添加到随机序列的末尾。
    将序列分成11位的部分。
    将每个11位值映射到来自2048个单词的预定义字典中的单词。
    助记词是单词序列。


生成助记词的步骤如下图。







下表描述了初始熵长度(ENT),校验和长度(CS)和单词中生成的助记词(MS)的长度之间的关系。

熵(bits)Checksum(bits)熵+Checksum(bits)助记词长度(words)128413212160516515192619818224723121256826424


二、从助记词到种子


用户可以决定用密码来保护他们的助记符。如果不存在密码短语,则使用空字符串“”。

助记词代表长度为128到256位的熵。然后使用熵通过使用密钥扩展函数PBKDF2来导出更长(512位)的种子。然后,所产生的种子用于构建确定性钱包并获得其密钥。

密钥扩展功能有两个参数:助记词和盐(salt)。密钥扩展功能中的盐的目的是使得难以构建能够进行暴力攻击的查找表。在BIP-39标准中,salt具有另一个目的 - 它允许引入密码短语作为保护种子的额外安全因子。

    PBKDF2密钥扩展功能的第一个参数是从步骤6产生的助记词。
    PBKDF2密钥扩展功能的第二个参数是salt。salt由字符串常量“mnemonic”和可选的用户提供的密码短语字符串组成。
    PBKDF2使用2048轮HMAC-SHA512哈希算法来扩展助记词和salt参数,产生512位值作为其最终输出。那个512位的值就是种子。


使用助记词来生成种子的步骤如下图。







下面演示一下助记词生成种子的实例:

12个长度的助记词,无密码生成种子






9C286891-0902-4F1D-AD31-4EB804F71DF7

12个长度的助记词,有密码生成种子






51FC2016-15A7-4641-A203-43964671B881

24个长度的助记词,无密码生成种子






DE00BE18-E081-446B-9736-69198B2524E0

24个长度的助记词,有密码生成种子






442FFE9B-0929-4C4B-B0B1-7D046B5C85FC


三、种子生成子秘钥


种子通过不可逆HMAC-SHA512算法推算出512位的哈希串,前256位是主私钥Master Private Key (m),后256位是主链码Master Chain Code(c)。

给定父扩展私钥和索引i,可以计算相应的子扩展私钥。

函数CKDpriv((kpar,cpar),i)→(ki,ci)

如果i ≥ 2^31(硬化的子密钥):让I= HMAC-SHA512(Key = cpar,Data = 0x00 || ser256(kpar)|| ser32(i))。 (注意:0x00将私钥补齐到33字节长。)

如果i<2^31(普通的子密钥):让I= HMAC-SHA512(Key = cpar,Data = serP(point(kpar))|| ser32(i))。

给定父扩展公钥和索引i,可以计算相应的子扩展公钥。它只针对未硬化的子密钥定义。

如果i ≥ 2^31(硬化子密钥):返回失败

如果i<2^31(普通子密钥):让I= HMAC-SHA512(Key = cpar, Data = serP(Kpar) || ser32(i)).

扩展私钥的前缀是xprv,如:

tprv8iGPAfgu51nkCZZtua8jFgzVoCQLqHZrLCQonxTo7qdtzutL8ZFZt1yAtpcUF8sHdNyiVhece3SSRsBvtUCKpGkRvxXgV2TMdcDbKQzstta 扩展公钥的前缀是tpub,如:

tpubDExRK5j9DPUR62bgoDoKf6ecNDvGzckkuW1b5UW6Y7SHqQ96kx5A4Wb34w6bkHUStdq5w7ZHPQHkipwRdSQMbGnqTAQj1sEBaJmL9wXvBSu

每个扩展密钥有 2^31 个普通子密钥,2^31个硬化子密钥。这些子密钥都有一个索引,普通子密钥使用索引0到2^31-1,硬化的子密钥使用索引 2^31 到 2^32-1,为了简化硬化密钥索引的符号,数字iH表示i + 2^31。

以上过程再结合BIP43,BIP44,HD钱包就实现了多币种、多账户、多用途等功能。







四、编程实践:从生成助记词到扩展子地址


代码

var bitcoin = require('bitcoinjs-lib');
var bip39 = require("bip39")
var bip32 = require("bip32")

const myNetwork = bitcoin.networks.testnet

const mnemonic = 'eternal list thank chaos trick paper sniff ridge make govern invest abandon'
// const mnemonic = bip39.generateMnemonic()
const seed = bip39.mnemonicToSeed(mnemonic, "lixu1234qwer")
const root = bip32.fromSeed(seed, myNetwork)

for(var i = 0; i < 3; i++) {
    const path = "m/44'/1'/0'/0/"+i
    console.log("路径:", path)
    const keyPair = root.derivePath(path)

    const privateKey = keyPair.toWIF()
    console.log("私钥", privateKey)

    const publicKey = keyPair.publicKey.toString("hex")
    console.log("公钥:", publicKey)

    let address = getAddress(keyPair, myNetwork)
    console.log("地址:", address, "\n")
}

function getAddress(keyPair, network) {
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network})
    return address
}



输出

    下面是在测试网络下生成的私钥、公钥、地址






    下面是在正式网络下生成的私钥、公钥、地址







验证














代码解析

    需要安装库:bitcoinjs-lib、bip39、bip32。
    bitcoin.networks.testnet:指定为测试网络,若切换到正式网络,则为bitcoin.networks.bitcoin,同时需要改变路径。
    bip39.generateMnemonic():用于生成助记词。
    bip39.mnemonicToSeed(mnemonic, "lixu1234qwer"):将助记词与密码转成种子。
    bip32.fromSeed(seed, myNetwork):将种子转为相应网络下的root。
    const path = "m/44'/1'/0'/0/"+i:指定第一个账号的第i个扩展子账号路径。若切换到正式网络,路径则是"m/44'/0'/0'/0/"+i
    root.derivePath(path):获取指定路径的keyPair。
    keyPair.toWIF():获取私钥。
    keyPair.publicKey.toString("hex"):获取公钥。
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network}):获取普通比特币地址,p2pkh这是最常见的比特币交易地址类型。可见:在测试网络中的地址是以m或n开头,在正式网络中是以1开头。



作者:黎跃春,孔壹学院、ChainDesk(http://chaindesk.cn)创始人兼CEO,前北京中油瑞飞信息技术有限公司研究院hybrid架构师,通信和信息技术区块链高级授课专家,16年创办国内区块链职业教育领先品牌孔壹学院,18年5月首创基于区块链的多相脑图分割模型学习社区ChainDesk。 查看全部
d15a22c4-5e33-44e7-997a-fd2f3acfefb6.jpeg

目标


    掌握生成助记词的原理
    掌握助记词生成种子的原理
    掌握种子生成子秘钥的原理
    编程实践:从生成助记词到子地址




前言


为了安全尽量保证比特币地址的公钥未在网络上出现过,这就需要我们每次支付时,将支付额转到一个新的账户发起转账,而收款时使用一个新账号地址。为了满足这样的场景,就需要安全管理很多的账号与对应的秘钥,这样显然是不科学的。因此,这里讲解通过助记词生成很多子地址,这样,我们只需保存一份助记词就相当于保存好了2^31个账号的私钥。


一、助记词的生成过程


BIP39是助记词标准的实现,助记词是一个随机数的字序列,用来作为种子产生一个确定性的钱包。单词序列足以重新创建种子,然后再创建钱包和所有派生的密钥。一个实现带有助记词的确定性钱包应用程序在首次创建钱包时将向用户显示12到24个单词的序列。该单词序列是钱包备份,可用于恢复和重新创建相同或任何兼容的钱包应用程序中的所有密钥。记忆单词使用户更容易备份钱包,因为与随机数字序列相比,它们易于阅读和正确地转录。所有的助记词在这里可以查看:助记词词库。

使用BIP39中定义的标准化过程,钱包自动生成助记词。钱包从一个熵源开始,添加一个校验和,然后将熵映射到一个单词列表,具体步骤如下:


    创建128到256位的随机序列(熵)。
    通过获取SHA256哈希的第一(熵长度/ 32)位来创建随机序列的校验和。
    将校验和添加到随机序列的末尾。
    将序列分成11位的部分。
    将每个11位值映射到来自2048个单词的预定义字典中的单词。
    助记词是单词序列。



生成助记词的步骤如下图。

daf87b21b5cc47648770ac2c0ce45cfd.jpg



下表描述了初始熵长度(ENT),校验和长度(CS)和单词中生成的助记词(MS)的长度之间的关系。

熵(bits)Checksum(bits)熵+Checksum(bits)助记词长度(words)128413212160516515192619818224723121256826424


二、从助记词到种子


用户可以决定用密码来保护他们的助记符。如果不存在密码短语,则使用空字符串“”。

助记词代表长度为128到256位的熵。然后使用熵通过使用密钥扩展函数PBKDF2来导出更长(512位)的种子。然后,所产生的种子用于构建确定性钱包并获得其密钥。

密钥扩展功能有两个参数:助记词和盐(salt)。密钥扩展功能中的盐的目的是使得难以构建能够进行暴力攻击的查找表。在BIP-39标准中,salt具有另一个目的 - 它允许引入密码短语作为保护种子的额外安全因子。


    PBKDF2密钥扩展功能的第一个参数是从步骤6产生的助记词。
    PBKDF2密钥扩展功能的第二个参数是salt。salt由字符串常量“mnemonic”和可选的用户提供的密码短语字符串组成。
    PBKDF2使用2048轮HMAC-SHA512哈希算法来扩展助记词和salt参数,产生512位值作为其最终输出。那个512位的值就是种子。



使用助记词来生成种子的步骤如下图。

7940906315c34475ba9b1ed27f91158c.jpg



下面演示一下助记词生成种子的实例:

12个长度的助记词,无密码生成种子

6ea8e87291814ca98732038822cee54b.jpg


9C286891-0902-4F1D-AD31-4EB804F71DF7

12个长度的助记词,有密码生成种子

5411c336ccc84b4787305c97285ababe.jpg


51FC2016-15A7-4641-A203-43964671B881

24个长度的助记词,无密码生成种子

4c4bc9aafba84ac7bcec500f6822ec10.jpg


DE00BE18-E081-446B-9736-69198B2524E0

24个长度的助记词,有密码生成种子

93bca0aa437e4b10921b86875f8b556e.jpg


442FFE9B-0929-4C4B-B0B1-7D046B5C85FC


三、种子生成子秘钥


种子通过不可逆HMAC-SHA512算法推算出512位的哈希串,前256位是主私钥Master Private Key (m),后256位是主链码Master Chain Code(c)。

给定父扩展私钥和索引i,可以计算相应的子扩展私钥。

函数CKDpriv((kpar,cpar),i)→(ki,ci)

如果i ≥ 2^31(硬化的子密钥):让I= HMAC-SHA512(Key = cpar,Data = 0x00 || ser256(kpar)|| ser32(i))。 (注意:0x00将私钥补齐到33字节长。)

如果i<2^31(普通的子密钥):让I= HMAC-SHA512(Key = cpar,Data = serP(point(kpar))|| ser32(i))。

给定父扩展公钥和索引i,可以计算相应的子扩展公钥。它只针对未硬化的子密钥定义。

如果i ≥ 2^31(硬化子密钥):返回失败

如果i<2^31(普通子密钥):让I= HMAC-SHA512(Key = cpar, Data = serP(Kpar) || ser32(i)).

扩展私钥的前缀是xprv,如:

tprv8iGPAfgu51nkCZZtua8jFgzVoCQLqHZrLCQonxTo7qdtzutL8ZFZt1yAtpcUF8sHdNyiVhece3SSRsBvtUCKpGkRvxXgV2TMdcDbKQzstta 扩展公钥的前缀是tpub,如:

tpubDExRK5j9DPUR62bgoDoKf6ecNDvGzckkuW1b5UW6Y7SHqQ96kx5A4Wb34w6bkHUStdq5w7ZHPQHkipwRdSQMbGnqTAQj1sEBaJmL9wXvBSu

每个扩展密钥有 2^31 个普通子密钥,2^31个硬化子密钥。这些子密钥都有一个索引,普通子密钥使用索引0到2^31-1,硬化的子密钥使用索引 2^31 到 2^32-1,为了简化硬化密钥索引的符号,数字iH表示i + 2^31。

以上过程再结合BIP43,BIP44,HD钱包就实现了多币种、多账户、多用途等功能。

seed.png



四、编程实践:从生成助记词到扩展子地址


代码


var bitcoin = require('bitcoinjs-lib');
var bip39 = require("bip39")
var bip32 = require("bip32")

const myNetwork = bitcoin.networks.testnet

const mnemonic = 'eternal list thank chaos trick paper sniff ridge make govern invest abandon'
// const mnemonic = bip39.generateMnemonic()
const seed = bip39.mnemonicToSeed(mnemonic, "lixu1234qwer")
const root = bip32.fromSeed(seed, myNetwork)

for(var i = 0; i < 3; i++) {
    const path = "m/44'/1'/0'/0/"+i
    console.log("路径:", path)
    const keyPair = root.derivePath(path)

    const privateKey = keyPair.toWIF()
    console.log("私钥", privateKey)

    const publicKey = keyPair.publicKey.toString("hex")
    console.log("公钥:", publicKey)

    let address = getAddress(keyPair, myNetwork)
    console.log("地址:", address, "\n")
}

function getAddress(keyPair, network) {
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network})
    return address
}




输出

    下面是在测试网络下生成的私钥、公钥、地址

A37E562F-6A7A-4471-919B-F3ED347A6A82.png


    下面是在正式网络下生成的私钥、公钥、地址

5139288B-4F69-4CDE-929E-6B2CD15088EF.png



验证


F0374899-E1A8-464B-93DA-06D7C0FF5A0B.png


23817D2B-91A9-4ADC-AAD9-FCDC9BA24B0D.png




代码解析


    需要安装库:bitcoinjs-lib、bip39、bip32。
    bitcoin.networks.testnet:指定为测试网络,若切换到正式网络,则为bitcoin.networks.bitcoin,同时需要改变路径。
    bip39.generateMnemonic():用于生成助记词。
    bip39.mnemonicToSeed(mnemonic, "lixu1234qwer"):将助记词与密码转成种子。
    bip32.fromSeed(seed, myNetwork):将种子转为相应网络下的root。
    const path = "m/44'/1'/0'/0/"+i:指定第一个账号的第i个扩展子账号路径。若切换到正式网络,路径则是"m/44'/0'/0'/0/"+i
    root.derivePath(path):获取指定路径的keyPair。
    keyPair.toWIF():获取私钥。
    keyPair.publicKey.toString("hex"):获取公钥。
    const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network}):获取普通比特币地址,p2pkh这是最常见的比特币交易地址类型。可见:在测试网络中的地址是以m或n开头,在正式网络中是以1开头。




作者:黎跃春,孔壹学院、ChainDesk(http://chaindesk.cn)创始人兼CEO,前北京中油瑞飞信息技术有限公司研究院hybrid架构师,通信和信息技术区块链高级授课专家,16年创办国内区块链职业教育领先品牌孔壹学院,18年5月首创基于区块链的多相脑图分割模型学习社区ChainDesk。

助记词的前世今生

攻略chaindd 发表了文章 • 2018-11-22 11:17 • 来自相关话题

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?

用过钱包的用户都知道,在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边不要有任何人。

对于普通用户来说,如果只是一味的向他们强调助记词重要性的结论,而不告诉背后的原因的话,是很难调动起人的底层动力的,很可能过几天就忘了助记词的重要性(小编已经看过不少在群里呼唤自己因为助记词丢失而导致破产的杯具)。

作为猎豹区块链的安全大使,今天小豹就来和大家聊聊助记词和它背后的故事。

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?


多账户需求

我们先拿现实生活的例子打一个比方,通常来说,我们存在银行的钱都会有很多账户,有的账户用来买煎饼果子的零钱账户,有的是用来对公业务的账户,有的是存大额资产的账户。这些账户只需要一个身份证就能够办理,我们用一个身份证可以在网银上登录很多账户,万一银行卡不慎丢失了,也可以通过身份证进行补办。在现实生活中,身份证是无比重要的。

而到了数字货币的世界,道理也是一样的,为了业务的方便,我们通常想要有多个账户,满足不同场景的需求。如果说每次创建账户都在公链上生成一个私钥,那就像每次办理银行卡都要记忆一长串的银行卡号一样的反人性。


降低出错概率

众所周知,在区块链世界里,只要保留了私钥,就能解锁账户,但是通常来说私钥是由64位的很长的字符串组成,如果我们想要创建100个账户,那我们就要记100个私钥,记录和保存成本是非常大的,况且,在记录海量的私钥的过程中,可能还会出现地址和私钥匹配不上的问题,或者记录时粗心大意写错字母的问题,等等,总而言之,出错的概率是很高的,由于数字货币这种“只认私钥不认人”的特点,这些小的错误很可能导致资产无法找回。 


保护隐私

由于区块链公有链的公开的特性,链上的所有转账记录任何人都可以查到,如果同一个账户关联的收入支出太多了,最终是可以摸出一些线索,把你和一些交易给匹配起来的,所以为了隐私考虑,我们的很多隐私业务通常会创建出新的账户来进行交易。

聪明的开发人员为了解决上述问题,提出了Bip39协议。Bip39协议的全称是Bitcoin protocol,最初是由比特币社区的开发者提出,后来被其他的主流区块链项目所认可,继而成为了整个行业共识和规范。

BIP39协议的核心是,由12个单词来确定自己的账户,12个单词会生成很大的种子,从2的256次方选出一个数,由于随机生成的数是很大的,所以完全不用担心生成的12个单词会重复。

12个单词生成的账户是固定的,拿到的12个单词就可以创建无数多的私钥、公钥和地址。

用公式表示他们之间的关系,可写成如下形式:

私钥=算法1(助记词)

公钥=算法2 (私钥)

公钥哈希=算法3 (公钥)

地址=算法4 (公钥哈希)

所以,地址=算法4(算法3(算法2(算法1(助记词))))


当然,算法1、2、3、4都是公开的算法。 

通过密码学的保证,生成的单词顺序和内容是不可能会重复的,通过助记词,我们可以生成任意公链的地址,需要多少的地址就能够生成有多少个地址。

大家可以通过https://iancoleman.io/bip39/生成助记词或者查看助记词对应的私钥、公钥和地址。

并且,BIP39协议几乎是支持所有公链的。






小豹拿小豹私人的Matemask的助记词做了个实验:可以看到,通过我的Matemask的助记词创建的账户地址,和网站生成的地址是一模一样的,就连顺序也是高度一致的。


技术角度理解助记词


从技术上的角度来说,BIP39 是通过12个助记词的单词序列,通过 PBKDF2 与 HMAC-SHA512 函数创建出随机种子作为 BIP32 的种子(通常是16进制的)。

相比于BIP32协议,我们可以看出那一种备份起来更友好

//BIP32 随机数种子090ABCB3A6e1400e9345bC60c78a8BE7

//BIP39 助记词种子

candy maple cake sugar pudding cream honey rich smooth crumble sweet treat 

使用助记词作为种子其实包含2个部分:助记词生成及助记词推导出随机种子。


生成助记词

助记词生成的过程是这样的:先生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词,这个过程图示如下:






助记词推导出种子

这个过程使用密钥拉伸(Key stretching)函数,被用来增强弱密钥的安全性,PBKDF2是常用的密钥拉伸算法中的一种。

PBKDF2基本原理是通过一个为随机函数(例如 HMAC 函数),把助记词明文和盐值作为输入参数,然后重复进行运算最终产生生成一个更长的(512 位)密钥种子。这个种子再构建一个确定性钱包并派生出它的密钥。

密钥拉伸函数需要两个参数:助记词和盐。盐可以提高暴力破解的难度。 盐由常量字符串 "mnemonic" 及一个可选的密码组成,注意使用不同密码,则拉伸函数在使用同一个助记词的情况下会产生一个不同的种子,这个过程图示图下:







助记词推动了区块链的普及


有了助记词之后,任何一笔交易,我们都可以创建一个新的账户,账户里面的钱也可以进行自由转移。

在区块链世界,只需要记住12个简单的助记词,就间接记住了所有区块链上的资产,就如同现实生活中的身份证一样便捷、高效。

有了助记词之后,大大减轻了普通用户的使用成本,从体验上来说对用户是非常友好的,这拉进了区块链与普罗大众的距离,同时也满足了高端用户的隐私问题。可以这么说,BIP39协议大大的推动了区块链的普及。

可能有人会说,“我最讨厌英语啊,让我记12个英语单词,简直就是要了我的命啊!”

对于这部分用户我先不做评价,但是聪明的开发者早就想到了这一点,BIP39协议目前是支持了几大主流语言的,英语、日语、西班牙语、韩语、法语,当然也少不了中文,所以大家完全可以用12个汉字作为助记词。

如果连12个汉字都懒得记的话,那我只能说,施主,区块链世界实在与你无缘,找个好人就嫁了吧。

当然,任何事物都有两面性,助记词虽然带来了许多便利,但是,也诞生了另外的安全隐患,那就是一旦12个单词泄露,或者被黑客获取,助记词是未经加密的私钥,任何人得到了你的助记词,可以不费吹灰之力的夺走你的资产控制权。 
在这里给大家几个建议:

(1)助记词就是你数字世界的命根,打死都不能告诉别人。

(2)一定要多次验证备份的助记词是否正确,一旦抄错一两个字母,对后续找回正确的助记词将带来巨大的困难。

(3)助记词最好是用人脑进行记忆,实在怕忘记,用物理方式进行备份,备份好了之后,务必妥善保管(千万不要用任何可联网设备存储)。
 

(作者:猎豹区块链安全;本文仅代表作者观点,不代表链得得官方立场) 查看全部
electrum.jpg

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?

用过钱包的用户都知道,在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边不要有任何人。

对于普通用户来说,如果只是一味的向他们强调助记词重要性的结论,而不告诉背后的原因的话,是很难调动起人的底层动力的,很可能过几天就忘了助记词的重要性(小编已经看过不少在群里呼唤自己因为助记词丢失而导致破产的杯具)。

作为猎豹区块链的安全大使,今天小豹就来和大家聊聊助记词和它背后的故事。

助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助记词≥私钥,那么,助记词到底是从何而来,助记词到底有什么用呢?


多账户需求

我们先拿现实生活的例子打一个比方,通常来说,我们存在银行的钱都会有很多账户,有的账户用来买煎饼果子的零钱账户,有的是用来对公业务的账户,有的是存大额资产的账户。这些账户只需要一个身份证就能够办理,我们用一个身份证可以在网银上登录很多账户,万一银行卡不慎丢失了,也可以通过身份证进行补办。在现实生活中,身份证是无比重要的。

而到了数字货币的世界,道理也是一样的,为了业务的方便,我们通常想要有多个账户,满足不同场景的需求。如果说每次创建账户都在公链上生成一个私钥,那就像每次办理银行卡都要记忆一长串的银行卡号一样的反人性。


降低出错概率

众所周知,在区块链世界里,只要保留了私钥,就能解锁账户,但是通常来说私钥是由64位的很长的字符串组成,如果我们想要创建100个账户,那我们就要记100个私钥,记录和保存成本是非常大的,况且,在记录海量的私钥的过程中,可能还会出现地址和私钥匹配不上的问题,或者记录时粗心大意写错字母的问题,等等,总而言之,出错的概率是很高的,由于数字货币这种“只认私钥不认人”的特点,这些小的错误很可能导致资产无法找回。 


保护隐私

由于区块链公有链的公开的特性,链上的所有转账记录任何人都可以查到,如果同一个账户关联的收入支出太多了,最终是可以摸出一些线索,把你和一些交易给匹配起来的,所以为了隐私考虑,我们的很多隐私业务通常会创建出新的账户来进行交易。

聪明的开发人员为了解决上述问题,提出了Bip39协议。Bip39协议的全称是Bitcoin protocol,最初是由比特币社区的开发者提出,后来被其他的主流区块链项目所认可,继而成为了整个行业共识和规范。

BIP39协议的核心是,由12个单词来确定自己的账户,12个单词会生成很大的种子,从2的256次方选出一个数,由于随机生成的数是很大的,所以完全不用担心生成的12个单词会重复。

12个单词生成的账户是固定的,拿到的12个单词就可以创建无数多的私钥、公钥和地址。

用公式表示他们之间的关系,可写成如下形式:


私钥=算法1(助记词)

公钥=算法2 (私钥)

公钥哈希=算法3 (公钥)

地址=算法4 (公钥哈希)

所以,地址=算法4(算法3(算法2(算法1(助记词))))



当然,算法1、2、3、4都是公开的算法。 

通过密码学的保证,生成的单词顺序和内容是不可能会重复的,通过助记词,我们可以生成任意公链的地址,需要多少的地址就能够生成有多少个地址。

大家可以通过https://iancoleman.io/bip39/生成助记词或者查看助记词对应的私钥、公钥和地址。

并且,BIP39协议几乎是支持所有公链的。

zhujici1.jpeg


小豹拿小豹私人的Matemask的助记词做了个实验:可以看到,通过我的Matemask的助记词创建的账户地址,和网站生成的地址是一模一样的,就连顺序也是高度一致的。


技术角度理解助记词


从技术上的角度来说,BIP39 是通过12个助记词的单词序列,通过 PBKDF2 与 HMAC-SHA512 函数创建出随机种子作为 BIP32 的种子(通常是16进制的)。

相比于BIP32协议,我们可以看出那一种备份起来更友好

//BIP32 随机数种子090ABCB3A6e1400e9345bC60c78a8BE7

//BIP39 助记词种子

candy maple cake sugar pudding cream honey rich smooth crumble sweet treat 

使用助记词作为种子其实包含2个部分:助记词生成及助记词推导出随机种子。


生成助记词

助记词生成的过程是这样的:先生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词,这个过程图示如下:

zhujici2.jpg


助记词推导出种子

这个过程使用密钥拉伸(Key stretching)函数,被用来增强弱密钥的安全性,PBKDF2是常用的密钥拉伸算法中的一种。

PBKDF2基本原理是通过一个为随机函数(例如 HMAC 函数),把助记词明文和盐值作为输入参数,然后重复进行运算最终产生生成一个更长的(512 位)密钥种子。这个种子再构建一个确定性钱包并派生出它的密钥。

密钥拉伸函数需要两个参数:助记词和盐。盐可以提高暴力破解的难度。 盐由常量字符串 "mnemonic" 及一个可选的密码组成,注意使用不同密码,则拉伸函数在使用同一个助记词的情况下会产生一个不同的种子,这个过程图示图下:

zhujici3.jpg



助记词推动了区块链的普及


有了助记词之后,任何一笔交易,我们都可以创建一个新的账户,账户里面的钱也可以进行自由转移。

在区块链世界,只需要记住12个简单的助记词,就间接记住了所有区块链上的资产,就如同现实生活中的身份证一样便捷、高效。

有了助记词之后,大大减轻了普通用户的使用成本,从体验上来说对用户是非常友好的,这拉进了区块链与普罗大众的距离,同时也满足了高端用户的隐私问题。可以这么说,BIP39协议大大的推动了区块链的普及。

可能有人会说,“我最讨厌英语啊,让我记12个英语单词,简直就是要了我的命啊!”

对于这部分用户我先不做评价,但是聪明的开发者早就想到了这一点,BIP39协议目前是支持了几大主流语言的,英语、日语、西班牙语、韩语、法语,当然也少不了中文,所以大家完全可以用12个汉字作为助记词。

如果连12个汉字都懒得记的话,那我只能说,施主,区块链世界实在与你无缘,找个好人就嫁了吧。

当然,任何事物都有两面性,助记词虽然带来了许多便利,但是,也诞生了另外的安全隐患,那就是一旦12个单词泄露,或者被黑客获取,助记词是未经加密的私钥,任何人得到了你的助记词,可以不费吹灰之力的夺走你的资产控制权。 
在这里给大家几个建议:

(1)助记词就是你数字世界的命根,打死都不能告诉别人。

(2)一定要多次验证备份的助记词是否正确,一旦抄错一两个字母,对后续找回正确的助记词将带来巨大的困难。

(3)助记词最好是用人脑进行记忆,实在怕忘记,用物理方式进行备份,备份好了之后,务必妥善保管(千万不要用任何可联网设备存储)。
 

(作者:猎豹区块链安全;本文仅代表作者观点,不代表链得得官方立场)