可交换的签名验证协议标准

Xuejie Xiao

Xuejie Xiao

Nervos Core Team

过去,在 CKB 的锁脚本中,签名验证算法与其他交易验证逻辑是紧密耦合的,比如,anyone-can-pay 锁脚本。这样做的一个原因是为了简化 CKB 脚本的任务。在早期,您肯定希望限制您正在处理的范围,以确保构建出的脚本足够安全。

但是慢慢地,我们越来越了解如何构建 CKB 脚本。与此同时,将签名算法和锁脚本逻辑的捆绑带来的问题也逐渐得到关注:假设我们有 N 个签名验证算法,M 个特定的锁脚本逻辑,我们就需要构建 N*M 个锁脚本才能完成所有的组合。这将带来巨大的维护负担,也将会造成链上资源的浪费。关于这个问题,有什么解决办法吗?

Keyper —— Nervos 上的 cell 管理协议

Matt Quinn

Matt Quinn

Nervos Team

在智能合约平台上,用户通常只有一个一直使用的地址。但是,Nervos 的 cell 模型提供了一个不同的设计范例,用户在 Nervos 上可能会控制许多有着不同 lock script 的不同的 cells。

当我们在和区块链进行交互时,这样的设计提供了强大的灵活性。为了控制 cell 的所有权,开发人员可以指定条件然后通过使用任意数量的密码学原语来控制这些 cells 的所有权。这样灵活的设计可以在 P wallet 中看到。

一种通用的支付通道结构及其可组合性

Jan Xie

Jan Xie

Nervos Core Team

通道网络(Channel Network)可能是 layer2 舞台上最耀眼的角色。一个广泛部署的通道网络可以最大化交易吞吐量(无上限!),可以最小化交易处理延迟(可以和连接各方的网络一样快),可以增强交易的隐私性,甚至可以为区块链提供一定的互操作性。简而言之,如果运用得当,通道网络将会是解决问题的灵丹妙药。

Diviner:确定性测试的新尝试

Xuejie Xiao

Xuejie Xiao

Nervos Core Team

我一直以来对确定性执行的问题很感兴趣。我们在多线程模型上花了很大时间。我们大部分人都应该遇到过一些只在一定概率范围内发生的 bug。即使你已经准备好了一个修复程序,你也不能确定它是不是还会再次发生,你所能做的不过是测试,测试,再测试,并希望这样的问题不会再次出现。我们可以确定地进行调试并拍着胸脯说这是 100% 确定的,这是每一位工程师的梦想,而这个问题已经被解决了。

CKB 脚本编程简介[9]: 减少 Duktape 脚本的执行周期

Xuejie Xiao

Xuejie Xiao

Nervos Core Team

之前的文章介绍过,可以使用纯 JavaScript 构建 CKB 脚本。但是,如果你以前尝试过这种方法,你会注意到一个问题,即基于 JavaScript 的脚本比原生版本消耗更多的周期。虽然这在实验中不是什么问题,但在生产环境中却是非常现实的:更多的周期可以自然地反映在更多的交易费用上。很明显,以下的解决方案可以用来解决这个问题: