未来币混币功能全解,一种去中心化的匿名隐私服务
时间:2016-01-26 来源:NxtChina 作者:NxtChina
混币(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”页面来监控。如果你的节点重启了,那么一定要重启与你的账户参与的所有相关的混币器。 |