什么是区块链钱包? 我们通常所说的区块链钱包其实是一种确定性钱包,也称为去中心化钱包,例如 viewtoken, Mytoken等。 什么是确定性钱包呢?确定性钱包就是所有的密钥都是从一个主密钥派生出来,这个主密钥即为种子(seed)。该类型钱包中所有密钥都相互关联,如果有原始种子,则可以再次生成全部密钥。但是由于种子是一串随机数,不便于记忆,所以我们用算法将种子转化为一串助记词(Mnemonic),方便保存记录,我们只要保存了助记词,就可以保存自己的资产。 如何创建钱包? 区块链钱包即确定性钱包的主要功能是交易。钱包存储着我们的数字货币信息,包括地址和私钥。创建钱包,获取私钥,生成地址,赋予钱包交易功能即可完成一个基本的钱包。 一、Fork钱包源码 Tokenview github (https://github.com/Tokenview/api-demo)?有全面的开源项目供开发者创建钱包。该开源项目包含了各种主流币的地址生成规则,以及离线签名的过程,交易广播及查询等。具体操作步骤如下: 1. 从Tokenview github 页面下载项目代码,并新建项目。 2. 导入下载的 module,该项目依赖了 maven 库。 二、获取私钥(和私钥助记词) 私钥是由随机种子生成的,公钥是将私钥通过算法推导出来的。由于公钥太长,为了简便实用,就出现了“地址”,地址是公钥推导出来的。这些推导过程是单向不可逆的。也就是地址不能推出公钥,公钥不能推出私钥。种子是一串随机数。通过算法,可以将种子转化为助记词。 1. 种子生成 我们知道了确定性钱包是由种子(随机数生成器生成的随机数)是进行单向哈希运算生成的。我们可以选择种子的长度,分别有128,160,192,224,256位的生成方式。种子长度不同对应的助记词的个数也不同,128,160,192,224,256位的生成方式分别对应的助记词个数为12,15,18,21,24。我们通常见到的钱包生成的助记词个数为12个。种子的生成过程如下: long creationTimeSeconds = System.currentTimeMillis() /1000;DeterministicSeed ds =new DeterministicSeed(secureRandom, 128, creationTimeSeconds); 2. 种子转化成助记词 生成的种子可以转换成助记词,转换代码如下: List mnemonicList = ds.getMnemonicCode(); 3. 派生对应的公私钥对 通过确定性钱包,根据不同的币种和地址索引由种子派生出相对应的公私钥对。具体操作如下,这样我们就得到了私钥和助记词,同时也获取到了公钥。 三、获取钱包地址 地址是通过公钥进行了一系列的转换而获得的,其中主要的是进行了多重的哈希运算。根据上面派生出的公钥获取钱包地址。 1. 生成地址 不同公链生成地址的规则不同,由此得到不同链对应的钱包地址。可通过该网站https://iancoleman.io/bip39/验证生成的地址是否正确。 通过以上步骤我们就获取到了钱包的地址。接下来我们还需要一些步骤,使得钱包能够具备转账交易的功能。 四、钱包交易 钱包交易之前,需要获取地址的 Nonce,最佳手续费和余额信息。 1. 获取地址的 Nonce 什么是地址的 Nonce? Nonce是一个非常关键的参数。Nonce在交易中主要目的是为了防止双花,即防止同一地址的一笔钱被花两次。例如在以太坊节点中,要求每笔交易必须有一个Nonce数值。每一个账户从同一个节点发起交易时,这个 Nonce 值从0开始计数,发送一笔交易Nonce 对应加 1。当前面的 Nonce 处理完成之后才会处理后面的 Nonce。 Tokenview API可以帮助用户直接获取到地址的Nonce。可以到Tokenview API节点服务系统获取 Tokenview APIKEY,便可通过api接口获取 ETH 地址的 Nonce。 以获取以太坊 ETH 地址的 Nonce 为例:https://services.tokenview.com/vipapi/onchainwallet/eth?apikey={YOUR_APIKEY} 2. 获取最佳手续费 在区块链数字货币交易时,交易者需要付一笔手续费给矿工,请矿工帮忙打包交易。当手续费不足时会导致交易失败,手续费过低会导致交易长时间处于未确认状态。 如何获取最佳交易手续费呢?Tokenview API 同时提供了获取最佳手续费的接口。https://services.tokenview.com/vipapi/pendingstat/{币简称小写}?apikey={apikey}。 3. 获取地址余额 钱包转账交易前,需要查看该地址是否有余额。若余额不足,也无法转账。获取地址余额API:https://services.tokenview.com/vipapi/addr/b/{公链简称小写}/{地址}?apikey={apikey} 五、离线签名并上链 1月21日,菲律宾大马尼拉地区塔吉格市严格落实“不接种疫苗,不许乘公交”政策,一名被阻止上车的女子(中)对着警察和媒体记者大发脾气,大言不惭道“不接种疫苗是我的权利,你们凭什么要查疫苗卡?我就不想接种,这是我的意愿!我没有疫苗卡!我要去买饭,凭什么不让我坐车?” 1. 离线签名 离线签名就是在不联网的情况进行签名,随后将签名后的原始数据放在网络上进行广播,从而达到交易的目的。最主要的原因在于保护用户的私钥安全。 推荐使用 Tokenview SDK 提供的签名方法进行签名。具体操作步骤如下: 2. 广播交易 我们获取到对应签完名的交易数据,最后广播交易到链上。这个步骤可以通过 Tokenview api 来实现 。https://services.tokenview.com/vipapi/onchainwallet/{币种简称小写}?apikey={apikey} 到此我们就完成了整个去中心化钱包的开发过程,一个简单的钱包就可以生成了。 Tokenview API 具备基础的节点数据查询功能之外,还提供离线签名和交易上链的数据接口,极大减少了钱包的开发时间。而且邮箱就可以免费注册使用,是进行区块链应用开发的首选平台! —-数字货币钱包 |
专注于区块链支付的瑞波公司(Ripple)长期以来致力跟各国政府、国际银行合作,共同简化跨境支付流程,如今泰达币钱包,这家备受争议的新创不再着眼于此,而是打算大...
据The Block 8月13日报道泰达币钱包,德国联邦财政部8月11日发布了有关引入电子证券(eWpG)的草案,其中包括一项数字化证券的区块链解决方案。 (来...
最明显的便是滥用“元宇宙”和“NFT”标签。红遍全球的“元宇宙”和“NFT”泰达币钱包,其最大的的引诱及其蹭热点主力资金便是其金融业属性,一个个疯涨千余、数十万...
上海市靖予霖法律事务所刘笛刑事辩护律师也对新闻记者表明,现阶段在我国的监管部门主要是对“虚拟货币”挖币及买卖个人行为开展严厉查处,NFT则大量好像区块链应用的运...
4月17日,“超算·融合,2021全球区块链算力大会”在四川成都正式开幕。本届大会由巴比特、链节点、币印联合主办,吴说区块链协办,算力360总冠名。 Balle...