如下图所示,右边是EOS Wallet钱包,里面只存放私钥,而且钱包有一个密码,需要输入密码才能解锁钱包,读取私钥。
左边是EOS Account账户,可以把它看成是一个保险箱,里面有EOS Token以及智能合约,而需要转移里面的EOS Token(或者执行智能合约),你需要钱包中对应的私钥来解锁这个保险箱。
eos账户体系跟eth主要不同:
1,密钥的功能解耦:
密钥就等同于支付宝中的一对账号和密码。这个私钥有以下两点作用:
生成公钥,从而生成交易地址(类似于支付二维码)
生成签名,从而签署一笔交易(类似于支付密码)
以太坊中不同的eth地址就代表着一个以太坊账户,地址是账户的标识。它是账户安全最重要的部分,需要妥善保管,如果丢失了私钥也就意味着你的账户丢失了。
EOS 钱包中也保存着密钥,但EOS钱包和其他区块链钱包也存在着一些差异,主要差异在于EOS 中的密钥主要是用来生成签名的,它并不用来生成交易地址。
2,引入了账户系统
EOS 的账号可以是2位到32位的任意字符串,从而方便用户记忆,用户之间的转账是通过账号来进行操作的。EOS团队认为使用公钥作为交易地址对用户来说太不友好了,没人能够记得一长串无意义的字符串,相比而言,人们更习惯以字符串名称作为账号来使用,因此,EOS引入了账号系统,每个账号都对应的密钥,主要用来进行签名处理。
3,账号恢复的手段
30天内的owner权限的密钥,制定的伙伴可以恢复私钥,但是资金随时可以被转移走。
4,账号的注册有成本,需要应用提供方支付。
5,私钥的生成
区块链的公钥生成算法一般都使用了椭圆加密算法,EOS也不例外。EOS中的保存是使用WIF(Wallet Import Format)格式的,这种格式广泛的应用在钱包之间密钥的输入和输出。
6, 权限控制
提供细粒度的高级别的权限控制,可以控制什么人在什么时间做什么事。
总的来说:EOS对于账户的设计与ETH有很大的不同,引入了Account账户, Wallet钱包, 钱包密码, Key公私钥, Permission权限等众多概念。
eos相关的私钥算法:
Eos for java
https://github.com/espritblock/eos4j