NXTER.ORG

NXT客户端1.8.2发布

NXT客户端1.8.2发布,主要的变更内容如下: 1.所有1.8.0e或1.8.1的用户都建议更新,因为1.8.2是一个bug修复版本; 2.添加了商品市场中产品名称缺失的html; 3.修复了商品市场中上架商品没有图片的bug; 4.在最近的购买中只显示已完成的购买; 5.桌面钱包UI添加了联系人导入功能; 6.其它的一些UI优化和bug修复; 7.nxt.keyStorePath中允许keystore file的绝对路径。 下载地址:https://nxtforum.org/nrs-releases/nrs-v1-8-2/ 其它详细的变化如下: JavaFX UI: 增加了一个桌面钱包UI,与目前使用的浏览器钱包界面几乎是一样的,不同点在于当启动NXT服务器时,该钱包界面也会自动启动。 有关JavaFX UI的详细内容,可以查看: https://bitbucket.org/JeanLucPicard/nxt/issues/338/desktop-wallet   nxt.defaultDesktopAccount属性可以用来指定钱包启动时自动登录的账户。   可以通过设定nxt.launchDesktopApplication=false来停用桌面钱包UI。   目前的客户端安装包会在Unix平台上创建一个启动和停止快捷方式图标,用来以桌面模式启动NRS客户端。   如果使用命令行的话,就使用start.sh脚本来启动桌面模式。可以从任何目录来运行start.sh和stop.sh脚本。   jar安装包会被自解压的脚本包nxt-client-1.8.0e.sh所替代,Unix用户只需要点击就可运行安装包。使用安装程序而不是zip包的优势在于安装程序会创建上述提到的桌面图标和快捷菜单,而且会从之前的安装文件中移除掉旧的函数文件。   一个已知的bug(IzPack)是,在Unix中安装程序在尚不存在的目录中是无法创建图标的。而且无法移除之前的菜单快捷方式和桌面图标,建议在安装之前先卸载之前的安装文件。   不兼容的变化:   注意,当在Unix和Mac上运行桌面模式时,~/.nxt目录会用来存储配置文件,记录日志和nxt_db区块链数据库。 这会使得升级新版本更容易,它会删除掉之前的nxt安装目录内容,当然了用户的配置文件和数据库文件不会存储在这个目录中。   run.sh脚本会继续使用命令行模式,例如,不会启动桌面浅薄啊和桌面图标,会继续使用nxt安装目录。想要使用桌面模式但仍然使用nxt安装目录而不是 ~/.nxt可以使用run-desktop.sh脚本。   资金监控:   这个资金监控新功能可以监控账户余额,并从另外的账户自动充值,当然要通过账户属性设定自动充值账户和监控账户。   可以监控NXT、资产或货币余额。如果余额低于设定的数值,就会提交交易来从充值账户中转移资金到监控账户。   如果从之前的充值交易开始到目前为止,区块数目小于监控设定的间隔,那么新的充值交易会处于待定状态。   资金监控功能的API是StartFundingMonitor,GetFundingMonitor, and StopFundingMonitor。详细的文档参见API javadoc文件。

NXT 1.8.0e客户端发布

