前沿资讯网>区块链开发>正文

区块链技术开发原理,区块链钱包开发架构原理介绍

摘要
区块链技术开发原理,区块链钱包开发架构原理介绍,区块链钱包开发后会生成一个以 0x 开头的 42 位字符串,这个字符串就是区块链钱包地址,一个钱包对应一个钱包地址,

    区块链技术开发原理,区块链钱包开发架构原理介绍,区块链钱包开发后会生成一个以 0x 开头的 42 位字符串,这个字符串就是区块链钱包地址,一个钱包对应一个钱包地址,地址唯一且不能修改,也就是说一个钱包中所有代币的转账收款地址都是一样的。


区块链技术,区块链开发,区块链钱包开发,区块链钱包架构


    例如,一个钱包中 ETH 的转账收款地址和 EOS 的转账收款地址是一样。这一点和数字货币交易平台上的不一样,平台上不同代币的转账收款地址一般都不同,因此,转币到数字货币交易平台前一定要确认好地址。


    1.用途区块链钱包地址可以用于接收别人转币,也可以作为转币的凭证。二、密码密码=银行卡密码1.设定区块链钱包开发时,需要设定一个密码,这个密码要求不少于 8 个字符,为了安全,密码最好设置复杂一点。密码可以进行修改或重置,修改密码有两种方法,一是直接修改密码,这需要输入原密码。如果原密码忘记了,用助记词或私钥导入钱包,同时设置新密码。用途密码的用途有两个,一是转账时候的支付密码,二是用 keystore 导入区块链钱包时的登录密码。


    2.特征在现实世界中,一个银行卡只对应一个密码,对密码修改后,原密码就失去作用。但是在云豹开发的区块链钱包中,就不一样了,一个钱包在不同手机上可以用不同的密码,彼此相互独立,互不影响。例如,在 A 手机钱包中设置了一个密码,在 B 手机导入这个钱包并设置一个新密码,并不影响 A 手机钱包的密码使用。三、私钥私钥=银行卡号+银行卡密码1.导出区块链钱包开发后,输入密码可以导出私钥,这个私钥属于明文私钥,由 64 位字符串组成,一个钱包只有一个私钥且不能修改。


    3.用途在导入区块链钱包中,输入私钥并设置一个密码(不用输入原密码),就能进入钱包并拥有这个区块链钱包的掌控权,就可以把钱包中的代币转移走。四、助记词助记词=银行卡号+银行卡密码助记词=私钥1.备份区块链钱包开发后,会出现一个备份助记词功能,选择备份助记词,输入密码,会出现 12 个单词,每个单词之间有一个空格,这个就是助记词,一个钱包只有一个助记词且不能修改。


    4.用途助记词是私钥的另一种表现形式,具有和私钥同样的功能,在导入区块链钱包中,输入助记词并设置一个密码(不用输入原密码),就能进入区块链钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。3.特征助记词只能备份一次,备份后,在区块链钱包中再也不会显示,因此在备份时一定要抄写下来。五、keystorekeystore+密码=银行卡号+银行卡密码Keystore ≠ 银行卡号keystore=加密私钥keystore+密码=私钥1.备份区块链钱包开发里有一个备份 keystore 功能,选择备份 keystore,输入密码,会出现一大段字符,这个就是 keystore。


    5.用途在导入区块链钱包中,选择官方钱包,输入 keystore 和密码,就能进入钱包。需要说明的是,这个密码是本手机原来设置的本钱包密码, 这一点和用私钥或助记词导入钱包不一样,用私钥或助记词导入钱包,不需要知道原密码,直接重置密码。


    6.特征keystore 属于加密私钥,和区块链钱包密码有很大关联,钱包密码修改后,keystore 也就相应变化,在用 keystore 导入钱包时,需要输入密码,这个密码是备份 keystore 时的钱包密码,与后来密码的修改无关。六、结语在现实世界中,如果你的银行卡丢了,密码忘了,可以去银行帮你找回,你的钱还是你的钱,丢不了,这是中心化的优势。但是在区块链钱包世界中,除了你自己,没有人存储你的钱包信息,钱包信息要是丢了,没人能够帮你找回,钱包公司也不能。因此,只要你保护好钱包信息,钱包里面的财产只属于你自己,谁也抢不走,这是去中心化的优势,这是小编简单的讲解的区块链钱包的架构。


    区块链钱包开发原理!!


    区块链钱包实现的技术原理用一句话表示就是:钱包助记词生成了种子(Seed),种子(Seed)生成了私钥,私钥推导出公钥,公钥节选部分成了钱包地址。同时钱包提供了keystore,它也是私钥加密后的文件,可以配合正常的密码使用,便捷了用户的钱包使用。


    区块链的诞生,不仅仅是通过代码和智能合约来将生产组织进一步扁平化,从而达到优化中间过程、精简中介的作用,更是产生了一个新的经济模式,创建了一种新的生产关系,这种理念上的变革远远大于技术本身带来的影响,它最让人着迷的地方莫过于利用人性的特点,建立的一套自治的经济激励机制,并诞生了一个新型的价值载体cryptocurrency(笔者习惯区分Coin和Token,可参见文章区块链基础概念 - 理解COIN和TOKEN)。Cryptocurrency显然不同于传统的货币,它是通过一定的加密算法计算出来的数字货币,也就是说电子化会是它的本质属性,这样它的存储问题就会是一个热门的研究领域,具体来讲就是我们常说的区块链钱包。


    当然,这里需要强调的是,区块链钱包并不是存储着大家的cryptocurrency,它是在链上存储的,钱包主要存储的是私钥,它是用户对链上cryptocurrency的所有权凭证,这是一个不记名、不可挂失的凭证。从开发者的角度看,钱包的作用就是管理用户的私钥、通过私钥签名交易管理用户在区块链上的数字货币Cryptocurrency Address + Private key = Cryptocurrency Wallet。


    以上属于对钱包相对传统的一个定义,笔者最近结识到AlphaWallet的联合创始人&CEO Victor Zhang对钱包的理解非常的独树一帜和有见解:区块链钱包,其实更好叫做区块链客户端,其中“钱”只是其中一个应用场景。当然他们这个团队主要focus在带有智能合约的公链钱包,目前主要就是ETH了,以其作为基础衍生出众多应用场景供使用,而不是传统理解的钱包概念了。


    笔者以前一直觉得在未解决Cryptocurrency价值波动前,钱包的用户大规模朝潮还很久远,不能与交易所抗衡,但终究有一天王位会转移给钱包。在听了Victor的见解之后,笔者突然觉得视野更加开阔。


    【区块链钱包基本类型和特点】区块链钱包的分类和描述依照所涉及的概念不同会有所区别,从其本质特点上来讲,可用下图来表示:区块链钱包本质特点划分区块链钱包和区块链一样,也可以分为去onchain钱包和offchain钱包(如今很多人习惯称之为中心化钱包和去中心化钱包,虽然方便无基础的人形象理解,但是整个概念和精髓却会被误解),它们本质区别在于钱包私钥的存储方式和地点,私钥存储在用户手中,钱包商无获取途径,用户可以实时使用链上资产的称之为onchain钱包;而私钥存储在钱包商或者交易所手中,用户不能直接使用链上资产而需要通过第三方才能动的称之为offchain钱包。


    具体来讲:1.onchain钱包——全节点钱包私钥存储在用户手中,同时全节点钱包还保存了所有区块的数据,这样就可以在本地直接验证交易数据的有效性。大部分全节点钱包也具备挖矿功能,它自身也是区块链网络中的一个节点,如BTC的Bitcoin Core;ETH的Mist,Parity等。优点:一般属于官方为区块链设计的钱包,直接onchain,不需要经过第三方发起交易,保证了基本安全性;由于前节点下载到本地,所以会更快验证交易信息。


    缺点:也因为下载了所有节点,所以占用很多硬盘空间(Mist现在达到了80G,笔者下了好几天也失败了;Bitcoin Core据说是150G);每次使用前需要同步数据;新手的使用体验不够好;不支持多种数字资产;往往都是电脑版本。2.onchain钱包——SPV轻钱包私钥存储在用户手中,但不保存所有区块的数据,只保存跟自己相关的数据,所以体积很小,可以运行在电脑,手机,网页等地方。如Blockchain, imtoken等。优点:用户体验很好,尤其对于新手很多轻钱包都支持多种数字资产体积小,不占空间缺点:交易验证会稍微慢一点3.offchain钱包——通过中心服务器访问区块链网络的钱包该类型钱包的划分有一定争议,主要在于钱包数据传输的方式是可以扩展选择区块链节点还是必须通过钱包服务方的服务器,如果是后者就存在私钥存储在中心化服务器的风险,目前有很多区块链钱包体验都很不错,甚至很流畅,由于不开源无法排除该类风险。


    笔者推断比特购钱包应该属于此类。优点:同SPV轻钱包用户体验会比onchain钱包好缺点:存在安全风险(虽然真正致力做区块链的钱包企业哪怕即使通过自己的服务器将交易信息发送到节点上,即不会作恶,但是不能排除可能有作恶的人可以使用这种方式获得用户密钥)会比onchain钱包交易验证更慢,但是用户可能体会不到。4.offchain钱包——第三方托管钱包完全依赖运行这个钱包的公司和服务器,存在某个组织或者个体的钱包地址里,中心化交易所里的Cryptocurrency就是在offchain钱包(交易所)里保存的。优点:私钥忘记了可以找回平台会把私钥安全做的不错一般以企业作为信用背书缺点:你的私钥控制在平台手上,平台“做坏事”你是无法阻止的,即作恶风险平台关闭后你的币就没有了,即跑路风险当然,根据不同的表现形式,我们还可以有不同的划分:


    这种划分理解就比较简单了,电脑单机版的钱包,如前面提到的全节点钱包基本以此类为主;手机钱包和在线钱包以SPV轻钱包为主,前者以手机APP为主要表现形式,后者是网页插件,如MyEtherWallet, metaMask等。


    硬件钱包是为了增强安全性,通过专门设计的安全硬件来离线保存储私钥,隔绝黑客入侵。所以,电脑钱包、手机钱包、在线钱包一般体现的都是实时可用性,它们更多被称之为热钱包,即实时在线,这样就存在被黑客攻击的风险;于是硬件钱包作为常年离线保存,更多称之为冷钱包,即离线保存。


    但是硬件钱包往往需要购置单独的硬件设备,所以在成本上会付出更多,同时使用的便利性也不如热钱包,因为实时在线可用。当然也有使用优盘来自己制作硬件钱包的,一方面制作过程比较繁琐,同时每次转账支出时会比较繁琐,适用于比较有基础的人士。优点:安全,私钥不触网,黑客无法通网络攻击。另外设备都有PIN码保护,即使在物理环境中设备被盗走,也无法打开你的钱包;易备份,设备在初始化配置的时候会生成助记词(一般为12个或者24个单词),而助记词就是你私钥的备份,当你的设备丢失或者损坏以后,可以够买新的设备然后通过助记词来恢复私钥;多币种同时管理,现在绝大多数的硬件钱包,不仅仅可以管理比特币,像莱特币、以太坊、比特现金等数字货币都可以同时管理。缺点:不免费,你要为硬件付费;无法独立使用,硬件钱包都是隔绝网络的,所以需要配合联网的客户端(Chrome 插件、桌面客户端、手机客户端等)来完成收币和发币。不过为了安全牺牲一些方便些也是值得的,毕竟一个比特币8000刀,丢半个都疼。


    【区块链钱包实现技术原理】理解区块链钱包实现技术原理,先要理解:


