在 BTD 存储链的运行过程中,有多种场景会触发 BTD 的销毁机制。第一种:行权智能合约。行权智能合约被触发后,行权方按照 1BTD= (当前全网 HDT 流通总额/当前全网 BTD 流通总额)*1 HDT 将其 BTD 兑换成 HDT。在行权方获得 HDT 的同时,行权方所支付的 BTD 被销毁。第二种:回购销毁。所有获得基金会存储资源和计算资源支持的生态链以及技术合作伙伴,其所获市场收益的 30%用于回购 BTD 后销毁。第三钟:质押销毁。在 BTD 存储链的节点信任度机制启动后,节点可以通过质押 BTD 用于提升信任度。当节点因在线率和/或故障率达不到要求出现违约时,其质押的 BTD 会因惩罚机制而被相应扣除,被扣除的 BTD 则被销毁。基金会将定期公布 BTD 的销毁情况。![]()
BTD的每日产出
BTD分配机制
BTD文件检索和读取
用户对已存储的文件进行检索和内容读取时,根据文件 HASH 标识在 BTD 存储链中进行广播检索,有该 HASH 资源的存储节点收到广播后通知用户,用户验证确认后,根据存储节点的的网络情况,选择网络信道最优的多个节点,同步读取该文件的不同数据分片实现并行下载,取得足够的文件片数后解密从而恢复文件。 5.10 小结 BTD 项目是由分布于全球的存储节点共同组成的分布式存储网络,每个存储节点都对外提供一定的存储容量资源和网络带宽保证从而形成海量和弹性的存储资源池,共同对外提供私密安全的共享存储服务。除了用户自身,包括存储节点以及比特米基金会技术团队在内的任何其他方都无法获得文件内容,保证了 BTD 项目具有非常高等级的私密性; 而全球海量节点的冗余备份,也避免了单节点失效对文件存储服务的影响,从而保证了 BTD 项目具备天然的异地容灾备份能力和数据安全保障能力. 同时 BTD 项目不依赖任何中心服务器,这也意味着任何恶意的单节点攻击都将失效。![]()
恶意用户攻击的发现与处理
恶意用户攻击指存储节点真实完成存储服务后,恶意拒绝支付存储节点所应得的 HDT 激励的行为. 为防止上述攻击,BTD 项目采取了创造性的信任机制进行防范。用户 A 在第一次存文件时其地址信任度为 0(因为其历史上从未成功执行过存储任务),所以该用户即使其申请保存某个巨大文件,但其请求也会被存储节点的智能合约拆分成微小文件,并在微小文件存储任务完成后和用户 A 进行结算,只有结算完成,存储节点获得该部分文件所应得的 HDT 激励后,此时用户 A 信任度才能提升,从而才会自动允许加大存储量,自动继续执行后续任务。因此用户的信任度是必须通过花费 HDT 才能提升。因此恶意用户必须支付前置成本(发起攻击前其地址信任度必须大于 0,从而意味着恶意用户为实施攻击必须支付前置成本),且该成本会随着其试图恶意消耗存储容量的大小而迅速提升造成攻击成本难以承受;此外恶意用户的恶意攻击行为也会在极短时间之内被存储节点所发现,存储节点将删除其已保存的文件,并将此用户列入恶意用户名单,从而可防止恶意用户对存储链产生广泛和实质性影响。![]()
存储服务的验证和恶意存储节点的发现及处理
文件存储
BTD 项目用户进行文件存储时,需要使用 HDT 对 BTD 项目进行驱动。 BTD 项目文件系统使用 BDFS 分布式文件系统作为底层文件系统5.8.1 典型存储过程 BTD 项目用户 A 存文件时,先将所需存储的文件进行分片和冗余加密,并形成文件分片的 Merkle 树,然后向存储链广播相应的分片存储请求消息,内容包含任务序号、文件分片大小、Hash 值,以及所需存储的副本数量、节点向下广播跳数、广播有效期和所支付的 HDT 等相关信息。智能合约核实用户 A 的 HDT 后将其所支付的 HDT 进行冻结,然后广播消息才能对外发送,以防止 HDT 不足的用户浪费存储资源行为的产生。用户 A 在 BTD 项目上的临近节点和路由节点收到该任务广播后,先校验用户 A 的 BTD 项目地址是否真实,以及合约任务所输入的 HDT 是否充足,校验任务真实性后,决定是否响应本次存储任务。如果该临近节点决定执行本任务,则将该信息的广播跳数减 1 后继续向自己的临近节点进行广播。如果临近节点决定不参与执行本任务,则不减广播跳数,直接向临近节点进行广播。节点依次类推进行消息广播,直到跳数减到 0 时截止广播。所有决定参与该任务的节点,都直接与用户 A 建立连接。此时用户 A 将根据响应存储文件的节点个数 N 和所需存储的份数 M,决定下一步操作:如果 N>=M,则智能合约根据节点的响应时间次序和节点存储服务质量加权,选择 M 个节点执行本次存储,由最终所确定和验证存储服务完成的 M 个节点共享用户 A 对本次存储服务所支付的 HDT。如果 N将根据 Hash 值判断已执行而选择忽略本次存储任务,不减广播跳数直接向临近节点广播。依次类推,直到用户 A 的存储任务被完整执行并验证后,同时用户 A 向最终的 M 个节点完全支付本次存储服务所对应的 HDT。无恶意节点情况时,典型存储任务一般在最多 2 次广播内完成。 BTD 项目创造性地使用 HDT 的成功交易作为信任度判断。某个存储服务用户的信任度与该用户地址为存储所花费的 HDT 总数正相关,而某个存储节点的信任度则与该存储节点地址因为提供存储服务而获得的 HDT 总数正相关。因此正常完成的存储任务,在将用户 A 用于存储服务所支付的 HDT 转移到存储节点的同时,既增加了用户 A 的信任度,也增加了存储节点的信任度。![]()
BTD项目的具体实现
BTD的价值
智能合约和系统HDT池
如果将 BTD 项目看作一个虚拟经济体,则随着存储网络规模的持续运行以及执行存储任务, 其产出的 HDT 积分总和代表了虚拟经济体的总经济规模。另一方面,作为整个 BTD 项目价值承载体系的 BTD 而言,其产出的 BTD 代表了虚拟经济体的总交换价值。因此可以认为在任意时刻,当前已流通 BTD 总价值 = 所有已流通的 HDT 总价值+ BTD 流通性溢价。如果 BTD 流通性溢价>0,在任意时刻,可以认为: 1 BTD >= ( 系统当前流通 HDT 总量/系统当前流通 BTD 总量) * 1 HDT 。因此,BTD 项目通过链上智能合约赋予用户使用 BTD 兑换 HDT 的权利,但兑换用户只能将所兑换的 HDT 用于驱动存储服务。智能合约:1 BTD= ( 系统当前流通 HDT 总量/系统当前流通 BTD 总量) * 1 HDT 。智能合约通过合约形式进一步确定了 BTD 的内在价值和行权权利。 BTD 持有者可自行评估是否使用,以及何时使用该项权利。为保障该智能合约的执行, BTD 项目设立系统 HDT 池。每日系统新增 HDT 总量=全网节点新增 HDT+系统池新增 HDT。系统池新增 HDT = 全网节点新增 HDT* 系统池占比。系统池占比取值 5%- 20%。智能合约的执行:用户地址向智能合约地址打入 BTD,智能合约按照对应比例向用户地址打入 HDT。智能合约被执行后,相当于对应的 BTD 已完成了行权,这一部分 BTD 将永久锁定在系统池智能合约地址被销毁,不再参与流通。除用于保障 BTD 智能合约执行,HDT 池还用于支持基于 BTD 存储链的 dApp 业务。在计算节点 HDT 对全网的贡献比例时,系统 HDT 池余额不参与计算。当系统 HDT 池出现不足时,智能合约会延期执行,并会调整 BTD 产出算法中的当日存力占比、历史存力占比、未来发展占比等参数,并在满足智能合约执行条件后继续执行智能合约。![]()