NXT核心开发者发布了最新的1.8.0e实验版本,该版本不是硬分叉版本,只不过是进行了一些修改,具体的变更内容如下:   JavaFX UI: 增加了一个桌面钱包UI,与目前使用的浏览器钱包界面几乎是一样的,不同点在于当启动NXT服务器时,该钱包界面也会自动启动。 有关JavaFX UI的详细内容,可以查看: https://bitbucket.org/JeanLucPicard/nxt/issues/338/desktop-wallet   nxt.defaultDesktopAccount属性可以用来指定钱包启动时自动登录的账户。   可以通过设定nxt.launchDesktopApplication=false来停用桌面钱包UI。   目前的客户端安装包会在Unix平台上创建一个启动和停止快捷方式图标,用来以桌面模式启动NRS客户端。   如果使用命令行的话,就使用start.sh脚本来启动桌面模式。可以从任何目录来运行start.sh和stop.sh脚本。   jar安装包会被自解压的脚本包nxt-client-1.8.0e.sh所替代,Unix用户只需要点击就可运行安装包。使用安装程序而不是zip包的优势在于安装程序会创建上述提到的桌面图标和快捷菜单,而且会从之前的安装文件中移除掉旧的函数文件。   一个已知的bug(IzPack)是,在Unix中安装程序在尚不存在的目录中是无法创建图标的。而且无法移除之前的菜单快捷方式和桌面图标,建议在安装之前先卸载之前的安装文件。   不兼容的变化:   注意,当在Unix和Mac上运行桌面模式时,~/.nxt目录会用来存储配置文件,记录日志和nxt_db区块链数据库。 这会使得升级新版本更容易,它会删除掉之前的nxt安装目录内容,当然了用户的配置文件和数据库文件不会存储在这个目录中。   run.sh脚本会继续使用命令行模式,例如,不会启动桌面浅薄啊和桌面图标,会继续使用nxt安装目录。想要使用桌面模式但仍然使用nxt安装目录而不是 ~/.nxt可以使用run-desktop.sh脚本。   资金监控:   这个资金监控新功能可以监控账户余额,并从另外的账户自动充值,当然要通过账户属性设定自动充值账户和监控账户。   可以监控NXT、资产或货币余额。如果余额低于设定的数值,就会提交交易来从充值账户中转移资金到监控账户。   如果从之前的充值交易开始到目前为止,区块数目小于监控设定的间隔,那么新的充值交易会处于待定状态。   资金监控功能的API是StartFundingMonitor,GetFundingMonitor, and StopFundingMonitor。详细的文档参见API javadoc文件。   客户端UI页面重定向   通过给http://localhost:7876/index.html添加页面参数,客户端可以重定向打开指定的页面或窗口。 使用案例参见: https://bitbucket.org/JeanLucPicard/nxt/pull-requests/42/added-page-redirect-modal-popup-with   市场功能中添加了最新上架商品和成交商品列表,展示了最新的10个上架商品或已成交的商品。   市场上架商品时可以包含图片。图片文件作为可删减的未加密信息附件上传到DGSListing交易中。 dagListing API中增加了新的messageFile参数,允许直接上传文件作为多重格式数据。所有createTransaction APIs都支持该参数。   …

Read more

Nxt1.8功能展望

Nxt1.8e已经在测试运行,其中新增的功能如下: 桌面钱包 1.8发布后,启动Nxt客户端服务器后,会立即启动钱包,不用再去打开浏览器。 https://bitbucket.org/JeanLucPicard/nxt/issues/338/desktop-wallet   账户监控 服务器侧会自动根据具体的标准给指定的账户充值,以保证自己的账户一直有足够的NXT来进行交易。   钱包自我定制 可以在特定的页面或模块下打开钱包:https://bitbucket.org/JeanLucPicard/nxt/issues/320/start-the-client-on-a-specific-page-or   附件软件 简单的服务器侧的插件框架   【原文】 https://nxtforum.org/general-discussion/upcoming-features-in-1-8-release/

Nxt 2.0 VS Nxt 1.7

Nxt区块链2.0的主要目的是解决区块膨胀的问题,方法就是增加主链和子链的架构。 对比Nxt2.0与目前运行的Nxt1.7的区块链大小,如下图所示: 区块链数据大小的计算方法可以参见这里。 从上图可以看出,如果系统按照 200交易/分钟 运行(200TPM),整个区块链的数据大小如下: 2.0区块链:543M 1.7区块链:42.5G   可以看出,在2.0进行区块删减后,区块链的数据会大大减少,从而用户下载区块链数据只需要很短的时间。 而且,交易数据越多,删减效果会越明显。

Nxt区块链2.0 – 主链和子链