区块链技术,区块链开发,区块链钱包开发,区块链钱包架构11.jpg


    1.私钥、公钥和地址产生的方法,这是区块链的相关知识;2.接着理解如何使用API进行远程调用等基础概念,这是传统IT行业相关知识;3.最后就是钱包设计相关的助记词, keystore和密码的概念,它和区块链公钥、私钥和地址产生的方式思路一样,但是整个过程属于区块链钱包设计过程,不能与区块链的相关知识混淆。一、私钥、公钥和地址产生的方式(以BTC为例):


    1.比特币私钥其实是使用SHA-256生成的32字节(256位)的随机数,有效私钥的范围则取决于比特币使用的secp256k1 椭圆曲线数字签名标准。


    2.在私钥的前面加上版本号,后面添加压缩标志和附加校验码,(所谓附加校验码,就是对私钥经过2次SHA-256运算,取两次哈希结果的前四字节),然后再对其进行base58编码,就可以得到我们常见的WIF(Wallet import Format)格式的私钥。


    3.私钥经过椭圆曲线乘法运算,可以得到公钥。公钥是椭圆曲线上的点,并具有x和y坐标。公钥有两种形式:压缩的与非压缩的。早期比特币均使用非压缩公钥,现在大部分客户端默认使用压缩公钥。从私钥推导出公钥、再从公钥推导出公钥哈希都是单向的,也就是采用不可逆算法。椭圆曲线算法4.公钥产生后,将公钥通过SHA256哈希算法处理得到32字节的哈希值;后对得到的哈希值通过RIPEMD-160算法来得到20字节的哈希值 ——Hash1605.把版本号[2]+Hash160组成的21字节数组进行双次SHA256哈希运算,得到的哈希值的头4个字节作为校验和,放置21字节数组的末尾。6.对组成25位数组进行base58编码,最后得到地址。下图以非压缩格式的65字节公钥示意上述过程:


区块链技术,区块链开发,区块链钱包开发,区块链钱包架构22.jpg


    【免责声明】以上文章是今日小编为您介绍区块链技术开发的个人观点,请读者仅作参考,投资有风险,入市须谨慎!本站不拥有所有权,不承担相关法律责任。如需了解“区块链钱包开发架构”请关注:【区块链开发 http://www.whw999.com/develop/】如若转载,请注明。


    


区块链开发(五)区块链ICO:什么是区块链ICO

区块链开发(五)区块链ICO:什么是区块链ICO,由于区块链不可篡改的特性,在众多区块链组织和公司的共同努力下,互联网将逐步从中心化的信任进化到由算法、

12月12日 18:14

区块链钱包开发,区块链钱包是什么?关于钱包的使用指南

区块链钱包开发,区块链钱包是什么?关于钱包的使用指南,而不论你是价值投资还是投机,只要入场,就一定离不开钱包。

12月11日 16:03

三、区块链技术开发,区块链开发第一个智能合约

三、区块链技术开发,区块链开发第一个智能合约,一、编写智能合约代码HelloWorld.go,go语言实现,代码很简单,每个合约包含两个方法,Init、Invoke。

12月10日 10:48

区块链钱包开发:区块链钱包设计服务流程软件程序

区块链钱包开发:区块链钱包设计服务流程软件程序,账户拥有者有一个私人密钥(秘密号码)通往他们的钱包。 此密钥是访问比特币地址的唯一途径,因此也是接收或发送信用的唯一方式。

12月09日 10:48

区块链技术开发我们的优势_区块链未来展望有哪些

区块链技术开发我们的优势_区块链未来展望有哪些,前沿资讯网打造顶尖的区块链应用开发公司,为客户量身打造区块链项目的应用,我们对于区块链游戏开发,

12月09日 10:30