IOTA的常见问题解答

IOTA的常见问题解答

基础

彻底了解基础知识

什么是IOTA

IOTA是为物联网(IoT)而设计的一个革命性的新型交易结算和数据转移层。它基于新型的分布式账本——Tangle(缠结)。Tangle能够克服现有区块链设计中的低效性,并为去中心化P2P系统共识的达成创造了一种新方法。通过IOTA进行转账不需要支付手续费,这是首例。这也就意味着,无论是多小额的支付都能通过IOTA完成。

IOTA是机器经济所稀缺的一部分,能够完全实现其潜力。我们期望IOTA能够成为物联网公开的支柱,能够在所有设备中实现真正的互通。

IOTA的常见问题解答

IOTA和区块链有什么不同?

要说对比IOTA(或者更具体的来说是Tangle)和区块链,这两者之前存在很大区别,因为他们是两个完全独立的架构,但是却建立在同一种规则之上。如果你对Tangle和区块链之间的区别的全面分析感兴趣,可以关注我们后续发布的博客。在这里,我从两个方面分析Tangle和区块链的主要区别。

  1. 数据结构

Tangle(缠结)是基于定向非循环图的(DAG),而不是一种连续的链式架构,定期添加区块。通过DAG,IOTA能够实现较高的交易吞吐量(通过平行验证),并且不收取交易手续费。随着Tangle的不断发展,越来越多的参与者都将发起交易,整个系统也会变得越来越安全和快速,确认时间会缩短,交易也完成的越来越快。

  1. 共识

区块链共识是通过一个非常严格的机制完成的,区块链中添加下一个区块需要多方进行竞争,并获取区块奖励或交易手续费。正因如此,共识和交易生成是分离开的,并且由网络的一小部分人来完成,通常会设置较高门槛(就像比特币一样),这样会导致进一步的中心化。

在IOTA系统中,网络中的每位参与者都能进行交易并且积极参与共识。更具体点说,你直接定位了两笔交易(主交易和分支交易),且间接在子tangle中定位其它交易。通过这种方式,验证就能同步进行,网络能够保持完全去中心化,不需要矿工传递信任,也不需要支付交易手续费。

IOTA的量子安全是怎么来的?