Nxt区块链2.0已经在讨论和计划实施中了,其核心思路就是要通过主链(Main Chain)和子链(Child Chain)的这种架构来增加Nxt区块链的可扩展性和可删减性,从而解决长期存在的区块链膨胀等问题; 主链只有维护网络安全的功能,其中的代币称之为fNXT(Forging NXT),只有发送转账基本功能和锻造功能(维护网络安全);子链则拥有所有目前NXT的功能,所有子链的交易都用自己子链的代币,但最终的交易需要使用主链的代币fNXT来广播至网络并被节点确认;因此目前的NXT区块链也将成为一条子链,同时会创建新的主链。   具体增加的内容如下: 创建一条主链,其中的代币只有锻造维护网络功能,代币称之为“forgingNXT”。目前的NXT生态系统则变为一条子链,保留除了锻造以外的所有功能和属性。在硬分叉区块,每一个NXT的持有者将会按照1:1的比例获得主链的fNXT和目前子链的NXT,所有的其它功能和属性都将迁移至NXT子链; 可以随时按照市场价格将NXT交易为fNXT; 所有子链运行的程序是一样的,但是每一条子链可以根据自己的需要来选择设置功能。目前的NXT子链将拥有所有的交易类型和功能; 每一条子链都将使用自己的代币,所有的支付交易、资产交易、数字商品交易市场等等都将使用子链内部的代币,子链的交易费要使用自己的代币; 所有子链的交易都需要由所有节点来处理。所有的节点至少保留所有子链的最新的1440个区块的交易数据。备份节点可以选择将子链的交易数据存储时间延长,或一直保存这些交易数据; 如果节点没有进行特别备份设置的话,所有子链的交易将会在1440个区块后全部删除。重新下载区块链的新节点需要价值:锻造者和所有运行区块链的节点批准了这些当时未删减的交易,在那个时间点它们也必须是有效的,尽管要验证它们的数据已经不存在了。 必须要能够验证锻造者的fNXT余额。这就是为什么主链(锻造链)上与fNXT余额变化的相关的交易不能删除的原因,主链必须要保留一些必要的交易类型; 子链上的区块将会是可删减的单个(每一条链每一个区块中的每一个交易)交易。任何人都可以创建子链区块交易。然而,需要由在主链上创建区块的锻造者来决定是否将这个子链区块交易写入到主链区块中。与其它所有节点一样,锻造者会验证子链区块中的所有子链交易,前提是这些数据还没有被删除。 如果子链中没有交易,就没必要创建子链区块交易,这与主链不同,在主链中我们需要持续的创建时间为60秒的区块,无论区块中是否有交易。我们可以考虑缩短主链的区块时间来让让更多的子链区块出现; 锻造者只接受fNXT类型的交易费,最小交易费是由软件自己来计算的; 当锻造者将一个子链区块交易写入到主链中时,子链区块交易的创建者需要给锻造者支付一定费用的fNXT。这个交易费是由子链区块创建者决定的,但是一定要大于软件协议所设定的最小费用。同时,子链区块创建者也会获得交易费,这些交易费则是以子链中的代币,是由资料交易的发送者支付的; 子链代币和fNXT的兑换比率将由市场决定。如果没有人愿意将子链交易写入子链区块,这意味着支付的子链交易费没有达到所需的最小fNXT费用,这样的话将以将不会得到确认。如果子链的代币价格跌为0,没有人愿意创建子链区块的话,这条子链上的交易将会停止; 子链将会互相竞争来希望被写入到主区块中,因为最终锻造者将会查看 费用/交易大小 比,希望最大化它们的锻造收益,当然这些交易大小受制于主区块链的区块大小和交易数目限制; 在删减之前,每一个节点不仅要验证子区块交易哈希是否匹配,还要验证子链上的所有交易都是有效的,例如,没有双重支付,以及其它所有的验证。这样的话节点才能知道某个子链上所有账户的当前余额。为了能够删减,我们需要快照交易,快照只记录当前子链的状态,不会记录之前的历史记录。然后,在交易被写入主区块中720个确认后,我们就认为该交易是有效的,就会删减掉快照之前的所有历史交易记录和之前的快照; 子链的快照交易是由当前区块的锻造者按照以一定的时间间隔来创建的,例如1440个区块。它只包含快照的哈希值,并不包含快照的所有数据内容; 当创建快照交易时,快照数据本身并不不需要广播至网络。每一个更新的节点都已经有子链快照时的状态了,因此它们就能够自己生产快照。只需要验证锻造者的快照哈希与自己的快照哈希相匹配即可; 只有重新开始下载区块链的节点才需要下载最新的所有快照,这就是为什么每一个节点都必须生成并保留这个快照的另外一个原因,从而可以提供给这些重新下载区块链的新节点。快照的下载是torrent模式的,即从不同的节点下载不同的碎片; 因为每一个更新的节点仍然需要验证所有当前的交易,尽管我们已经极大地减少了区块链长期膨胀的问题,这些问题包括占用大量的磁盘空间、区块链下载时间,但是仍然存在CPU处理所有子链数据的瓶颈、接受和处理所有子链当前交易的带宽问题。但是因为节点无需验资子链之前已经删减的交易数据,因此整体上下载区块链数据的速度会大大提高,CPU的占用也会大幅降低; 主链(锻造链)用于保证安全,即使很多子链没有用户和交易,或者偶尔有交易。同样,这样以来所有子链都可以进行删减。子链不再需要保留它们之前所有的从创世块开始的旧数据了,因为它们不参与锻造,与网络安全无关; 首先,我们会只有主链和目前的NXT一条子链,或者再加一条测试子链。一旦测试没完成,我们就开始实施动态创建新子链的功能,以及为创建的子链设置和编辑功能属性。

区块链应用之匿名混币

比特币的混币服务究竟对其生态系统有多大的影响,至今尚没有明确的答案。目前现存的混币方案都要求用户将其资金托管给信任的中心化的第三方服务商。而且对于一些混币服务商,用户必须要使用TOR网络才能访问,这使得使用混币服务的门槛很高。而且还要面临中心化的第三方服务商跑路的风险。   比特币的混币服务并不适合于每个人   有很多种使用混币的方式。最常见的方式就是混币服务提供者提供一个可以访问的页面,用户按照要求填写信息,将比特币发送给服务提供者,之后服务提供者会将混币后的比特币发回给用户。总之,这个过程是需要一些时间来进行混币,以实现不可追踪的目的。   对于那些想要完全匿名的用户,他们就会通过TOR网络来使用暗网上的混币服务。但混币原理是差不多的,也是要通过中心化的第三方服务商来进行。很多暗网上的网页都跟违法活动有关,而且在这里进行混币的也多是跟洗钱有关的活动。   但是使用TOR网络来访问暗网并不是一件容易的事情,需要很多设定,这对于一般的用户来讲,门槛实在是有点高不可攀。   比特币从来就不是匿名的 回到比特币本身,这个最流行的去中心化的区块链货币本身也不是匿名的,而且其发明者在设计之初也并没有让其匿名的意图。因为所有的交易都存储在区块链上,任何人都是可以查询这些交易的;因此要实现匿名就需要用到混币服务。   因为比特币是去中心化的货币,去除了使用第三方服务的需求;如果大量使用中心化的混币服务,则必然有悖于比特币的初衷。因此用户需要去中心化的混币服务,需要完全控制自己的比特币,来确保自己的比特币不会受到单点失败而丢币的风险。   Nxt的解决方案 在1.7.5版本后,Nxt在其区块链上实现了去中心化的匿名混币服务-CoinShuffle。   其大致流程和原理如下:   用户创建混币器; 具体包括:设定参与人数、混币时间、混币类型(NXT、资产或货币)、混币金额; 等待其它用户参与; 程序自动执行混币,并将资金分发至参与者提供的新账户中; 混币成功结束。   如果混币失败,则所有资金将返回至原来的账户中,不会存在像中心化第三方服务中的跑路问题;但是,如果是因为某个用户没有按照要求提交相应信息而导致混币失败,则该用户会受到处罚,以避免恶意破坏混币。

区块链应用之投票系统

