最初的一版PoS由Peercoin设计实现。用户要产出block必须满足以下条件:
hash(stake_modifier, current_time, UTXO) < coin(UTXO) * age(UTXO) * difficulty.
具体解释如下:
1)用户在每一秒时间(current_time),遍历自己所有的UTXO,代入上述公式中,看是否能满足不等式条件;如果满足,就把相应的UTXO记录在block中,并发布block;
2)stake_modifier是对前一个block中部分字段hash后的值,加入这一项是为了防止用户提前预知自己何时有权挖矿;
3)difficulty会根据近期的block产出时间动态调整,保证block产出时间间隔稳定;
4)由于每秒只需要完成和自己UTXO数量相等的hash计算,所以需要的算力较低;
5)从不等式可以看出,持有的UTXO越多、UTXO中token数额越大(coin(UTXO))、UTXO持有时间越长(age(UTXO),或称之为币龄),不等式越容易成立,越容易进行挖矿。