本文翻译自 Lisk FAQ - Network。
https://github.com/LiskHQ/lisk
Lisk 是用 JavaScript 撰写并使用 NodeJS。
JavaScript 是一个易用、简洁且知名的程式语言且有巨大的开发社群、好用的工具和快速的开发周期。它强化了 Lisk 可以简单上手和迅速开发应用的目标。
委派的权益证明(Delegated Proof of Stake (DPOS))。
任何人都可以在 Lisk 网路中注册帐号,成为 delegate account(或简单来说 delegate),仅需为帐户选择一个使用者名称。delegate 可以从任何 LSK 持有者中取得投票。简单来说,1 LSK 等同 1 票,而每个 LSK 持有者仅可将帐户中所有的余额投给一个 delegate。网路中前 101 个拥有做多得票数的 delegate 会开始产生新区块以确保网路的安全。101 个之外的其他 delegate 会待命。投票过程是动态的所以 delegate 的排名是可变动的。
一个 delegate round 是一个周期,必须经过 101 个 delegate 每个均产生一个新的区块。每一轮均产生固定数量的区块,而每ㄧ轮结束后会更新 delegate 的排序(根据投票数)。
每 10 秒一个区块,每个 delegate round 等于 1010 秒或大约 17 分钟。如果一个活跃的 delegate 下线了,它就不会产生新的区块,而由此轮的下一个 delegate 负责,所以产生这个 block 需要 20 秒。有就是说,越多活跃的 delegate 下线,每一轮就需要越久。
活跃的 delegate 透过维护网路安全性来取得报酬。前 101 名的 delegate 取得固定的区块报酬和不固定的交易手续费。
最初的 ICO 时共发行 100,000,000 LSK。自从 5/24 网路上线,101 个 delegate 开始确保网路安全并从中取得区块报酬。当每个区块被产生,5 个新的 LSK 被发行。每 3,000,000 个区块(约 1 年),区块报酬就会降低 1 LSK,直到降低至每区块 1 LSK 并持续到永远。区块报酬被平均的分给 101 个 delegate。在此之外,delegate 根据各自产生的区块中的交易收取手续费。透过实作这个机制,Lisk 创造了一个动力来运行 delegate 并确保网路安全,这是共识演算法很重要的一部分。
并没有发行量上限。通膨率会随着时间降低,例如根据逐年的区块报酬调降会在第 15 年降低至 1.74%。
手续费如下:
| Type | Fee |
|---|---|
| Regular transactions | 0.1 LSK |
| Delegate registration | 25 LSK |
| Second passphrase setup | 5 LSK |
| Multi-signature registration | 5 LSK per multi-signature member |
每 10 秒产生一个新的区块。第一个确认(confirmation)发生在交易被收进一个区块中,通常发生在几秒内。随着越来越多新区块接着产生,交易越来越难被窜改并可被视为验证(validated)成功。我们建议较小的交易到至少等 6 个区块而较大的交易则要等一轮。
区块被存在关联式数据库中。每个区块的 SHA256 hash 值会被 delegate 产生并用 ed25519 签署过。区块的签章和 delegate 的公钥被包含在每个区块中,并被用来验证区块的完整性。
我们使用一个 hash 格式来产生具决定性的地址。地址的产生过程如下:将 account passphrase 透过 SHA256 算法,接者用 ed25519 产生一对公私钥,其中的公钥在经过 SHA256 算法产生一个 hash 值,再用这个 hash 值产生一个具决定性的地址。我们选择 ed25519,因为这个算法具有快速签署及预防碰撞等功能。