账户
账户类型
孚衍系统的账户有分类,长度24字符。
第一个字符用于标示地址的类型。
- 0x01为默认的账户
- 0x02为代理账户,当账户需要频繁签名时,可以通过代理模式,指定签名代理人,避免自己的账户因过度签名影响账户安全。
- 0xff为公共账户,它是公有合约的账户,只有对应合约才能操作该账户。
- 其他的值将用于后续的扩展需求
每个公有合约都拥有自己的账户,私有合约的账户就是合约创建者,智能合约能够操作创建者的账户。
公共智能合约的账户为公共账户,账户只能由对应合约操作。
代理账户
如果一个账户,如大公司的对外账户,它不适合经常修改账户地址,但又必须经常签名,过多的签名将严重影响账户的安全性。通过代理签名,那么它每个月只需要授权一次(签名一次),其他都是代理账户进行签名。即使代理账户因为过度签名,导致安全问题,影响也仅仅是被授权的那一个月,后续该代理账户将失效。大大减少主账户的签名次数,从而降低被破解的风险。
代理账户的签名有2部分,第一部分为授权签名,第二部分为信息签名。签名信息的长度为普通签名的2倍。
授权签名是有时间限制的,授权有效期为一个月。每个签名信息都携带时间戳,通过时间戳,算出授权范围,再根据签名,得到公钥(错误的时间将得到错误的公钥),通过比较公钥是否一致,就能够知道签名是否有效。
管理员角色
通过DPOS选举出来的账户,将拥有管理员的权限,管理员合约可以对部分系统参数微调。调整参数,需要花费代币,但没有收益,属于奉献者。
可以调整的参数有:区块大小限制,区块间隔时间,预留参数等。
管理员可以举报非法区块:默认区块锁定的相邻链区块都是链上区块,如果锁定的区块不在链上,说明是非法区块。非法区块的生产者将受到惩罚。