BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

如何解决区块链的硬伤:对时间的感知

| 作者 Daniel Kmak 关注 0 他的粉丝 ,译者 周小璐 关注 0 他的粉丝 发布于 2018年6月20日. 估计阅读时间: 6 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

加密数字货币希望能最终撼动银行,为了让其变为现实,加密钱包的功能就不能被银行系统比下去。银行最基本的功能之一是自动转账。但不幸的是,区块链中没有“时间”的概念,而我们需要改变这个现状。

举一个常见的例子,比如缴税,截止日期是每月10号,我们不想要提前转账,希望就在最后一天转。第二个例子,每个月我们都要交房租,我们希望未来的一年每个月都能自动交易。两种情况银行系统都能实现,但是加密数字货币的钱包呢?

加密数字货币的答案是什么?2个最流行的加密数字货币是比特币和以太坊。从技术先进程度来看2个平台,以太坊由于交易快速而更占优势。什么意思?在比特币中,我们只能在地址间传输值。但在以太坊中,我们可以在区块链中创建程序和设置逻辑。由此,去中心化应用被创建了。比如去中心化的音乐网站就是一个例子。

回到自动转账的问题,在比特币中这是不可能的。时间的概念是不存在的,只有区块。当然,你可以开启一个所谓的“CRON”,也就是在某个特定的时间点启动计算进程。比如说,它会试着让控制台客户端执行交易。这是一个中心化的方式,所有的机器或互联网问题都可以中途停止这个执行。这并不是你想要的,对不对?

CORN的想法在以太坊中和在比特币一样无效。但以太坊还有其它方式。实际上,它给出了一个可实行的、去中心化管理的解决方案。我之前提到过的智能合约,在这种逻辑下我们可以同时进入当前的块编号和UNIX时间。这意味着我们可以保存智能合约情况下的交易详情。这个智能合约可以在由你指定的窗口期内执行,比如说五分钟。

在以太坊中还没有实现自动转账的原生方案,但是这个平台允许创建一个更上一层的协议——智能合约。

以太坊闹钟

能够实现这种自动转账的协议是以太坊闹钟,2015年由以太坊基金会成员Piper Merriam创建。当交易被执行时,用户可以选择时间或块。由于不能100%保证时间/块的执行,我们希望用户选择一个时间窗口来执行。比如A想要在5:15发给B一个以太币,那么,他/她可以将5:15作为窗口开始时间,并将窗口时长设为5分钟。则交易的最晚执行时间可以是5:20。

协议的简单介绍视频

交易的执行是由TimeNodes的网络保证的,当自动转账的时候,用户需要设置1笔小奖励金,这样他或她就准备好了向某人支付交易执行的酬劳。这创造了一个市场以及网络中的第二个角色——TimeNode,通过物质刺激去执行交易。

实际上,TimeNode在通过一个打开的标签页在浏览器中引入以太坊钱包。这个钱包会用来执行自动转账和收集奖励金。允许自动转账和TimeNode机制的站点是:https://app.chronologic.network。为了测试这个功能,你需要安装MetaMask(仅用于调度),并使用Kovan测试网。这个协议很快就会运行在以太坊主网上。目前协议被ZK Lab审计,保证用户资金的安全。

技术细节

让我们从一笔自动转账的交易执行过程来分析,这笔交易可以通过eac.js-cli(一个JavaScript的控制台客户端)或web应用来实现。包括控制台客户端和应用都使用底层相同的库——eac.js-lib

两种方式(控制台客户端或web应用),最终都是调用在TimestampScheduler智能交易(如果我们选择在特定的时间转账)或BlockScheduler中一个叫schedule的方法。接下来,会为每笔自动转账的交易创建新的智能交易——TransactionRequest。这个创建会被在RequestFactory合约中注册,并被网络中的节点观察到。在这个网络中,每个TimeNode都运行着一个控制台客户端或浏览器标签页,从而能捕捉到RequestFactory放出的RequestCreated事件。TimeNode保存着所有缓存中的交易,等时间一到,它会执行交易并获得奖励金。

这个机制的有趣之处在于可以“认领”交易,给了一个节点去执行一个交易的优先权。更进一步思考,这也意味着以太坊需要定金的机制,如果节点认领了一个交易但没有执行,就会失去定金。

所有以太坊闹钟的智能交易都是用Solidity写的,Solidity是最受欢迎的以太坊平台编程语言。

集成

在巴黎举办的以太坊社区大会上,我们进行了60多个采访,得出的结论是包括开发者和以太坊用户都需要自动转账的能力。在以太坊世界中,crowdsales每天都在发生。由于时区的关系,它们可能在晚上开始。相比等着去买token,使用以太坊闹钟协议,可以节省时间。

第一个可以自动转账的以太坊钱包是MyCrypto

感谢这个集成,用户可以使用“稍后发送”按钮,选择合适的时间去发起交易。下一个集成也将到来,但是首先我们要等待审计。和以太坊的创始人—— Vitalik Buterin交流的时候,我们发现以太坊基金会计划将自动转账的功能在以太坊中本地化。没有实现的原因是时间不足,这个功能实现的计划被推迟了。

视频:以太坊创始人 Vitalik Buterin对以太坊闹钟的看法

未来

如果你是以太坊的用户,未来几个月内你就可以在最常用的钱包里使用自动转账了。另一方面,如果你对TimeNode和赢取执行交易的奖励金感兴趣,现在就开始测试吧。

原文链接:https://hackernoon.com/blockchain-doesnt-know-time-there-s-need-for-a-change-492e56a00e7d

感谢海兴对本文的审校。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT