(区块链)Amoveo - How to

注: #

  • Amoveo p2p衍生品,预测市场和DEX功能齐全。如果你现在尝试,你就是无信任的p2p衍生品交易的早期使用者。目前还没有很多用户。 - 加入 amoveo Telegram 频道讨论: https://t.me/amoveo
  • 本页大部分内容来自: https://github.com/zack-bitcoin/amoveo-docs <- 访问此页面了解更多信息

作者:扎克-赫斯, Zack Hess

为amoveo选择钱包 #

  1. 使用git的离线版本。这是运行轻节点的最安全的方式。

    1. 安装git
    2. 打开命令行界面(对于windows,它是cmd或powershell,对于苹果操作系统或linux,它是终端)。
    3. 选择一个文件夹来保存灯轻节点文件
      • cd(该文件夹的路径) 按enter键
    4. 下载文件的命令。
      • git clone https://github.com/zack-bitcoin/light-node-amoveo.git
    5. 用浏览器打开这个文件,然后把这个页面添加到浏览器的书签栏中。
      • ./light-node-amoveo/src/js/home.html
    6. 升级到最新版本的命令
      • 打开命令行界面 (CMD)
      • 转到灯轻节点的文件夹
        1. cd ./light-node-amoveo (输入该文件夹的完整路径)
        2. git pull
  2. 使用zip离线版本。这也是最安全的运行light node的方式。升级不如使用git方便。

    1. 或者你可以从这里下载一个压缩文件,将轻节点放到你自己的电脑上。解压缩
    2. 用你的浏览器打开这个文件,并将这个页面添加到你的浏览器的书签栏中。
      • ./light-node-amoveo/src/js/home.html
  3. 服务器版本。最简单,不需要下载任何东西

  4. Amoveo钱包由exan.tech开发。对用户更友好,但功能少得多

  5. 注:

    • p2p衍生工具是Amoveo的浏览器轻节点所支持的功能
    • 你也可以用手机上的浏览器来使用轻节点

如何进行P2P衍生品交易– #

例子 #

  1. 如果有一场足球比赛,爱丽丝可以发布一个offer,在A队身上投注100美元。

    • 然后任何人都可以接受这个offer,并做一个tx,用他们自己的100美元锁定爱丽丝的100美元,这样他们就和爱丽丝一起在一个新的通道里对足球比赛的结果进行投注。
  2. 如果鲍勃认为VEO的价格会上涨,他可以在Amoveo上卖出稳定币,这将给他long-veo。(long=多)

    • 一种具有较高杠杆的资产,所以鲍勃可以更多的接触到Veo价格风险。

    • 如果Veo的价格上涨10%,Bob的合同价值增加20%。如果Veo的价格下降20%,Bob的合同价值下降40%。

智能合约–所有步骤的描述 #

  1. 我们需要一些问题作为赌注。
    • 我们可以在新的预言机(oracle)页面来选择新的主题来进行投注。
      • 二进制预言机(Binary Oracle)用于真/假问题。
      • 标量预言机(Scalar oracles)可以用于判断价格,或某个范围内的其他值。
    • 如何创建好的预言机(oracle)
    • 一旦你创建了预言机(oracle),你将收到预言机(oracle)ID。
    • 这个可以让智能合约知道哪个预言机(oracle)将决定谁得到钱。
  2. 有人为一个新的智能合约创建了一个Offer(报价)。
  3. 有人接受了智能合约的提议。
    • 这个页面可以用来接受一个智能合约的报价。
  4. 事件发生。
    • 现在我们知道谁赢得了足球比赛或选举,或任何我们正在投注的东西。
  5. 我们关闭智能合约,把我们的钱取出。
    • 这个页面可以用来关闭通道。
    • 如果两个参与者一起工作,关闭通道只需要1个区块。
    • 如果有一个参与者拒绝合作,那么你就必须等待预言机(oracle)结算,并返回otc_finisher.html页面几次,才能彻底把钱取出来。

