zoukankan      html  css  js  c++  java
  • 去中心化市场OpenBazaar中的信任是如何建立的

    OpenBazaar中的信任是通过两种协同系统处理的:全局信任和投影信任。当网络中的所有成员都以同样的方式相信网络中的特定用户时,就是全局信任。这种信任是通过燃烧证明和时间锁证明建立起来的。投影信任是指向某个节点的信任,对网络中的每个用户可能都不同,所以它是从每个用户投影到节点上的。这种信任是通过一个匿名的部分知识信任网络建立起来的。

    下面来看看这些方法的详细情况。

    方法1:燃烧证明

    卖家必须消耗比特币来创建店铺,这些比特币是不可退回的。所以用户创建多个身份标识的成本很高,这是OpenBazaar中抵御女巫攻击的基本方法。尽管这不完美,但还是有威慑作用的。燃烧证明越大,创建账号的成本越高,但潜在用户的进入门槛也变高了。公开并可验证地燃烧一定额度的“货币”是在剩余额度上的速遣费(remurrage)。速遣费跟滞期费(demurrage,因为持有“货币”的时间超出给定时段而产生的开支)是相对的。假设你在家里,用笔记本电脑创建了一个有1000万额度的“货币”,人们马上开始用它交易。当你出去走了一圈回来后,就只剩下500万,其他的都被烧了。如果你持有该“货币”,不管额度多少,就相当于在比特币这样额度固定的“货币”上以常规经济追踪价格拿到了想要的股份。

    dapp首先从节点的GUID直接生成一个燃烧地址:

    def burnaddr_from_guid(guid_hex):

        _log.debug("burnaddr_from_guid: %s", guid_hex)

        prefix = '6f' if TESTNET else '00'

        guid_full_hex = prefix + guid_hex

        _log.debug("GUID address on bitcoin net: %s", guid_full_hex)

        # 扰乱GUID,通过翻转地址的最后一个非校验位来防止SHA256的近似碰撞,

        # 确保不可消费性

        guid_full = guid_full_hex.decode('hex')

        guid_prt = guid_full[:-1] + chr(ord(guid_full[-1]) ^ 1)

        addr_prt = obelisk.bitcoin.EncodeBase58Check(guid_prt)

        _log.debug("Perturbated bitcoin proof-of-burn address: %s", addr_prt)

        return addr_prt

    那里只是GUID上的一个简单交易。所有节点都可以在GUID十六进制上执行同一个burnadd_from_guid函数来验证某个GUID已经烧了“货币”(燃烧证明),并在区块链上验证它烧的额度。

  • 相关阅读:
    lxml库之xpath的使用
    简单使用三层架构完成学生管理系统之增加功能
    mybatis——逆向工程以及案例
    Java——mybatis(使用mybatis对mysql数据库进行增删改查的操作)
    linux运维、架构之路-K8s故障排查
    linux运维、架构之路-管理K8s组件日志
    linux运维、架构之路-k8s监控集群资源利用率
    linux运维、架构之路-k8s部署redis
    linux运维、架构之路-kubernetes集群维护
    linux运维、架构之路-kubeadm快速部署kubernetes集群
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13312780.html
Copyright © 2011-2022 走看看