一直以为Dusk的核心逻辑都在共识算法和虚拟机里,翻底层架构才注意到,协议最根子的地方,其实压在两个创世合约上——Stake合约和Transfer合约,这两个东西比表面看到的共识协议更基础。
Transfer合约管的是资产流转的入口——不管你走Phoenix的机密交易路径还是Moonlight的公开交易路径,最终都得经过这个合约完成状态变更,它也是智能合约执行的入口,不管是普通转账还是调用合约,都得先过这一道。Stake合约则专门追踪provisioner、质押数量、奖励分配、验证人集合这些跟共识安全直接挂钩的状态,前面聊过的slashing惩罚,底层触发的状态变更也是靠这个合约记录。
这两个合约被称为"创世合约",意味着它们不是普通开发者能部署的普通合约,而是跟创世区块一起写死在协议里的基础设施,某种程度上类似传统操作系统里的内核模块,跟应用层的普通程序不是一个特权级别。我理解这个设计的用意是——资产转移和共识安全这两件事,直接关系到整条链最基本的信任假设,如果这两块逻辑跟普通合约一样能被随便部署替换,整个系统的安全边界会变得很模糊,把它们焊死在协议层,相当于划出一块"不可动摇的地基",其余一切功能都建立在这块地基之上。
这个角度让我重新理解了"协议"和"应用"这两层的边界——很多人聊智能合约链的时候,习惯性把所有逻辑都看成"上面跑的应用",但资产该怎么流转、共识该怎么维持,这些问题其实不该由普通应用层逻辑决定,得有一层不可篡改的底线兜着,Genesis合约就是这条底线的具体体现。
#dusk $DUSK @Dusk
Transfer合约管的是资产流转的入口——不管你走Phoenix的机密交易路径还是Moonlight的公开交易路径,最终都得经过这个合约完成状态变更,它也是智能合约执行的入口,不管是普通转账还是调用合约,都得先过这一道。Stake合约则专门追踪provisioner、质押数量、奖励分配、验证人集合这些跟共识安全直接挂钩的状态,前面聊过的slashing惩罚,底层触发的状态变更也是靠这个合约记录。
这两个合约被称为"创世合约",意味着它们不是普通开发者能部署的普通合约,而是跟创世区块一起写死在协议里的基础设施,某种程度上类似传统操作系统里的内核模块,跟应用层的普通程序不是一个特权级别。我理解这个设计的用意是——资产转移和共识安全这两件事,直接关系到整条链最基本的信任假设,如果这两块逻辑跟普通合约一样能被随便部署替换,整个系统的安全边界会变得很模糊,把它们焊死在协议层,相当于划出一块"不可动摇的地基",其余一切功能都建立在这块地基之上。
这个角度让我重新理解了"协议"和"应用"这两层的边界——很多人聊智能合约链的时候,习惯性把所有逻辑都看成"上面跑的应用",但资产该怎么流转、共识该怎么维持,这些问题其实不该由普通应用层逻辑决定,得有一层不可篡改的底线兜着,Genesis合约就是这条底线的具体体现。
#dusk $DUSK @Dusk