Amoveo跨链去中心化交易所(DEX) #

  1. 首先,加入Amoveo DEX电报组,讨论和发布买卖报价:https://t.me/joinchat/Hf0n-acs4mcSVHdw
  2. 使用下面的钱包链接创建一个Amoveo钱包。打开链接,点击 “生成新账户”,将文件保存在你能记住的地方。
    • 当你以后回到这个链接时,你需要用 “选择文件 “按钮选择这个文件,以便能够使用你的钱包。
    • http://159.89.87.58:8080/wallet.html <- 将此链接添加到书签栏中
  3. 你需要少量的VEO来开始使用。从这里获得:qtrade
  4. 一旦你获得了一些VEO,你就可以使用DEX。
    • 打开钱包链接,选择你账户的文件,然后找到 “crosschain DEX “标签。

如何使用DEX购买VEO? #

  1. i.点击"crosschain DEX buy veo"标签,点击refresh available actions(刷新可用动作)按钮。
  2. ii.如果有人出售VEO,会有一个按钮,看起来就像下面这样。如果没有人出售VEO,你可以在telegram聊天中提出WTB报价,并等待有人提出出售VEO的报价,然后报价会像下面这样,你可以继续按照这些说明进行操作。他们提出用1.00000000 VEO换取0.0014 BTC,地址为12V8QeUULY93uxAfDaUKPVXXRNPfkTXiQT;钱必须在2021年2月18日15:52 GMT之前到达;报价在130块后到期。
  3. iii.这意味着,如果你点击该按钮,你就接受了一项交易,即你用0.0014个BTC换取1个VEO+你支付的少量保证金(将被退回)。
  4. iv.一旦你接受了这项交易,你会在钱包的顶部看到 “Unconfirmed balance”(未确认的余额)。这是你的保证金。
  5. v.一旦你的保证金在1个Amoveo区块后被确认,你需要发送0.0014 BTC到地址12V8QeUULY93uxAfDaUKPVXXRNPfkTXiQT。
  6. vi.你需要确保BTC在2021年2月18日15:52 GMT之前到达那里(即在一个比特币区块中)。
  7. vii.回到钱包,并导航到跨链DEX标签。点击 “refresh available actions”(刷新可用行动)按钮。
  8. iix.在底部,你应该看到一个按钮,上面写着 “you have already delivered the coins on the other blockchain”(你已经在其他区块链上交付了币)。按下它。你现在可以下线了。
  9. ix.这样就完成了交易,你应该在几分钟到一个小时内收到你的VEO。

如何使用DEX销售VEO? #

  1. i.点击 “crosschain DEX sell veo"标签,你将看到 “Make Trade Offer”(提出交易Offer) “部分的字段。
  2. ii.有一个预先填充的例子,提出以100,000 DOGE的价格出售1个VEO。
  3. iii.用你想要的东西替换这些字段,然后点击 make crosschain trade offer(提出跨链交易报价) “按钮。你现在可以下线了。如果你看到钱币已经交付,交易就结束了。如果您想赚回一点VEO以换取帮助对方完成交易,或者您从未在其他区块链上收到过币,您可以选择完成以下步骤。

(可选)我没有收到我的币 #

  • iv.回到 “Crosschain DEX “标签,点击 “刷新可用行动”。
  • v. 如果您在另一个区块链上收到了币,请点击 “you have already been paid”(您已经收到了)按钮。这将为您的交易反方完成交易,作为奖励,您将获得0.5%的VEO回报。
  • vi.如果你在另一个区块链上没有收到币,点击 “you have not been paid, and they ran out of time”(你没有被支付,他们没有时间了)按钮。 你现在可以下线了。你会收回你的VEO,加上交易对像的保证金。

疑惑? #

市场 #

  • 要参与市场,首先你需要建一个通道
  • 你需要等到new_channel tx被包含在一个区块中,才能进行任何投注。
  • 你需要下载所有的headers,然后才能在市场上进行任何投注。
  • 如果你的价格是25,而你的赌注是1,那么你最多可以赢3,最多可以输1。
  • 如果你的价格是75,你下注3,那么你最多可以输3,最多可以赢1。
  • 价格与百分比赔率相同。
  • 当你的投注被成功接受时,“投注金额"会消失。

创建通道(Channel) #

  • 确保该通道将保持足够长的开放时间,以便你能参与到你感兴趣的市场中。
  • 通道延迟需要达到100或更大。
  • 确保每次更新时保存你的通道状态。
    • 可以信任地从服务器下载通道状态,但信任是不好的。
    • 我们试图制造不依赖信任(trust-free)的技术。

词汇表 #

接受通道报价(Channer Offer) #

  • 假设鲍勃对一场足球比赛的结果做了一个赌注,他把它发布在网上。现在你想接受赌局的另一方。你需要做什么?
    • 以Bob在网上发布的原始合同数据,使用轻节点的otc_listener.html页面,在这里
    • 当你从Bob那里复制/粘贴原始合同数据,或将文件上传到otc_listener,在你选择接受之前,它将允许你从轻节点内部查看合同的细节。
    • 这样,攻击者就不可能欺骗你接受一个你不想接受的合同。

预言机(oracle) #

  • 预言机(oracle)是一种链上机制,旨在让用户向区块链准确报告信息。

Oracle ID #

  • Oracle ID或OID是一个简短的二进制值,用于识别一个Oracle。二元和标量的预言机(oracle)都有OID。如果你想创建一个引用预言机(oracle)的合同,你需要将该预言机(oracle)的OID写进合同。
  • 当我们想复制/粘贴OID时,我们经常将其编码为base64。例如abQmqMdgpas0zRpAji1DShVFD7kauQrCrZJJC6005c4=
  • OID是由预言机(oracle)被问到的问题,以及解决过程将开始的高度唯一地定义。这样,我们能够在预言机(oracle)创建之前使用一个OID。

预言机(oracle)问题 #

  • 人们会阅读预言机问题,以决定如何向区块链报告信息。

    1. 二元预言机(oracle)问题示例:“唐纳德-特朗普当选为第二任总统。““2019年3月2日,纽约的最高温度将低于25摄氏度。”
    2. 标量预言机(oracle)问题的例子:“2019年3月2日,VEO的美元价格从0到0.05。““2019年3月2日,BTC在VEO中的价格从0到130。““2019年3月2日,BTC在美元中的价格从0到10 000”。
  • 如果你想建一个稳定币,重要的是一定要问 “X的VEO价格”。不要要求 “以X为单位的VEO价格”,否则该合同将不能作为稳定币使用。

  • otc_derivatives页面可以从预言机(oracle)中自动填充预言机(oracle)的上限,如果你的预言机(oracle)格式正确的话。otc_derivatives搜索单词 “from”,然后搜索单词 “to”,它假定显示的下一个数字是预言机(oracle)可以测量的上限。因此,如果你打算将其用于稳定币,那么使用substring(子串) “从0到 “是不错的选择。

预言机(oracle)开始 #

  • 这是人们可以开始向预言机(oracle)机制报告的最早的日期。它是由区块高度来衡量的。
  • 如果你想赌一场足球比赛,你应该找出一个你确定比赛结果的日期和时间。计算出当时的Amoveo区块高度。
  • 例如,目前每天有130个区块,我们的区块高度是55000。因此,在3天后,我们将在区块55390。因此,如果我想在一场足球比赛上下注,而我确信这场比赛将在3天内结束,那么我应该使用 “55390 “作为oracle starts变量。

预言机(oracle)类型 #

  • Amoveo中有2种基本的预言机(oracle),标量和二元。

二元预言机 (Binary oracle) #

  • 预言机(oracle)是一种链上机制,旨在让用户准确地向区块链报告信息。二元预言机(oracle)是用于区块链想要找出真/假问题的答案的时候。
  • 如果你想赌谁会赢得一场足球比赛,你需要将投注合同与预言机(oracle)连接起来。这样,合同就会知道谁赢了赌注,所以它就会知道把钱给谁。
  • 这里有一个页面,你可以向oracle提出新的问题http://159.89.87.58:8080/new%5Foracle.html

标量预言机(Scalar Oracle) #

  • 预言机(oracle)是一种链上机制,旨在让用户准确地向blokchain报告信息。标量预言机(oracle)是用于区块链想要找出一个数值的时候。
  • 如果你想制作一个与欧元保持相同价值的稳定币,你将需要把稳定币合约连接到一个标量预言机(oracle),该预言机(oracle)正在测量欧元在Veo的价格。这样一来,合约就会知道如何分配Veo来正确执行稳定币合约。
  • 这里有一个页面,你可以向oracle提出新的问题http://159.89.87.58:8080/new%5Foracle.html