基于区块链的投票系统可以提供更好的透明度和安全性。 纸质投票已经存在了好多年了。全世界的国家都在试图用电子投票系统来替代目前的纸质投票系统。   这种电子投票通常有两种形式。在投票站使用投票机器而不是纸和笔,或者就是在互联网上进行投票。   与传统的纸质投票相比,在投票站使用的电子投票设备(Electronic Voting Machine,EVMs)有很多优势。而且偏于地区的居民也可以参与投票,且可以很快生成投票结果,降低了成本,减少了资源消耗。   印度是在1998年开始使用电子投票设备的,一直沿用至今。印度选择委员会认为这些手提箱大小的投票设备是‘绝对可靠’和’完美的‘。然而,其他人则认为这些设备是不符合标准的。   在印度选举中推广可验证性、透明和问责制的独立论坛VeTA发表声明称电子投票系统容易受到外部黑客和内部人员的篡改。   一个独立的印度研究团队开始调查曾经使用过的一台电子投票机器,而且发现了两种作弊的方式。显示单元可以用假的替代,可以事先编程为预定的候选人多偷一些选票,在选举期间和计票期间,存储的投票数可以用一个装在口袋里的控制器来修改。   “只有投票能被验证和审计时,选举投票结果才可信。发达国家已经拒绝或改良了这些直接记录式的电子投票系统。” —— VeTA   美国也面临着这样的问题。研究者劳伦斯·诺顿和克里斯托弗则认为美国的电子投票系统是有风险的,而且在今年的总体大选中有43个州会使用已经用了10年之久的投票系统设备。根据该研究报告,这些设备基本都到了预期的使用寿命期限。   该研究进行了10个月,采访了超过100位选举官员和50个州的专家。该报告还说,这些过时的设备存在隐患,需要用新科技来解决这些问题。   “在过去的十年中,科技发生了巨变,美国的投票设备很快就过时了。” —— 布伦南司法中心 目前的电子投票设备既没有选项有没有电子投票。而通过互联网进行的投票则存在安全风险,包括网络攻击、过程修改、拒绝服务、欺骗、投票收买、以及对投票人电脑进行病毒攻击等等。   区块链公司正在探索这方面的解决方案,其中一些企业已经提供了最前沿的解决方案。纽约企业V-initiative也在研究基于比特币区块链的开源投票解决方案:”我们的目标是提供完全公正、匿名的电子投票,我们正在重塑数字化时代的民主进程。“   尽管比特币区块链有很多优势,但存在的一个问题是选举工具并不是匿名的,但可以使用假名,这意味着用户的身份信息并不是完全受到保护的。假名、用户ID和IP地址是可以查看到的,也可以被其它用户跟踪到。为了强化隐私,V-initiative采用零币、零知识证明密码学以及IP地址隐藏软件TOR来保护投票者的隐私。   “在投票区块链项目中实施这样的开源代码可以验证每一个注册投票者投票的真实性,而且对投票者来说是完全匿名的。“ —— V-initiative   区块链科技公司(BTC)是另外一家试图取代现有投票系统的企业。“美国的投票设备科技是一个潜在危机”,BTC公司声称要主导“使用区块链作为高科技审计以确保安全、防篡改的选举和投票结果透明可验证以及所有投票都是唯一的。”   “区块链科技让之前很多不可能的事情都变成了可能。当很多人还关注在金融领域的应用时,我们已经将它所拥有的安全性和透明性应用到了选举中。” —— 尼克·斯潘纳斯,区块链科技公司CEO   该公司目前正在美国展示他们的“区块链设备”平台。这个投票平台创建了非金融领域的分布式账本记录,可以定制以满足不同的客户和需求。   “区块链科技的核心就是使用分布式共识来确保信息(数据)的完整,而目前中心化的依靠人的系统则存在腐败、渎职和错误等风险。” —— 区块链科技公司   Nxt的解决方案:   Nxt在其核心软件中也提供了投票系统功能。用户可以根据自己的需求创建投票,支持4种类型的投票:账户、账户余额、资产余额和货币余额。   例如,在是否增加匿名混币功能时,Nxt核心开发者就发布了投票,通过社区的投票来决定是否部署这个核心功能。

混币(Coin Shuffle)

混币(Coin Shuffle)是一个隐私功能,它可以让用户快速高效地与其他用户的资金进行混合,在现有的用户账户和混币后的新账户之间创建随机的映射关系。 该功能是基于TimRuffing在Bitcointalk.org上的描述以及它的学术论文而来的。 概览 该功能是基于NXT区块链而实施的,消除了现存的第三方混币服务中存在的手动步骤和信任问题。客户端钱包提供了用于监控和操作的界面。 可以对NXT、资产以及货币进行混币,混币创建者在创建混币时可以指明混币类型。 任何账户都可以创建混币并指明混币类型、混币数量、参与人数和注册截止日期。 这是通过shufflingCreate API来实现的。接下来的混币步骤可以通过使用shufflingRegister、shufflingProcess和shufflingVerify或shufflingCancel APIs来手动执行。 然而由于混币处理过程的复杂性以及操作时间预测的难度等原因,不可能手动来处理混币。因此,混币是通过一个自动单元“混币器”使用startShuffler API来管理执行的。 一旦启动,混币器就会监控与指定的混币相关交易的区块链状态,而且会代表用户自动提交所需的交易,根据需求执行混币处理、验证或取消。为了实现这些,混币器需要将用户的密码保存在内存中,与锻造时的情况类似。与锻造一样,节点重启或崩溃都需要手动重启混币器。在混币成功完成或取消之后,混币器还会继续运行720个区块,以确保万一出现区块回滚重写(尽管不太可能)时混币仍然是激活的。 每一个节点/混币/参与者都有混币器。单个节点可以运行的混币器的最大数目是100个。 除了混币所需的货币或资产数目外,参与混币还需要至少有1000NXT的押金,如果是混币NXT,则混币金额数目必须要大于1000NXT。 当一个混币成功完成后,参与混币的钱币会添加到接收者账户中以进行发送出去的交易(只能使用新创建的、未使用过的账户作为接收者账户)。如果由于注册参与者没有按照要求参与混币或故意提交错误数据而导致混币失败,那么导致混币失败的参与者将会被处罚1000NXT押金,处罚的押金会分发给混币完成区块的锻造者以及之前3个区块锻造者。如果由于参与人数没有达到要求而导致混币取消,所有人都不会收到处罚,所有的押金都将退还。在测试网络中,押金和处罚金都是7NXT。 混币注册完成后,参与者必须要在100个区块时间段内(测试网络是10个区块)提交处理数据。验证和处罚阶段,所有参与者的时间限制是 100+参与人数 个区块(测试网络是10+参与人数 个区块)。在任何阶段,如果截止时间到后还有参与者没有提交所需的交易数据,混币将会取消,这个参与者将会损失它的1000NXT的押金。这个过程是由混币器处理的。因此注册一个混币后,保证混币器启动、并运行至混币成功完成是很关键的。如果节点重启了,那么之前所有的混币器都需要手动重启。 访问取回目前运行的混币器、混币以及混币参与者的APIs是:getAllShufflings,getAccountShufflings,getAssignedShufflings,getHoldingShufflers,getShufflingParticipants。 如果将nxt.deleteFinishedShufflings属性设置为true(默认是false),那么完成的混币会自动从数据库中删除。 创建一个混币或注册一个混币的费用是1 NXT,混币处理和混币取消的费用是10NXT,验证交易的费用是1NXT。 警告: 混币参与者的接收账户必须是新创建的账户。参与者需要给这个新账户创建很强的额密码,并将其妥善保存好,以备后续之用。如果密码不够强或保存不当,可能会导致你的资金损失。 一当一个账户创建了一个混币或注册成为一个混币参与者,该账户使用的节点必须要保持在线,混币器必须要保持激活。混币器的状态可以使用“My Shufflings”页面来监控。如果你的节点重启了,那么一定要重启与你的账户参与的所有相关的混币器。 【原文】 https://bitbucket.org/JeanLucPicard/nxt/issues/325/coin-shuffling

NXT 锻造解释-By 核心开发者 Riker

Nxt的核心开发者Riker用通俗的语言对Nxt的透明锻造机理进行了解释,如下: Beamy:什么是锻造? Riker:锻造是指在NXT区块链上生成一个新区块的过程。一个区块是是很多交易的集合。每一个区块都由区块锻者的私钥签名。 Beamy:我能锻造到一个区块吗? Riker:当然能,你需要做的就是有一些NXT余额(越多越好),至少1000NXT,然后节点在线运行NXT软件,就可以锻造了。 Beamy:锻造能获得什么? Riker:新区块中的所有交易的交易费将会奖励给这个区块锻造者。从区块621000开始,一些类型的交易费将分发给之前4个区块的生成者,比例为40%,30%,20%,10% 。 Beamy:谁决定下一个区块锻造者? Riker:每一个锻造节点都基于一个简单的算法来计算锻造账户生成下一个区块的时间,其它所有节点在收到新区块时对计算结果进行再次确认,如果与算法不一致,则会拒绝该区块。 Beamy:这个算法的工作原理是什么? Riker:在NXT白皮书中已经解释过了。概括起来,将锻造账户的公钥与之前区块的签名串联起来,生成一个唯一的字符串;再将这个唯一的字符串进行sha256哈希运算,这个哈希结果再乘以账户的有效余额得到一个数值;将这个数值与目标数值相比较来确定锻造者在生成下一个区块之前要等待的时间。时间一到,这个锻造者就能生成下一个区块了。每生成一个区块,这个目标值都会进行调整,以确保平均区块时间为60秒。这个调整优化在621000区块之后才会生效,目前的平均区块时间为90秒,偶尔也会有10分钟的区块间隔。区块621000之后,难度调整代码进行了优化,平均区块时间基本都在60秒,很难出现10分钟的区块了。 Beamy:为什么在找到一个短期目标时间之前我无法对一个区块进行哈希? Riker:是的,不可以,哈希计算不依靠类似比特币中的随机数。每一个账户在每一个区块中只能生成一个哈希。 Beamy:为什么我不能在找到一个含有更好哈希的账户之前来试图再创建一个新的账户呢? Riker:将你的锻造余额分配到多个账户中是没有优势的,你的余额只能在1440个区块之后才能进行锻造,因此将你的余额分配到多个账户中来提高你的锻造几率是没有用的。 Beamy:锻造者会欺诈吗? Riker:在最基本层面上是无法欺诈的,因为当一个锻造者进行欺诈时,例如提前锻造或者将一个未来的时间包含到区块中,这将会导致其他节点拒绝这个新区块,例如看到的“block from the future”之类的日志信息。然而,锻造者仍然可以决定将哪些交易包含或排除在他们新生成的区块中。这会导致使用无用的交易来延迟其他账户的交易,或者改变了区块中交易的次序,或者将他们自己的交易费很高的交易包含在他们的区块中来赚取交易费。 Beamy:如何处理这些操纵? Riker:用无用的交易来填充到区块中是有可能的,但是每个区块的交易限制为256个,目前这个好像误会形成真正的威胁。改变交易的顺序会不获得真正的好处,为了预防锻造者将它们自己高费用的交易包含在自己的区块中,从621000区块开始,我们将这些费用分配给了之前的3个区块锻造者。 Beamy:透明锻造是什么? Riker:因为每一个节点都可以计算出哪个账户是下一个区块的生成者,因此每个节点可以直接将交易发送给下一个区块的锻造者,而不用像通常的那样广播至整个网络。这会使得整个网络的扩展性得到数量级的提升。从1.7系列的客户端开始,我们逐步在实施这个机理,包括要求锻造者至少有1000NXT的有效余额才能锻造。这会更容易地预测出下一个区块的锻造者。 Beamy:我的名字的起源是什么? Riker:第一个答对的这个问题的人会获得1000NXT的奖励。

混币

