比如一个抽奖的脚本,多个地址向抽奖地址打币,满足某种条件(余额或时间)后,脚本自动抽出获奖者,并把币打回。
稍微研究了一下,感觉不借助链外的程序很难发起向外转账的交易 ,但我对CKB的脚本还一知半解,不确定是不是这样。求教!
Cipher
July 31, 2019, 1:42am
2
首先,基于时间的自动化在大部分公链里面都无法实现,CKB 也无法实现,这是因为节点很难对此达成共识。
其次,基于余额的自动化在账户体系下很容易实现。例如以太坊中,收款余额超过 100,自动划转给另一个地址的实现是很简单的。在 ckb 下,由于链上无法直接统计某个地址的余额,因此不容易实现类似的功能。
但仔细想一下,以太坊实现类似的功能其实有问题。问题在于,用户在转账时并不知道会不会触发自动化的功能,因此 TA 支付的 gas 往往仅限于转账费用。因此用户实际上并不能真正将后面的自动化脚本处罚成功。基于账户模型的以太坊上的交易在发送时是不确定的,用户不知道它会不会成功、造成什么结果、消耗多少 gas。
对应地,CKB 的业务逻辑是确定性逻辑。交易发起人明确知道自己的交易造成的结果和消耗的 cycle,这笔交易要么失败不上链,要么以用户期待的结果运行。
我们再来看“自动化”这个需求,它意味着交易发起人对交易造成的后果无法预知。这件事情在 CKB 上是不被允许的。我们认为一切类似的需求不应该由公链处理,应该由 Layer2 来处理,仅将结果通知到 CKB 上(并经过验证)。这样才是正确的模式。去中心化在这个过程中并没有被削弱,只要我们对提交到 CKB 的状态来源不做限制,任何人都可以计算出结果提交。
3 Likes
先不说ckb脚本的问题。
这个需求就有两个难题。
一个是触发的问题。区块链是一个状态机, 没有交易的时候是不动的(仅就世界状态来说,出块不算)。类似抽奖这样的需求,最简单的做法就是最后一个人触发。但是这就有个问题,如果最后一个人不管因为什么原因,一直不发交易,那这个流程就一直结束不了。需要额外增加超时等处理,逻辑会变复杂。
二是随机数的问题。抽奖一般都要用到随机数。如果随机数是所有参与的人交易里带的,那么最后一个人发交易的时候,其实结果就是可以预期的了。他可以在链下反复尝试,找到对自己有利的随机数。这个叫“最后一手”问题。
2 Likes
哇,解释得好清楚!
之前也隐隐觉得我的这个问题在逻辑上好像有些说不通的地方,经你一点恍然大悟。
关于随机数,有没有可能让多方同时参与随机数产生的过程?
这个问题也是一个研究热点,相关的文章还挺多的,单是目前好像没有特别好的方法。
随便在网上搜的一篇 http://www.yibenchain.com/news/show/3646.html
这个论坛有很多
本篇文章转载自我的个人博客 [研究] 区块链上的随机性(一)概述与构造 。
转载版本:2019-01-24T23:00:00Z 更新
本篇文章总结了目前主要的应用在区块链的不可预测随机数获取协议,并提炼出它们的设计思想,方法论以及依赖的假设,然后对他们进行比较。本文分为两部分:第一部分介绍基本概念,并从零开始构造适用于分布式系统的随机数协议核心;第二部分介绍目前主流的应用在区块链项目中的随机数协议,并分析他们是如何使用第一部分所介绍的某类或者某几类协议核心。
本文假设读者已经具有基本的区块链知识,并对以太坊智能合约的基本原理和比特币共识协议的基本原理有大致的了解。
随机性 (Randomness) 的获取是区块链中很重要并且比较困难的一个课题。这里的随机性的获取包括但不仅限于:如何在智能合约中引入不可预测的随机数;如何在共识协议中安全地进行随机抽签。显然,上述对于随机性获取的问题描述已经说明了为何这个课题十分重要。而它的困难之处一方面来自于区块链系统的透明性——从通常意义上来讲,该特性会使得一切算法的输入,输出以及算法本身暴露给所有的系统参与者——因此,在密码学中广泛使用的…
本篇文章转载自我的个人博客 [研究] 区块链上的随机性(二)项目分析 ,是上一篇文章区块链上的随机性(一)概述与构造 的延续。
转载版本:2019-05-13T22:00:00Z 更新
作为区块链上的随机性系列文章的第二部分,本文介绍了目前主流的应用在区块链项目中的随机数协议,例如 Algorand、Cardano,Dfinity 和 Randao,并分析他们是如何使用第一部分所介绍的随机数协议核心以及它们的组合。
区块链项目中的应用
本章会介绍以下四个项目:Algorand、Cardano,Dfinity 和 Randao 分别是如何利用上述三种基本的方案构建随机数生成协议的。注意本文并不会专门详细解释这四个项目的共识算法,只会介绍最基本的框架以帮助读者理解共识协议和随机数算法之间的联系。
Algorand
Algorand [1 ] 项目使用了基于 PoS 的混合共识协议,其共识过程利用了随机抽签。它的随机抽签所依赖的种子,从本质上讲,是通过取前 t (t = 1) 个输入来生成的,对应 v3.0b 版本的第一种方式。如图 1 所示,Algorand 的共识过程要求节点先在…
本篇文章转载自我的个人博客[研究] 可验证延迟函数(VDF)(一)一文搞懂 VDF 。
转载版本:2019-06-09T22:00:00Z 更新
自从以太坊将可验证延迟函数(Verifiable Delay Function, VDF) 列入研究计划 并打算在以太坊 2.0 使用之后,VDF 得到了广泛的关注。VDF 这个概念最初由斯坦福大学密码学教授 Dan Boneh 等人在其论文 Verifiable Delay Function 中给出。该篇文章于 2018 年发表在密码学顶级会议之一的 CRYPTO 上。
目前网络上有一些英文 和中文 的文章介绍了 VDF 的概念和原理,但是它们要么无法给出全面直观的解释,要么只是粗浅地谈论应用。本文试图通过浅显的语言和具体的例子来让对密码学和群论不够了解的读者能够全面而直观地理解它的定义和原理。同时,本文还给出了它的可能的应用场景以及目前的研究和应用状况。
简介
VDF 是一类数学函数,能够使得该函数的计算需要至少一段已知的时间,即使是在同时使用少量 CPU 进行并行计算的情况下(这与比特币的 Proof-of-Work (PoW) …
我以为你看过的 @rink1969
3 Likes