二元投注 (Binary Bet) #

  • 二元赌注是指双方中的一方最终赢得合同中的所有资金。要订立二元合约,你需要连接到二元预言机(oracle)。
  • 注意,标量预言机(oracle)的10位中的每一位实际上都是二进制预言机(oracle),所以不要在标量预言机(oracle)的第一位上打赌,以为它是二进制预言机(oracle)。

标量投注 (Scalar Bet) #

  • 标量赌注是指合同中的钱根据预言机(oracle)测量的10位数值在两个参与者之间进行分配。标量预言机(oracle)可以返回0到1023之间的任何数字。
  • 在标量赌注中,钱会根据预言机(oracle)返回的数字而被分割。
  • 对于标量赌注,你需要使用标量预言机(oracle)。二元预言机(oracle)将不起作用。

稳定币投注 #

  • 稳定币赌注是标量赌注的一种。不同的是,otc_derivatives上的界面是为制作稳定币类型的合约而优化的。
  • BTC稳定币合约是一种资产,其价值保持在BTC不变。如果通道中的一个参与者有稳定币,这意味着另一个参与者有额外的VEO风险。
  • 要使用稳定币赌注,必须与标量类型的预言机(oracle)相连,预言机(oracle)必须问 “X的VEO价格是多少。“你不能问 “VEO的X价格是多少”,因为这对稳定币不起作用。

稳定币目前的价值 #

  • 在otc_derivatives中,如果你想建一个稳定币合约,你被要求证明 “当前价值”(Current Value)。
  • 例如,如果预言机(oracle)问的是 “BTC的VEO格是多少?",而它在1个月内不会过期,那么我们无法预测预言机(oracle)在1个月内会解决什么。但我们确实知道BTC在VEO中的当前价格。这个当前价格就是你需要在合同中提供的 “当前价值”。
  • 例如,如果BTC价值4000美元,而VEO价值80美元,那么当前价值将是50。

稳定币的杠杆(leverage) #

  • 当你做一个稳定币合约时,你被要求提供一个叫做 “杠杆 “的数值。这是一个必须大于1的数字。
  • 例如,如果我买了一个与BTC相连的稳定币合约,杠杆为1,而BTC的价格在我的合约有效期内增加了10%,那么我这边的合约到最后就会多出10%的价值。
  • 如果我买了一个与BTC相连的稳定币合约,杠杆为3,而BTC的价格在合约有效期内上涨了10%,那么我这边的合约到最后会多值30%。
  • 杠杆和margin是紧密相连的。Margin 低于只有一方能控制合同中所有veo的价格。如果你增加杠杆,Margin必然会变得更小。

抵押品 #

  • 每个合同都是通过锁定一些veo来执行的。
  • 假设我们制定了一份价值50美元的稳定币合同。为了使某人拥有这50美元,该合同需要至少有价值50美元的veo被锁定在其中。如果veo/美元的价格下跌,那么最终锁定在合同中的veo的价值可能会低于50美元,稳定币的价值也会低于美元。
  • 为了保护稳定币的价值,我们需要在合同中锁定超过50美元的veo,以防veo的价格在合同结束前下跌。
  • 如果我们在合同中锁定75美元的veo,那么合同的抵押率为150%。 因为75/50=1.5
  • 如果我们在合同中锁定110美元的veo,那么它的抵押率是220%,因为110/50=2.2
  • 稳定币的抵押与反稳定币(inverse-stablecoin)的杠杆有关。更高的抵押意味着更低的杠杆。

衍生品支付 #

  • 当你在otc_derivatives页面创建衍生品时,你需要说你为这个合同支付或被支付多少钱。
  • 例如,我想让我的VEO资产迅速翻倍。为了说服许多人立即向我出售他们的VEO风险,我提出向他们支付5%的溢价。因此,如果他们从我这里购买100美元的稳定币,并持有一个月,他们在月底将拥有105美元。
  • 要做到这一点,我需要告诉otc_derivatives页面,将100美元的veo锁定在稳定币合约中,并保持直接支付5美元给对方。
  • otc_derivatives工具将付款与智能合约原子化合并,所以你们都没有任何风险。
  • 如果你想支付某人与你签订合同,这个数值应该是正数。如果你想获得报酬来与某人签订合同,那么你应该使这个数字为负数。

