Penta公链(PNT)账户体系介绍(一)

前言:账户体系是区块链运行的一个重要组成部分,通过该体系实现了账户之间价值和信息的传递的状态转换。而在一些传统的区块链账户中,用户无法自己定义账户名称,只能用一堆很难记忆的字符串做地址和私钥,在可用性上有很大的欠缺。

而Penta公链(PNT)团队正是看到这些痛点不足,设计出了具有更高安全性和便利性的账户体系。

Penta公链(PNT)账户体系介绍(一)

△英文版已经于Penta的Medium账号进行发布(搜索Penta GF)

账户结构

Penta独创采用了DSC共识算法,因而其账户设计实现上与传统区块链账户结构有很大不同。账户分为两种类型:Penta用户账户和Penta合约账户。Penta从设计之初就将两者明确加以区分,减少了用户诸如错误转账等误操作的风险。

Penta用户账户☟

Penta用户账户即供人类用户使用的账户,包括记账用户和普通用户。用户账户中设计了四个KEY:安全KEY、交易KEY、共识KEY和种子KEY,各种KEY的具体功能如下:

安全KEY:用于设置交易、共识以及种子KEY,每次安全KEY被使用后需要更换

交易KEY:用于交易签名

记账KEY:用于共识记账过程中的签名

种子KEY:用于区块提议过程中种子生成过程的相关签名

对于Penta网络中不参与共识记账的普通用户,一般只需要用到其中的安全KEY和交易KEY。而对于参与DSC共识的记账节点,另外设置的记账KEY和种子KEY将置于离线环境中, 充分保证了记账节点的安全性。

由于Penta账户设置了4种KEY,如果给每个KEY都设置一个口令进行加密保护,肯定会导致账户使用起来异常繁琐和不便。所以Penta在设计上给账户设置了一个账户口令。用户仅需要通过设置的账户口令就可以实现对账户的全局控制。

但出于更高安全性的考虑,对于核心的安全KEY,增设了一个安全口令。使用安全KEY前必须同时提供账户口令和安全口令,如此一来用双保险的方式保障了用户的账户安全。

Penta合约账户☟

Penta合约账户通过智能合约状态字段来存储智能合约状态的相关信息,另外也定义了手续费的收费模式。

第一种由交易发起人付费,比如PNT转账、投票、智能合约创建、智能合约调用、存储资源消费、DApp发布、DApp交易调用等等,这些交易都可以由发起人付费。第二种由交易对手方来付费,智能合约调用、DApp交易可以由智能合约和DApp支付PNT,智能合约或DApp拥有者则可以向用户免费或收取一定量的其他token。

Penta公链(PNT)账户体系介绍(一)

账户地址生成方案

本节主要介绍Penta的账户地址设计方案。Penta用户使用21字节二进制地址+4字节校验位后总长度为25字节二进制数, 经过Base58编码后的字符串作为公开地址。

Penta账户非压缩公钥生成地址的过程如下:

使用椭圆曲线加密算法计算随机私钥所对应的非压缩公钥,长度为65字节。其中第一个字节为 0x04表示非压缩状态。

计算公钥的 SHA3-256 哈希值,生成32字节二进制的值,取结果的前20个字节,并在前面添加一个字节作为标识位,该标识位用以区分诸如主网、测试网不同网络,方便使用切换,比如主网Chain MainID:0x37。

对(2)中的前20个字节再做一次SHA3-256运算,取结果的前4个字节。

将(2)中21个字节的结果和(3)中4个字节结果进行组合,生成25字节的二进制数,对该结果进行Base58编码,长度为34或35个字符。生成的字符串即为公开地址。

Penta公链(PNT)账户体系介绍(一)

由上图可知,在地址生成过程中,Penta没有沿用传统区块链项目使用的较为古老的SHA-256算法,而是使用了新一代、硬件应用速度更快的SHA3-256算法,当然这都是基于充分的可靠性和安全性论证之后作出的选择。

『结语』

本文主要介绍了Penta账户体系中的账户结构以及地址方案。在上述设计中,Penta团队不但考虑了对于DSC共识角色和流程所对应的账户改进,更多着眼于对于账户本身安全性和可用性的优化和创新

。在后续的文章中,我们还会继续对账户体系中的账户、账户锁定和解锁机制以及账户创建流程等内容进行介绍。


分享到:


相關文章: