写点什么

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

2018 年 6 月 19 日

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

举一个常见的例子,比如缴税,截止日期是每月 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

感谢海兴对本文的审校。

2018 年 6 月 19 日 16:371075

评论

发布
暂无评论
发现更多内容

升级redhat6的yum源替换为centos源

Bruce Xiong

Techo | 大数据专场报名盛启!12月20日欢迎莅临!

小小的一朵云

大数据 数据仓库 大数据架构

校园恋爱新技能:智慧琴房恋爱助攻手册

IoT云工坊

物联网 API sdk 智慧琴房 智慧校园

又真香了!到底是怎样的JAVA面试文档,拿到这么多offer

Crud的程序员

程序员 架构 java面试

架构师训练营第 1 期第 13 周学习总结

好吃不贵

极客大学架构师训练营

技术选型背后的国家利益:区块链自主化道路的交锋

CECBC区块链专委会

科技

【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发

华为云开发者社区

Serverless 物联网 IoT

全球最火的程序员学习路线!2020年GitHub上那些优秀Android开源库总结,吊打面试官系列!

欢喜学安卓

android 程序员 面试 移动开发

云智一体:攀登2021智能经济新山峰

脑极体

芯片破壁者(二十二):政府与半导体间的“美国往事”

脑极体

Superset 助力企业级大数据 Ad-hoc 查询

麻婆豆腐没麻婆

数据分析 Apache Superset BI数美

阿里技术官面鹅厂,被高并发问蒙,含泪整理全网最全线程并发文档

周老师

Java 编程 程序员 架构 面试

完美!凭借这份阿里大佬分享的4170页Java高手真经笔记!offer拿到手软

马士兵老师

Java 程序员 编程语言 电子书 架构资料

【变与不变】架构中的边界划定

soolaugust

编程 架构 设计

A Guide for Accidental Project Managers

Geek_ed0696

pmp project manager role of PMP PMP Certification greycampus

程序员什么时候就该辞职了?

Java架构师迁哥

架构师训练营第 1 期第 13 周作业

好吃不贵

极客大学架构师训练营

游戏服务器多钱一个月呢?

德胜网络-阳

甲方日常 70

句子

工作 随笔杂谈 日常

程序员如何解决中年危机?我的阿里春招之路分享,顺利通过阿里Android岗面试

欢喜学安卓

android 程序员 面试 移动开发

闭嘴,别再问什么是锁了

程序员老猫

乐观锁 悲观锁 分布式锁 java锁 公平锁

官方活动 | 日更挑战(初阶)——七日更,挑战百元京东E卡!

InfoQ写作平台官方

活动专区 七日更 日更挑战

Java 并发编程:volatile能否保证数据的同步

码农架构

Java Java并发

图解Janusgraph系列-并发安全:锁机制(本地锁+分布式锁)分析

洋仔聊编程

janusgraph 图数据库

QoS简介

网络技术平台

synchronized 是王的后宫总管,线程是王妃

Java架构师迁哥

ROS 机器人操作系统进阶实战

Geek_3cc3ec

Python 人工智能 学习 ROS

图解Janusgraph系列-图数据底层序列化源码分析(Data Serialize)

洋仔聊编程

janusgraph 图数据库

ES6中的Promise和Generator详解

程序那些事

新特性 ES6 Promise 程序那些事 Generator

工业区块链正在改变什么?

CECBC区块链专委会

环保

网易区块链打造可信数字身份认证应用新场景,赋能科技峰会

CECBC区块链专委会

数字身份

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

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