【区块链技术】Lisk 简介 | DPOS 共识网路

本文翻译自 Lisk FAQ - Network

哪里可以找到 Lisk 核心的原始码?

https://github.com/LiskHQ/lisk

Lisk 是用什么程式语言撰写?

Lisk 是用 JavaScript 撰写并使用 NodeJS。

为什么使用 JavaScript?

JavaScript 是一个易用、简洁且知名的程式语言且有巨大的开发社群、好用的工具和快速的开发周期。它强化了 Lisk 可以简单上手和迅速开发应用的目标。

Lisk 使用什么共识算法?

委派的权益证明(Delegated Proof of Stake (DPOS))。

Lisk 的 delegate system 如何运作?

任何人都可以在 Lisk 网路中注册帐号,成为 delegate account(或简单来说 delegate),仅需为帐户选择一个使用者名称。delegate 可以从任何 LSK 持有者中取得投票。简单来说,1 LSK 等同 1 票,而每个 LSK 持有者仅可将帐户中所有的余额投给一个 delegate。网路中前 101 个拥有做多得票数的 delegate 会开始产生新区块以确保网路的安全。101 个之外的其他 delegate 会待命。投票过程是动态的所以 delegate 的排名是可变动的。

什么是 delegate round?

一个 delegate round 是一个周期,必须经过 101 个 delegate 每个均产生一个新的区块。每一轮均产生固定数量的区块,而每ㄧ轮结束后会更新 delegate 的排序(根据投票数)。

每一个 delegate round 有多久?

每 10 秒一个区块,每个 delegate round 等于 1010 秒或大约 17 分钟。如果一个活跃的 delegate 下线了,它就不会产生新的区块,而由此轮的下一个 delegate 负责,所以产生这个 block 需要 20 秒。有就是说,越多活跃的 delegate 下线,每一轮就需要越久。

新的 LSK 代币如何产生?

活跃的 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 并确保网路安全,这是共识演算法很重要的一部分。

LSK 代币的发行量上限是多少?

并没有发行量上限。通膨率会随着时间降低,例如根据逐年的区块报酬调降会在第 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 个区块而较大的交易则要等一轮。

Lisk 区块中使用什么资料结构?

区块被存在关联式数据库中。每个区块的 SHA256 hash 值会被 delegate 产生并用 ed25519 签署过。区块的签章和 delegate 的公钥被包含在每个区块中,并被用来验证区块的完整性。

转移代币需要的签章格式是什么?

我们使用一个 hash 格式来产生具决定性的地址。地址的产生过程如下:将 account passphrase 透过 SHA256 算法,接者用 ed25519 产生一对公私钥,其中的公钥在经过 SHA256 算法产生一个 hash 值,再用这个 hash 值产生一个具决定性的地址。我们选择 ed25519,因为这个算法具有快速签署及预防碰撞等功能。

推荐阅读更多精彩内容