温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

以太坊中的iban是什么

发布时间:2021-12-24 17:10:56 来源:亿速云 阅读:361 作者:iii 栏目:互联网科技

这篇文章主要介绍“以太坊中的iban是什么”,在日常操作中,相信很多人在以太坊中的iban是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”以太坊中的iban是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

简单地说,以太坊中的iban账号是以太坊为了和传统的银行系统对接而引入的概念, web3.js中提供了以太坊地址和iban地址之间的转换方法。

iban:国际银行账号

iban这个概念源于传统的银行系统,其英文全称为International Bank Account Number, 即国际银行帐号。iban的作用是为全球任意一家银行中的任意一个账户 生成一个全球唯一的账号,以便进行跨行交易。一个iban账号看起来像这样:

XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS

iban地址最多可以包含34个字母和数字,其中的字母大小写不敏感。在iban 中包含以下信息:

  • 国别码,用来标识国家,遵循ISO3166-1 alpha-2标准

  • 错误识别码,用来对地址进行校验,采用mod-97-10校验和协议,即ISO/IEC 7064:2003标准

  • 基本银行账号,即BBAN(Basic Bank Account Number),用来标识银行机构、网点及 客户在该机构内的账号,这三部分信息的编码方案依赖于前面提及的国别码

如果你希望马上开始学习以太坊DApp开发,可以访问我们的在线互动教程:

  • 以太坊智能合约与应用开发入门

  • 以太坊去中心化电商DApp实战开发

以太坊iban:新的国别码和BBAN编码方案

以太坊引入了一个新的IBAN国别码:XE,其中E代表Ethereum,X代表非法币(non-jurisdictional currencies)。同时,以太坊提出了三种BBAN的编码格式:direct、basic和indirect。

direct编码方案中的BBAN为30个字母/数字,只有一个字段:账户编号。例如,以太坊 地址00c5496aee77c1ba1f0854206a26dda82a81d6d8转换为direct方案的BBAN账号,就 得到XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS

可以使用web3.js中的web3.eth.Iban.fromEthereumAddress() 方法来执行这一转换:

let myiban = web3.eth.Iban.fromEthereumAddress('0x00c5496aee77c1ba1f0854206a26dda82a81d6d8')
console.log(myiban) //XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS

basic编码方案与direct方案的唯一区别在于,其BBAN长度为31个字母/数字,因此该方案 不兼容IBAN。

indrect编码方案中的BBAN长度为16个字母/数字,包含三个字段:

  • 资产编号,由3个字母/数字组成

  • 机构编号,由4个字母/数字组成

  • 机构内客户编号,由9个字母/数字组成

例如,一个采用indrect编码方案的以太坊iban账号,看起来是这样:

XE81ETHXREGGAVOFYORK

前面的XE表示国别码,81为校验和,后面的16个字符就是indrect编码的BBAN,其中:

  • ETH:在本例中,表示客户账户内的资产编号。目前ETH是唯一有效的资产编号

  • XREG:机构编号,XREG表示以太坊基本注册合约

  • GAVOFYORK:机构内客户的编号

iban账号与以太坊地址的转换

如前所述,使用web3.eth.Iban.fromEthereumAddress()方法,可以将一个以太坊地址 转换为direct编码方案的iban账号。与之对应的,可以使用web3.eth.Iban.toAddress方法, 将一个采用direct编码方案的iban账号,转换回以太坊地址。例如:

let myaddr = web3.eth.Iban.toAddress("XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS")
console.log(myaddr) //0x00c5496aEe77C1bA1f0854206A26DdA82a81D6D8

检查iban账号的有效性

iban账号中的校验和用来帮助核验一个给定字符串是否为有效的iban账号。可以使用 web3.js中的web3.eth.Iban.isValid() 来进行执行校验。例如:

let isValid = web3.eth.Iban.isValid("XE81ETHXREGGAVOFYORK")
console.log(isValid) // true
isValid = web3.eth.Iban.isValid("XE82ETHXREGGAVOFYORK")
console.log(isValid) // false,因为校验和无效

到此,关于“以太坊中的iban是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI