协议
Nimiq 是首个为了简易性而设计的区块链,其核心价值是易于使用,可扩展和快速。
无需安装
为了降低用户和开发者使用门槛,Nimiq 采用基于浏览器的方式。
Nimiq 用 ES6 Javascript 语言编写,并使用 Websockets 或 WebRTC 进行网络通讯。尽管“基于浏览器”是说你可以无需中介从浏览器连接到 Nimiq 网络,但它并不意味着 Nimiq 只能在浏览器上运行,它的 NodeJS 客户端也可以在服务器上运行。
Nimiq 网络有两种节点:浏览器节点和中枢节点。中枢节点在 NodeJS 上运行,使用和浏览器节点相同的代码库。中枢节点互相之间以及和浏览器之间通过 WebSocket 通讯。中枢节点还充当信令服务器供浏览器建立 WebRTC 连接。
浏览器节点使用 IndexedDB 存储区块链数据,中枢节点则使用 LevelDB。
快速同步
通常比特币和以太坊客户端要下载大约100GB数据,用于和网络建立共识。这对大多数用户而言是一个巨大的屏障,导致只有“精英”用户实际上才有能力无中介地参与网络。
Nimiq 借助迷你区块链方案(Mini-Blockchain Scheme)和酌量轻客户端(Light-Clients)来解决这个问题。通过引入 AccountsTree (类似于以太坊的 Merkle-Patricia-Tree)和 Headers Chain 的概念,协议几乎可以丢弃所有的旧区块,仅下载并存储几兆字节的数据。
另外,微客户端(Micro-Clients)只需要下载 Header Chain 的一部分以及和某个用户帐号相关的 AccountsTree 的片段。也就是,我们只需要下载几千字节的数据,就可以在没有中介的情况下参与无信任网络。
快速交易
通过引入哈希时锁合约(Hashed Timelock Contracts 或 HTLCs),用户可以相互建立支付通道(Payment Channels),来发送链下(Off-Chain)交易。
链下交易和普通的链上交易一样安全,且不占用区块链本身的任何空间。这些交易是即时的,因为对方一旦收到交易信息,支付就算完成,不需要区块确认,成本最小。
使用哈希时锁合约,用户可以建立支付通道网络,在这个网络里面,即使参与者互相之间没有建立直接的支付通道,也可以进行支付交易。
生态系统
浏览器库文件和矿工演示程序
浏览器库文件是 Nimiq 生态系统最基本的组成部分,它能让任意站点成为 Nimiq 网络的一等公民。
它可以跟网络同步,验证区块链,请求账户结余,以及创建和发送交易。
Nimiq 测试网络界面展示了这个库文件的特性。
基于 Web 的钱包(2017年6月 Beta)
基于 Web 的钱包使用浏览器库文件为用户提供了一个钱包,供其日常使用。
主要目标是提供一流的用户体验,并让没有经验的用户加强熟悉区块链技术。
教用户多方面陌生的区块链技术,将是钱包界面的关键。比如解释支付确认的必要以及怎样保护私钥安全。
用物理安全手段把存有资金的冷钱包打印出来的功能也将整合进去。
P2P 交易(2017年第4季 Beta)
P2P 交易使得 Nimiqs 币和当地法币的兑换变得简单、快速和低廉。
可以分步达成这个目标:
一开始,获得 Nimiq 币最简单的方式就是通过正规的代币交易所,跟获取其他的区块链代币一样。
使用 HTLCs 用于跨链(Cross-chain)交易。跨链交易允许用户在没有托管的情况下跨不同的区块链交换代币。这将使 Nimiq 能够利用围绕比特币和以太币的交易服务,而不需要为代币交易支付高额的费用。
与 VISA 支付服务合作创建 VISA-to-Nimiq 交易(中心化第一选择)。
创建一个类似 localbitcoins.com 的中心化的 P2P 交易所。主要区别将是根本上提升可用性。
到这一步之后,我们想要在我们的基于 Web 的协议之上实现我们在去中心化 P2P 交易方面最先进的研究成果,创建一个低廉、快速和人人可用的去中心化交易所。
测试网络(Betanet)
Nimiq Betanet 是 Nimiq 协议的一个预览版。它的目的是向区块链团体介绍概念,收集反馈,并围绕协议建立一个强大的社区。
它是一个测试版本,不适用于永久性的 Nimiq 代币创建。其意图是想了解 Nimiq 协议在现实场合的行为,并获得真实世界数据,这些数据对协议改进非常重要。为了保持我们的开发敏捷性,我们可能会在任何时候重置这个区块链。这将导致你在测试网络的所有 Nimiq 代币丢失。
测试网络不包含快速同步和链下交易的特性。
暂行技术规范
出于简化目的,测试网络使用 SHA256 作为 PoW 算法,它使用 WebCrypto API 来接近原生性能。我们的测试网络实现方案的一个不足之处是 Nimiq 使用 NIST 曲线进行椭圆曲线签名,因为它们是 WebCrypto 支持的唯一曲线。
主网版本,我们将使用 WebAssembly 实现一个抗 ASIC 的 PoW 和别无二选(nothing-up-my-sleeves)的 ECDSA。
基于现有研究,我们选择一分钟出一个区块。这个参数在主网启动之前有可能会更改。尽管我们尚未决定是否要引入 GHOST 协议(或是底层做一些修改)的复杂性,但希望达到类似于以太坊15秒的出块时间。
项目里程碑
- 6月6日:发布测试网络,开始建立一个社区
- 在 Reddit 上或通过 Youtube Livestream 进行 AMA 互动
- 6月:代币销售
- 7月6日:项目开始进入第二阶段
- 继迷你区块链方案之后实现轻客户端
- 实现 HTLCs 以完备区块链协议特性
- 8月8日:启动特性完整的Testnet
- 实现和启动闪电网络基础设施架构(Lightning Network Infrastructure)
- 实现和启动 P2P 交易所
- 2017年12月:主网启动
参与
如果您是开发人员,想要查看我们基于浏览器的区块链,请访问我们的 github 仓库,并遵循入门指南。
如果您有功能诉求或发现 Bug:欢迎在 github 上发议题或者提交代码。
如果您是区块链技术的新手,请访问我们的 YouTube 频道,了解团队并观看我们围绕区块链和 Nimiq 相关话题的访谈和讲解。
如果您想参加我们的代币销售,请关注我们的 Twitter,Medium 或 YouTube 以了解最新动态。
如果您想加入团队,请使用我们的区块链构建一个示例应用程序,将其发送至 [email protected],并告诉我们您的技能,经验以及您想为 Nimiq 做事的原因。
如果您有其他反馈意见,请加入我们的 Telegram Channel。
参考:https://medium.com/nimiq-network/introducing-the-browser-based-blockchain-63d408add368