CoinShuffle(混币)最早是由TimRuffling与2014年4月12日在BitcoinTalk论坛上提出,同时作者也给出了技术白皮书。 后来Nxt开发者借鉴其概念,将其应用于Nxt协议,计划在1.6.X系列的客户端中实施该功能。 综述 该功能基于Nxt协议,可以在Nxt客户端界面中直接使用,同时充分考虑了安全性和易操作性; 混币功能适用于NXT本身和货币系统; 最终的结果是:N个人提交了相同数量的资金,这些资金将最终都分发到他们提供的不同的账号中,而且没有人知道发送者和接收者的账户关系; 实施建议 假定有4个参与者,Alice, Bob, Charlie 和 Dave,使用的账户分别是 A’, B’, C’, D’,但是协议本身允许最多有10个参与者。参与者越多,混币过程越安全。 创建混币 在本例中,Alice是混币的创建者,她提交了一个混币创建交易,提供了她的原始账户、混币币种、混币金额、参与者人数和取消高度。 Bob, Charlie 和 Dave 能够在客户端中看到该混币请求,通过发送混币注册交易提供混币ID和原始账户来参与该混币过程。该协议确保每一个注册的账户都有公钥和要求的余额,用于混币的金额将会从每一个注册人的未确认余额中扣除。如果在到达取消高度之前注册仍未完成,混币将会取消,资金将解冻释放。当参与人数达到Alice指定的数目后,混币开始激活,由Alice启动该过程。 混币过程 Alice通过混币id、她的密码和她的接受账号A’提交了混币处理请求。如果她不是混币受托人,她将会收到错误信息。正如TimRuffing所解释的,节点会收到计算token enc(ekC, enc(ekD, A’)))的请求,并将结果加密token作为一个交易附件广播至其它节点。每一个节点都处理该交易,保存加密数据,并将混币受托人改变为下一个参与者(例如,Bob)。客户端会反应出目前的混币状态,即混币分配给了Bob。 Bob通过混币id、他的密码和他的接收者账户B’提交了一个混币处理请求。收到请求的节点会加载由Alice在之前的交易中生成的token,使用Bob的密码解密token,然后计算enc(ekC, enc(ekD, B’))并添加到enc(ekC, enc(ekD, A’)),混和这两个token并将结果数据作为交易附件提交给其它节点。 类似地,Charlie提交混币处理请求、节点解密enc(ekD, B’), enc(ekD, A’) ,计算enc(ekD, C’) ,混和tokens并提交一个混币处理附件。 最后,Dave提交混币处理请求,节点解密所有地址,添加D’,最后一次混合地址,并通过所有解密地址提交混币处理。 现在混币移动至验证阶段,客户端中也会反应出混币状态。 混币验证和分发 现在参与者验证他们的接受地址包括在混币结果中来确保没有人在作弊。每一个混币参与者通过混币id提交混币验证交易来验证他们的地址是混币的一部分。验证顺序不重要,只要所有的参与者都验证了他们的地址。 一旦所有的参与了发布了混币验证交易,Alice就能提交混币分发交易来按照Dave所提供的混币将资金分发至接收者地址。此时,混币完成,节点可以从数据库中将所有的混币信息清除。 在处理过程完成之前的任何时候,Alice都能提交混币取消请求来取消该过程并将所有资金返回到他们的原始账户中(减去最小费用)。在验证阶段,每一个参与者都可以取消混币。 混币状态在客户端界面中始终是可见的,允许参与者监控该过程。 注意:该功能的本质是没有一个参与者知道原始账号与接收者账号之间的完整关联。即使Dave收到了所有的目标账户也无法将其它参与者的原始账户与目标账户进行关联,因为他不知道Bol和Charlie所执行的混币是什么,外部的观察者就更不可能算出它们的之间的关联了。

数据云

  简介: 该功能允许用户上传最大42K Byte的文件,文件在区块链上保存两周时间,而且文件是可搜索的,任何人都可以查看该文件;两周之后,文件会从区块链中删除,只保留它的hash值以证明该文件存在过。 使用方法: 登陆钱包界面,点击右上角的齿轮按钮, 在打开的下拉框中选择上传文件按钮,会弹出对话框: 输入相应的内容,点击选择文件,上传相应的文件,之后点击上传文件按钮即可; 上传之后其它用户则可以通过搜索来查看到你上传的内容。