波场到底谁说了算?把java-tron、DPoS和TVM拆开看
波场的去中心化,到底去中心化在哪里?待我娓娓道来
1 / 规则写在代码里
波场的核心客户端是开源的 java-tron,交易处理、区块验证、共识、账户状态、资源计算等,都在客户端里。
if (verifyTransaction(tx)
&& verifyBlock(block)
&& verifyState(state)) {
accept(); }
实际源码当然比这复杂得多,简单理解就是,不是超级代表说这个区块有效,它就有效,而是其他节点按照同一套规则重新验证。
这也是我理解波场去中心化的第一层,规则先于参与者。
2 / 27个超级代表负责出块
波场采用DPoS,用户质押TRX获得TRON Power,再投票给超级代表候选人,排名前27的成为活跃超级代表,负责轮流生产区块。
TRX质押 - 获得投票权 - 选出超级代表 - 超级代表出块 - 其他节点验证
如果某个超级代表出问题,其他节点不会跟着接受错误区块。
3 / 一笔交易怎么进入区块?
签名 → 验证 → 打包 → 广播 → 再验证 → 确认
所以“3秒出块”和最终确认并不是一回事。3秒代表交易可以很快进入区块,后续随着更多超级代表继续出块,区块进入固化状态。
4 / TVM负责智能合约
智能合约运行在TVM,它最重要的一个特点就是确定性。
相同代码
+ 相同输入
+ 相同链上状态
= 相同执行结果
节点按照同样的规则执行合约,结果一致,状态才能被写入账本。这也是为什么超级代表虽然负责出块,却不能随意修改智能合约执行结果。
最来说下,所以认为波场的去中心化,核心并不是“谁来管理”,而是没有谁可以脱离规则单独决定结果。
代码、节点、选票和共识,共同把这套网络撑起来。
@justinsuntron #
TRONEcoStar#