发信信用点(Messenger Credits) #

  • 如果你想通过Amoveo信使服务器发送加密信息,你需要购买信用点。
  • 如果你用完了,你的轻节点会自动购买更多的点数。
  • 你需要等待下一个区块的开采,然后才能收到点数。

用户故事 #

  • 不同的人对Amoveo的轻节点有不同的使用过程。

流动性的农民进程 #

  • 获得市场所需的2种货币
  • 将它们存入市场,以获得流动资金份额
  • 等待
  • 用你的流动资金份额换取你所赚取的2种货币+交易费。

大批量标准化市场中的交易员 流程 #

  • 将veo换成代表你想做的赌注的子货币(subcurrency)。
  • 后来卖出你的子货币,希望能以更高的价格卖出。或者如果你赢了赌注,就提取你的赢利。

销售定制的订制合同 #

  • 使用ID生成器知道代表你想拥有的合同的货币的ID,生成ID。
  • 使用该ID进行交换报价,你将购买你想要的东西。
  • 有人接受交换offer,接受你的定制合同的另一方,这也是在链上创建合同。

新的市场创造者过程 #

  • 如果合同还不存在,那么使用new_contract工具来指定合同中的钱应该如何在子货币(subcurrency)之间分配。
  • 使用set_buy工具从合约中获取不同口味的子货币(subcurrency),这代表参与合约的不同方面。
  • 使用new_market工具创建市场,并将初始资金存入市场。

市场解决程序 #

  • 使用oracle_bet工具对oracle的结果做一个报告。
  • 等待足够的时间让预言机(oracle)变得可解决。
  • 使用oracle_close工具来最终确定预言机(oracle)的结果。
  • 使用contract_resolve工具,这样智能合约将从预言机(oracle)中读取,并决定如何在它的子货币(subcurrency)之间分配它的价值。

使用Oracle #

二元预言机(oracle): 特朗普赢得了2020年大选

标量预言机(oracle),做一个与美元走势相同的资产。 P = 2019年1月1日格林尼治标准时间上午5点,美元在VEO的价格从0到0.05;返回P * 1024 / 0.05 在制作标量预言机(oracle)时,你必须选择一个可以测量的数值范围,这是因为一个标量预言机(oracle)实际上是10个二元预言机(oracle),每个预言机(oracle)提供一个比特的标量值。所以一个标量预言机(oracle)只能测量0到1023的整数值。你需要选择一个好的范围来测量,这样的话,对于预期输出的范围来说,可以测量的2个值之间的差异就会很小。例如,如果预言机(oracle)被设置为测量从0到0.05,而测量的值是0.00025,那么这意味着标量在内部使用的是二进制值00000101 这与相邻的2个值00000100和00000110有20%的差异。2个相邻的可测量值之间有20%的差异不是很好,这意味着平均来说,预言机(oracle)的输出被四舍五入了,所以钱的分配会比预期的要差5%。因此,这就是为什么在创建预言机(oracle)时选择一个好的测量值范围是很重要的。

一个稳定币的标量预言机(oracle),保持与欧元相同的价值。 P在D日以VEO表示的欧元价格,从0到0.04;返回P*1023 / 0.04

标量预言机(oracle),做一个与亚马逊股票成反比的资产。 P = 2019年1月1日格林尼治标准时间凌晨4点,亚马逊的价格,从0到20,以veo为单位;返回(20 - P)* 1024 / 20

标量预言机(oracle)来预测天气。 P = 根据本网站https://www.timeanddate.com/weather/canada/vancouver/historic,2019年4月23日中午温哥华的温度从-10到50摄氏度;返回(P+10)*1024 / 60。 如果我愿意支付0.5美元做多,这意味着只要温度高于20摄氏度,我就会获利。如果我愿意支付0.2美元做空,这意味着只要温度低于4摄氏度,我就会获利。

