前一篇我们对区块链的账户体系有了简单的理解,下面我们详细了解下账户保存与流转过程
我们都知道在银行开户,直接拿身份证,去银行柜台,或者在线上开一个账户就可以了,银行给我们一个账号,然后我们就可以针对这个账号对存取钱,或者开证明。那在区块链中的账户是怎么开的呢?

上一篇中我们了解了账户是由私钥生成的,私钥是任何人都可以根据算法随机生成的,我们用SHA256生成一个256位的数字就可以了,这样我们就有了私钥,前面我们讲到,私钥可以产生地址,这样我们就相当于有了银行账号,不同的是我们的这个地址在区块链网络上是没有登记的(没有登记也是可以查询的欧),那么如何才能把你的账号登记在区块链网络上呢,只需要成为一个有用的地址,如:有了余额、成为合约地址。那么你的地址就在区块链上公开登记了,其它人都可以查询你的地址信息。

通过上面我们知道了私钥生成的原理,下面我们来看一个私钥 6954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a 这么长的一个数字,是不是很不方便记忆,机器好记忆,人记起来可就麻烦了,所以就有了便于记忆的私钥生成保存方案

助记词:它是这个样子的

hunt reason couple jaguar umbrella absent jungle warrior renew photo achieve bleak crack brisk gift


翻 灾 须 玉 郎 了 殖 霍 芽 泡 个 展 连 将 银


ずさん にやり きこう せなか めざす あきる せんく りえき ぬすむ てんすう あずき うまれる きさま えほうまき しいく

看到上面的示例,想起了啥,欧美大片中激活智能机器人的时候说的一个个单词是什么鬼,明白了吧,它就是助记词,用于生成私钥,在一定意义上可以说助记词等于私钥。助记词由12-24个单词组成,助记词可以生成私钥,它一共有2048个,也就是从这2048个汉字或者英文单词甚至韩语、日语等等,随你喜欢,挑选你喜欢的语言12、15、18、21、24个都可以,把它背过,记录在小本本上都可以,当需要的时候,我们就可以通过输入它去恢复我们的私钥,这样,我们更方便记忆。

现在又有人说了,哎,助记词12-24个单词如果每次我操作都要输入一下,也是很麻烦,于是以太坊网络又有了一种方案:

Keystroe :它是这个样子的
{
    "version":3,
    "id":"b7467fcb-3c8b-41be-bccf-73d43a08c1b7",
    "address":"540f18196da5a533fa36577a81de55f0a2f4e751",
    "Crypto":{
        "ciphertext":"78ed11b8b6bf29b00f52b42b8542df0e4a6ac078e626af7edcf885c3b68154a4",
        "cipherparams":{
            "iv":"4516579601d96695fe30ace985a9066f"
        },
        "cipher":"aes-128-ctr",
        "kdf":"scrypt",
        "kdfparams":{
            "dklen":32,
            "salt":"6276cfda7d40872352c801db5871e5a3368a8d0994cea39ed936760db78d1cdc",
            "n":1024,
            "r":8,
            "p":1
        },
        "mac":"d889a5dc609c3f312a41394cc47640676d2612501a6f8c837ed55598158336db"
    }
}

相对于上面的助记词便于记忆,是不是一上来就蒙了,这是什么鬼,首先我们先说下,这个东西,不需要记忆,不用害怕了吧,它存在一个地方就可以了。 Keystore是加密的私钥,需要用一串密码来解密,而这个密码,就是我们熟知的密码了,可以是 123456,也可以是@#¥¥%%,怎么设置就随你了,这样,在你用你的私钥的时候,你就可以直接用keystore加密码去恢复私钥来操作区块链网络了。是不是更简单了呢。

两种私钥的方便存储方案:方便人的记忆和使用。
下面我们再简单串一下账户的生成使用过程:
  1. 首先我们要有私钥:可以是助记词生成。为了方便管理私钥还可以用keystore +密码验证。
  2. 要用私钥导出公钥和地址备用
  3. 要想操作我们的账户,需要先来构造我们的交易,可以是提取,持行合约等等。
  4. 对我们的交易用私钥签名:把交易和私钥算出一个hash
  5. 把我们准备好的数据交易、签名、公钥,打包成一个数据结构并编码成一个hash
  6. 把hash发送给临近的区块链节点。

好了,执行完上面的步骤我们借用一句经典的电影台词,“让子弹飞一会”,过一会(每个区块链时间都不同,比特币要半个小时,以太坊要一分钟,但是现有的联盟链比方泰岳联盟链确认只需要1秒,这是因为它们的共识机制不同造成。后面我们讲到共识的时候再说这一块)就会看到你要的结果了。你就上链了,同时你的操作,所有的节点(或者证书节点)就都可以查到了。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