查看: 679|回复: 0

[供应] 以太坊钱包系统平台开发

[复制链接]
发表于 2020-9-9 10:21:06 | 显示全部楼层 |阅读模式
其实无论 Geth 节点或 Ethereum Wallet 都可以称作钱包,因为它们都可以存储以太币、都可以发送交易指令等。但这里讲的钱包分类是另外一个维度,基于 Geth 节点上层再次开发出来的移动端 App 钱包。根据私钥存储的位置可分为两类:
去中心化钱包不是本次要讲的重点,这里只给大家简单介绍一下。无论是中心化的钱包或去中心化的钱包,在 App 层面都是很轻量级的,App 内是不会内置一个 Geth 节点,交易的查询或发送都是通过服务器来进行操作,不同点是交易签名的私钥由谁来保管和负责。
去中心化的钱包有个关键词:助记词。可以用下面的表达式来形容助记词的作用:
通过上面的公式可以看出助记词的重要作用,也是去中心钱包功能的一个亮点。当在这类钱包中创建一个账户之后,钱包会根据生成的私钥文件,生成一套助记词,可为英文可为中文,通过助记词可以反向计算出 keystore + 密码。助记词由用户手抄存放在安全的地方,当进行交易时,输入助记词对交易进行签名,发送交易。当助记词丢失,也就意味着失去了私钥,而钱包一般不会保存用户的私钥信息,资产将永久丢失。
去中心化钱包的好处是不用担心平台从中作梗,不用担心平台被黑客攻击而导致资产损失,但要求个人有一定的私钥保存能力。
所谓中心化钱包就是将所有的私钥文件存储在钱包服务商的服务器内,由服务商来保管这些私钥文件,也就是说资产属于你,但私钥不由你保管。这样做的好处是用户根本不用记住私钥,只用记住在平台所开设的账户、登录密码和支付密码即可。即使忘记了密码,还是可以通过平台提供的忘记密码进行找回,当然,这样就不具有去中心化钱包的优点了。 以太坊上的状态变更通常通过交易来实现。如果接收账户是交易的合约,那么EVM(以太坊虚拟机)将运行合约代码,或直到代码运行完毕或直到执行过程耗尽所有gas。以太坊钱包系统软件开发
  每项交易的数据字段规定了细节(如调用哪种方法和输入参数等)。比如,在合约中修改私有状态的变量,你需要通过交易将“private”数值传递给setter方法。考虑到每个交易数据都对所有节点可见,所以如果知道一项交易,就可以轻易读取其中的私有变量。

  存储私有信息的一些方法

  在合约中,你可能会有存储私有变量的需求,但这个问题会很复杂。对于存储私有信息,人们已经进行了大量的模拟尝试,其中有一个方法很有趣,它采用的是提交显示模式(commit reveal pattern)。在这个方法中,用户需要首先提交私有信息的哈希,当所有其他人也提交了他们的私有信息的哈希时,每个参与者再亮出自己的投票,之后可以对此进行验证。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表