具有自由选择保护功能的标量预言机(oracle)。 P1 = 2019年12月3日格林尼治标准时间上午5点时美元在VEO的价格;P2 = 2019年1月1日格林尼治标准时间上午5点时美元在VEO的价格;返回min(1023, 512 (1 + ((P2 - P1) / P1))

带有BTC对冲的标量预言机(oracle)。 P = 2019年1月1日格林尼治标准时间上午5点,BTC在VEO的价格从0到200;如果特朗普赢得2020年大选,则返回0,否则返回P。 例如,对货币进行对冲的赌注:假设你想做多一些以南非货币(ZAR)交易的非洲股票,但你不想有VEO价格风险,所以基本上,你做的是,同时做空VEO和做多南非股票,使用一个预言机(oracle)。“以VEO衡量的股票X的价格是多少,从0到50?” 例如,假设股票上涨了10%,但veo同时下跌了10%,这意味着你在维奥的回报是1.1*1.1-1倍于你开始投注的维奥金额。

或者说,以VEO术语来说,增加了20%。

因此,尽管VEO的价格下跌,你的合成头寸与股票的回报完全吻合。 标量预言机(oracle),使一种资产与亚马逊的股份成反比运动,并有front running保护。

P0 =
  2019年1月1日格林尼治标准时间上午7点亚马逊的价格;\\
  P2 = P0 * 2;\\
  P = 2019年2月1日格林尼治标准时间上午1点亚马逊的价格;\\
  Z = min(P2,max(0,P2 - P));\\
  round(Z*1024 / P2)\\

与BSV/USD成反比运动的标量预言机(oracle)

veo价格来源。https://coinpaprika.com/coin/veo-amoveo/#!历史数据上的收盘价\\
bsv价格来源;https://coinpaprika.com/coin/bsv-bitcoin-sv/#!历史数据上的收盘价\\
最终日期:2019年9月23日;\\
起始日期:2019年9月16日;\\
fV=每个veo的最终美元数;\\
sV=每个veo的起始美元数;\\
fB=每个bsv的最终美元数;\\
sB=每个bsv的起始美元数;\\
返回512*(2-(fB/sB))/(fV/sV\\

使用DAC(主导保证合同/Dominant assurance contract) #

  • 假设鲍勃想得到报酬去写一本书。那么鲍勃应该打一个赌,赌这本书会被写出来,这样,如果他写了这本书,他就会获利。
  • 通常情况下,鲍勃在合同中投入的资金比他的客户少。鲍勃可能损失的钱只应该是补偿一个小的利息,补偿他的客户无法使用这些钱的时间。

使用治理(Governance, Futarchy) #

在更新治理变量之前,我们需要创建futarchy市场,这样社区就可以就应该做哪些更新达成共识。 预言机(oracle)是一种报告机制,它不是用来达成共识的。如果你试图用它来达成共识,这就像一场鸡的游戏,对网络是不利的。

Amoveo的基本治理理念叫做futarchy。如果你能证明某项决定对VEO的价格有好处,那么社区就会做出这个决定。

例如,你可以从制定二元合同开始:“硬更新X在区块高度H之前被合并?”

因此,“真 “股份只有在我们合并时才有价值,而 “假 “股份只有在我们不合并时才有价值。让我们把它们称为T和F。

接下来,我们用这些种类的每一种股票作为源货币,来创建相对于一些稳定资产的veo价格的市场。所以现在又有4种货币。

  • TV,价值是long-veo,但前提是我们要合并更新。
  • TB,它的价值是稳定的btc,但前提是我们要合并更新。
  • FV,价值是long-veo,但前提是我们不能合并更新。
  • FB,它的价值是稳定的btc,但前提是我们不合并更新。

因此,我们有2个重要的市场。市场1有2种货币。T和TV。因此,市场1的价格,它显示了在我们合并硬更新的条件下,long-veo的价格会是什么。

市场2有2种货币。F和FV。因此,市场2的价格,它显示了在我们不合并硬性更新的条件下,long-veo的价格会是什么。

通过比较市场1和市场2的价格,我们可以知道,相对于稳定的货币,这种硬更新将对veo的价格产生积极或消极的影响。

任何有共同目标的群体都可以使用这种技术。他们可以向预言机(oracle)询问,在他们使用哪种策略的条件下,他们的目标在一年后会得到多大程度的满足。因此,任何社区都可以发现哪种策略对他们来说是最有效的。

更多关于Futarchy的信息,请点击这里