IOTA使用哈希签名(https://www.imperialviolet.org/2013/07/18/hashsig.html)而不是椭圆曲线密码学(ECC)。哈希签名不仅仅在速度上胜过ECC,还能大大简化整个协议(签名和验证)。IOTA能够实现量子安全是因为我们采用了文格尼茨签名。IOTA的三进制哈希函数称为Curl(编程语言)。

怎么会没有手续费呢?

这是通过IOTA独特的共识方法实现的。通常为了让交易得到验证并且纳入下一区块中,是需要支付交易手续费的,但IOTA系统中不存在矿工或验证者(来完成这项工作,因此不需要支付手续费)。IOTA的共识是完全去中心化的,每位网络成员都能发起交易,直接或间接地确认过去的交易。正是因为这种共识固有的特点(交易终端选择和计算需求),你才不用支付手续费。

我能用IOTA做什么?

目前IOTA可以很好的做两件事:交易结算(尤其是微支付)和数据完整性。通过这两个功能衍生出的大部分用例都是很有意义的,而且大多数情况下只能通过IOTA来实现。更多功能(比如说Oracles和智能合约等)已经在我们的发展计划中,不久将会正式添加进来。

IOTA主要致力于物联网,通过机器支付资源、服务或者许可,包括智能城市、智能电网、基础设施、供应链等在内的用例都是IOTA可能实现的目标。在本篇博客中你将能继续发掘IOTA的更多用例。可以为你喜欢的编程语言选择指导,或者甚至自己来写编程语言。

IOTA的主要用例是?

IOTA的主要功能(目前)是无需手续费的微支付和安全的数据转移以及数据锚定。有了这两个功能,再加上IOTA的延展性和分区容错,我们能够提炼出大量的只能通过IOTA来实现的用例。

主要关注领域很显然是物联网,特别是智能城市、基础设施和智能电网、供应链、运输和移动性等领域。除此之外,IOTA能够成为任何P2P交易结算的支柱,比如说网络支付甚至是汇款。

怎样发起一笔交易?

发起交易基本上需要三步:

  1. 构建交易集和输入签名

IOTA中有两种类型的交易:一种是包含价值的转移(因此必须进行输入签名),另一种仅仅是发送交易到另一个地址,不包含价值转移(比如说一个信息)。构建交易集相对来说比较简单,通过所有已经发布的代码库来完成。已发布的代码库还能帮助进行交易输入签名,完全通过用户端完成。这就意味着你不用担心你的私钥或者你的密钥被发送到其它地方。

  1. 终端选择

终端选择是一个通过穿越你的本地tangle来算出两个任意选择的交易的过程,能够通过你的交易进行验证。这两笔交易将会添加到你的交易集中,分别称为主交易和分支交易。

  1. 工作量证明(PoW)

一旦交易集构建完成,并且完成签名,终端也添加完成,你需要为交易集中的每笔交易做少量的PoW。这样一来,交易集中的每笔交易都需要一个临时数(nonce)才能被网络接受。这个PoW的主要目的是抵御女巫攻击和批量交易攻击。

这三个步骤都完成之后,你就可以向你的邻节点广播这笔交易,并且等待其被网络接受。

你提到了工作量证明,我能不能挖IOTA

IOTA的PoW和区块链(比如说比特币)通常使用的PoW机制是不能相互比较的。IOTA的PoW是直接和哈希现金挂勾的,有同一个目标,即防止批量交易攻击,在这一项目中还有防止女巫攻击的目的。由于这种共识方式,通过发起交易进行计算来获取IOTA代币是不可能的。这样一来就不存在“挖矿”的过程。可以说你直接通过无需支付交易手续费而获利。

总供应量是多少?存在通胀倾向吗?

IOTA的总供应量是(3 ** 33 - 1) / 2,即2779530283277761个代币。

所有现存的IOTA代币都是通过创始交易创造的。这就意味着IOTA的总供应量是固定的,你无法“挖”IOTA。

不同的单位是什么?

IOTA使用SI(国际单位制)来代表其单位和价值。下图能够进一步解释这些单位及其对应的大小:

IOTA的常见问题解答

专业术语

IOTA中常见的术语

Tangle(缠绕)

Tangle(点击这里阅读白皮书)是一个以定向非循环图(DAG)的形式存在的分布式账本,能够存储IOTA网络中的所有交易数据。它是没有区块和链的区块链(所以说它真的是区块链吗?)。部署在IOTA的Tangle是首个能够实现延展性、不收取交易手续费以及能够提供量子计算保护的公有分布式账本。与如今的区块链不同的是,共识是与系统挂勾的,是系统固有的一部分,这样就能打造出一种完全去中心化和能够实现自我管理的P2P网络。

Trytes和Trits

IOTA基于三进制,而不是二进制(说来话长)。我们用大写拉丁字母和数字9([9A-Z])表现出trytes。因此当我们提到tryte编码时,你就知道这是一串只包含9A-Z的字符(比如说ABFDSGFDS9)。

种子密钥

仅包含大写拉丁字母和数字9([9A-Z])的Tryte编码串是用于生成私钥的。最高强度的密钥是81-trytes(81个字符)。你应该保证你的密钥安全,不要和任何人共享。

分支交易和主交易

这两笔交易由另一笔交易直接关联(并进行验证)。

交易集

在转账过程中集合在一起的交易。交易集直接通过主交易进行连接。

临时数

临时数(只生成一次的数字)是一种81- tryte的哈希,这是在达到目标值之后的POW哈希输出。每笔交易都必须有临时数才能被网络所接纳。

开始

你迈出的第一步

在哪里可以下载客户端?

截止发文时(英文),IOTA已经有Java语言的客户端部署,加上安装指南都可以在这里找到:https://github.com/iotaledger/iri,C++和Rust语言的客户端还在研发中。

在哪里可以下载钱包?

官方IOTA的GUI可以在这里找到:https://github.com/iotaledger/wallet/releases,只要根据你的电脑系统选择对应的文件就行。你还可以在这里(https://medium.com/iotatangle/the-iota-gui-is-here-e1ae80e462d7#.499knawd4)找到有关钱包的进一步指导。

我们还有安卓移动钱包(即将支持iOS),进一步的指导可以在这里(https://medium.com/iotatangle/community-made-mobile-wallet-75045043be1c#.pug265xxs)找到。

如果你更喜欢简单点的操作,你可以使用Nostalgia(https://github.com/domschiener/nostalgia),这是简化版的UI界面。

轻钱包和全钱包(Full Wallet)有什么区别?

IOTA GUI中可选的钱包有两种:全钱包(Full Wallet)和轻钱包。全钱包自动运行一个IRI(IOTA客户端),这也就意味着你需要邻节点来参与网络并进行同步。如果你运行着全钱包,你就没有“信任需求”,因为你可以完全独立地参与网络。

轻钱包能够连接远程节点(无论是你的还是别人的)来获取最新的网络状态,最重要的是用语发起交易的分支和主交易。运行轻钱包时应该注意你的密钥不能离开你的钱包,所有敏感的工作数据(比如说签名)都是在客户端完成的。

我的种子密钥跟着代码库或钱包一起被发送到服务器里吗?

当你和任何在IOTA基金会支持下的代码库进行互通时,你可以放心你的密钥永远不会被泄露。签名生成、验证等重要步骤都是在客户端完成的,也就是说实在你的本地环境中完成的。这样一来,你的密钥就不会被发送到你的远程节点中,你也不用担心任何安全问题。

我能运作一个私有的Tangle吗?

截至发文时(英文),运行私有Tangle暂时还无法实现。IOTA基金会目前正在搭建一个工具架构,能够帮助你运行自己的私有Tangle。目前你可以使用主网和测试网进行测试。

Rebroadcast and Replay. What's the difference?

重新广告和重放交易。二者有什么不同?

重新广播的过程就是再次向你的所有邻节点发送同一笔交易。在大多数情况下,重放交易更容易被网络接受,除非你很确信你的邻节点没有收到你的交易。

重放的过程就是你‘重新添加’你的交易到Tangle网络的另一部分,并等待交易被接受。这样一来,你就是在完全重新进行这个交易流程(终端选择和PoW)。

原文:http://learn.iota.org/faqs
译者:Erica

专栏作者:Erica

个人简介:我共发表了 29 篇文章,总计被阅读了175,823 次,共获得了 198 个赞。

作者邮箱 作者主页 Ta的文章

发表评论

邮箱地址不会被公开。 必填项已用*标注