智能坊:白皮书更新
分布式自治系统运行环境白皮书
DACRS: Distributed AutonomousCorporations Runtime System
2015年4月14日更新
摘要
比特币等加密电子货币已然成为当今国际市场最热的支付方式。去中心化,低成本的特性使加密电子货币的发展势不可挡。但随着行业的发展,比特币已无法满足人们多样的支付需求,各式各样的二代币(如比特股、域名币、未来币等)顺应而生。但每一币种对应一项新功能,导致二代币滥发,碎片化。
分布式自治系统运行环境针对电子币碎片化问题进行开发设计。本文将对分布式自治系统运行环境的运作模式,技术原理,实施细节等内容进行介绍。同时对部分实际应用进行描述,以展示其强大的支付应用功能及巨大的潜力。
1 引言
比特币2.0概念已然成为现今的热点话题。全世界每天都有新的币种发布,而实际存活比例却极其之小。每一个币种发布,都宣称自己又实现了某些功能。本来只是为满足比特币未能实现的去中心化应用而生的各种二代币,却导致了电子货币的泛滥。每一项应用,都能找到对应的一种甚至多种电子货币。针对此问题,智能坊开发设计的分布式自治系统运行环境(DACRS:Distributed Autonomous CorporationsRuntime System)为开发者打造DAC基础运行环境,开发者只需把精力放在实现新功能的核心逻辑,即可实现传统DAC具备的功能。DACRS中,不同DAC之间可以互通数据, 资产可以通过系统相互兑换,彻底解决跨链交易、系统碎片化问题。
2 简介
分布式自治系统运行环境(DACRS:DistributedAutonomous Corporations Runtime System)是一个运行于网络里的P2P应用平台,为开发者提供基础设施(P2P网络、签名校验、Block数据回滚、用户数据库回滚、权限校验等)。
在DACRS中,每一个应用即相当于一个传统DAC[1](分布式自治公司),可以实现DAC的绝大多数功能,而这类型的“公司”的运作将以脚本的形式实现。通过这种模式,开发工作大为简化,开发者只需专注于核心逻辑的实现,节省大量的资源,更快的完成DAC的设计开发。
2.1 虚拟机
DACRS虚拟一完整的8051处理器(RAM 64K, ROM64K)。
应用通过API可读取DACRS全部信息、读写应用私有数据库、修改系统账户(需通过DACRS的权限检查)
C/C++代码使用现存Keil 或 IAR for8051 编译即可。
2.2智能币
DACRS系统发行的一种虚拟货币,用来调节系统交易数量(防止洪水攻击)和合约step数,防止开发者滥用资源。其作用还类似于ripple系统中的ripple币,可以被用作为系统中各种应用交换资产的媒介。
2.3 注册应用
通过DACRS,开发者可以通过开发注册各种应用以实现各种金融和非金融需求。
开发者用C/C++开发各种应用,将执行代码注册到DACRS中,DACRS为应用分配:私有数据库、虚拟机、应用账户。
2.4 账户
2.4.1 合约账户
系统为每个合约自动分配账户,运行合约时,应用合约账户拥有最高权限。一般作为中间账户存在(类似一个担保中介的账户)。
2.4.2 用户账户
所有在系统中注册的用户都会生成用户账户。用户账户里存储有用户公钥,对应用授权信息等,所有操作都需要校验签名,应用无权对用户账户进行减操作。
2.5 交易类型
2.5.1 系统交易
系统交易主要包括直接转账,注册应用,授权等等。系统交易为DACRS基础交易功能,主要用于支持系统基础支付交易,与用户自定义应用没有太大关系。
2.5.2 自定义应用交易
与应用直接相关的交易称为自定义应用交易。进行此类交易时,发出交易包中含:应用编号及黑盒数据。DACRS并不解析黑盒数据,而是直接传给应用虚拟机运行。
黑盒数据可以是交易参与方根据不同应用需求,就合同内容、执行条件等达成一致后签名组成的数据包。DACRS收到交易包后,由应用对应的虚拟机自动执行。
虚拟机在执行应用代码时,可以修改私有数据库内容、输出指令以修改系统账户(需通过权限检查),从而完成各种功能。整个执行过程无需依赖第三方。
2.7 开放平台
DACRS为平台开放,任何用户均可开发应用,开发拓展系统功能,并从中获取一定的利益。
开发者通过DACRS平台可实现去中心化彩票,担保交易,交易仲裁等多样,灵活的实际应用,使得交易支付、合约执行、信誉解决更为简单,便捷和强大。
3 技术相关
3.1 安全机制
前期采用权益证明(Proof of Stake)机制,后期可能改用DPOS算法保障安全。
3.2 关于匿名
本系统通过专用应用可以实现与暗黑币类似的匿名发送(DarkSend)功能,默认交易和比特币一样可以追根溯源,并不刻意追求匿名。
3.3 区块大小
普通交易压缩在110字节左右(比特币交易平均700字节),一次合约交易只给区块(block)增加10字节左右的负担。
相同交易量情况下,区块尺寸(blockchain size)大约只有比特币的 1/4左右。
3.4 防止滥用资源
应用长时间没有用户运行,分配的数据库和虚拟机会强制回收。
应用交易在应用虚拟机运行都是需要根据运行step支付燃料费,燃料不够将会被强制退出。
应用私有数据库数据,根据存储字节数存储时间支付燃料费,DACRS系统将自动删除过期数据,回收资源。
4 支付类应用举例
4.1 担保交易应用
担保交易是指,在电子商务交易中,买方要求卖方抵押一定金额到担保账户中,且买方有权在卖方违约时,取消担保账户的赎回权并收回抵押资金。买卖双方关系条款以合同或协议形式体现。
担保交易的核心是纠纷解决机制。传统如PayPal、支付宝,交易纠纷的解决,是通过官方客服人员根据双方提供的证据判断裁决的方式进行。而DACRS则是通过分布式裁决来解决纠纷问题。
4.1.1 担保交易相关定义
l 分布式裁决
任何人都可以在DACRS系统中注册为仲裁人,参与纠纷解决,并收取一定的费用。仲裁人所参与的裁决,其结果和用户评价都会记录在数据总账中,并对外公开。
l 仲裁人裁决依据
传统的担保交易裁决依据主要由保存在官方服务器里买卖双方的聊天记录,及第三方快递单号等一些“证据”组成,官方客服人员在收到用户申请后,根据得到的证据进行判断。
而在分户式系统中买卖参与方通过聊天工具进行交流,发出的每一条信息均用钱包秘钥签名。纠纷产生时,交易参与方将相应的记录递交给第三方仲裁人,仲裁人根据相应证据做出判决。
l 仲裁应用
仲裁应用为由第三方开发者开发,在系统内可以运行的程序。交易参与方按照应用开发者规定的格式组织的签名数据包作为输入参数。不同的应用可以支持不同的合约内容。矿工在收录交易时,按照应用输出的转账指令执行。
4.1.2 职业仲裁人
DACRS系统首次引入仲裁人概念。在DACRS中进行交易时,参与角色除了一般交易中参与的买方、卖方,当交易出现异常需要协调纠纷时,还有可能加入交易仲裁人。具体支付应用中,开发者根据各自不同需求,选择是否加入仲裁者角色。本章将对职业仲裁人概念进行介绍,具体角色定位及执行方式将在下一章中的具体支付应用阐述。
l 定义
仲裁人是指在系统中注册产生的,有权对担保交易参与方的交易签名确认,约定在产生纠纷时,为交易参与者提供仲裁的执行者。仲裁人为由交易参与方协商决定的、完全中立的独立个体。
在DACRS中,仲裁人作为一种独立的职业存在。任何人均可以在系统中注册仲裁人账户,为交易中的纠纷冲突提供仲裁服务。职业仲裁人的存在取代了传统交易平台中官方客服协调人员的存在。
l 信誉累积和盈利
仲裁人通过接受裁决订单,参与仲裁累积信用,并收取一定费用。仲裁人所参与的仲裁,数据都会被记录,并且对外公开。在参与多方仲裁时,以多数仲裁人一致的结果作为最终裁决结果,一旦某一仲裁人误判,将会被记录。用户在选择仲裁人时,可根据其参与裁决数量,被投诉次数,误判比例来决定仲裁人。
职业仲裁人会被划分为多个等级。仲裁人在不断参与仲裁过程中,积累信誉,并提高自身仲裁级别。高级别仲裁者自然能够获取大部分人的信任,获得更多仲裁订单。且仲裁人级别越高,选择余地更大,能够通过提高仲裁费用,获取更大利益。
l 勾结串通防范
交易过程中,因利益诱惑,难免会出现仲裁人与交易某一方串通勾结之情况。为防止仲裁人与交易参与方勾结诈欺以损害交易另一方利益,可选择单一仲裁人裁决,或多方仲裁。最终结果根据不同仲裁应用,以不同的裁决方式获取最终结果。如3方裁决,取2个以上裁决一致的结果作为最终结果执行。
且仲裁人所参与的裁决,数据记录对外公开。仲裁人判决错误比例过高,自然会影响其信誉及以后的仲裁订单数量,损害自身利益。出于长远利益考虑,仲裁人自然不会贸然与交易参与方勾结串通,而交易方欲买通仲裁人,付出的代价更高,甚至可能高于其纠纷损失的金额。单一仲裁人裁决的模式,要求仲裁人有较高的信誉度,或交易参与方对其足够信任,交易方才会签名认可其作为交易仲裁人。
4.1.3 一级仲裁担保交易应用列举
l 交易条件
交易双方均已在DACRS注册账户,并且在账户中冻结一定金额的资产作为信誉担保。违约时,担保金额将作为强制执行合约的保障。
双方根据业务需求选择相应的裁决应用。
选定仲裁人。
l 交易过程
假设买方A 卖方B 裁决方C
买方A根据应用要求的数据格式组织合约内容(包括超时时间,交易金额等其他一些应用支持的合约内容)。签名并发给卖方,卖方确认无误后签名,广播到网络。矿工校验合法后,收录到block中,A的交易金额将直接发送给卖方(但是在限制时间内,B无法动用其资金,超时后方可动用)。达到一定的block高度后,B即可发货给买家A。
l 交易正常完成
如果无纠纷产生,则在限制时间超时后,交易金额正式解冻,B可用任意使用该笔金额。A完成支付,交易正常完成。
l 交易异常
一般交易中,交易参与方难免会因为各种问题产生纠纷,亦存在交易中某方故意从中捣鬼、诈欺或毁约。当冲突无法通过交易参与方自行协商解决时,则需寻求中立的第三方介入解决矛盾。
l 申诉
在担保交易过程中,买方A在未收到商品,或在收到商品后发现商品有问题,不符合约定等,在与卖家B协商未果的情况下,可以发起申诉。卖家B向协议中指定的仲裁人C提交相应证据,请求裁决。
l 裁决
仲裁人C在收到证据后,与买卖双方沟通,做出判决,并发出裁决包。矿工收录仲裁包后自动执行裁决结果。仲裁人C收取仲裁手续费,交易完成。
攻击防范
1. A 发起裁决申请时,仲裁人C不响应
如买家A在发出仲裁申请后,仲裁人C未做出响应,A可直接发出裁决申请包到DACRS系统(需支付一定费用)。系统直接扣取C账户中的保证金,转到A账户并冻结。如果C一直未响应,超过限制时间后,C将永久性无法追回被扣资金。并且Block中会记录仲裁人参与的裁决数据,以及未响应仲裁申请的数据,直接影响其信誉度,从而促其及时响应仲裁请求。
2. A诬陷仲裁人C不响应
如果A故意诬陷仲裁人C不响应,首先在这种情况下,A直接发送裁决申请包到系统中是需要支付一定费用的。同时仲裁人C在察觉账户异常,发现A的行为后,可追加发出后续裁决包,追回被强行扣取的资金。矿工在收到后续裁决包后,再执行裁决结果,A将得不到任何好处,还要损失手续费。在这一前提下,如非情况紧急,万不得已,A诬陷仲裁人C未响应,则得不偿失。
3. 仲裁人C 和某一方串通
仲裁人C是A, B双方事前协议决定,并签名确认的。如仲裁人C无一定信誉度,很难获取AB交易方认可。且当AB对仲裁人C信任度不足时,可选择多方仲裁模式。在多方仲裁中,裁决结果以多数仲裁人一致的结果为准。单一仲裁人的裁决结果并不一定是最终结果。如C的裁决结果被其他多数仲裁人否定时,仲裁人C不但得不到手续费,还会留下误判记录,影响其信誉,不利于获取更多仲裁订单。这可以有效防止仲裁人与交易某一方串通勾结。
4.1.4 多方仲裁
与一级仲裁类似,多方仲裁定下交易规则,开发出相应的应用即可实现,在此不再赘述.
4.2 P2P游戏应用
当前市场上的游戏都由中心化的第三方运营,游戏的公平性原则、规则等完全由第三方设计决定。而为保证不依赖第三方的、去中心化的P2P网络游戏的公平性,需解决随机数的产生和博弈结果执行的问题。通过DACRS,开发者可开发智能合约类型的游戏应用,即可解决以上问题。且DACRS将为游戏开发商提供完善的奖励机制。
4.3 P2P担保贷款应用
P2P网贷作为一种新兴的借贷方式,以其较高的年利率和相对较高的回报率,引起了大批投资者关注。但有关P2P网贷逾期、平台挤兑和倒闭、平台负责人跑路和被拘留、投资人血本无归的负面新闻不绝于耳。
而分布式DACRE系统作为一个去中心化的平台,将为投资者提供更安全的交易途经,能够有效防止出现类似传统平台、借贷中介携款潜逃,担保公司和贷款用户欺诈,导致用户资金损失的风险。也就是说,通过DACRE进行P2P担保贷款,能够有效规避中心化的平台所面临的种种问题。
保证金赔付不依赖第三方,自动划拨,决无跑路可能。
担保公司完全透明,无暗箱操作可能。
甚至可以不需要网贷平台作为交易中介集散信息,投资者直接分析DACRS公开总账即可,对担保公司可信度进行评估,决策投资。(可大大降低成本)
4.3.1 交易参与方
借款人A,担保人或公司B,放贷人C (C可由多人组成:C1, C2, C3, C4, C5……Cn)
4.3.2 正常交易
A, B, C都已在DACRS平台注册账户
A通过某种途径找到提供担保业务的B为其担保;
B对A的财务状况、资质和风险进行评估,决定是否为其担保,并收取一定金额的手续费;
AB协商确认后,定下还款规则(等额,月结等)、担保金额、还款期限、具体冻结金额等。AB将最低投资额度、利率等作为合约内容,签名发送给DAC系统。系统将自动冻结担保人B约定的担保金额;
B通过第三方资讯平台,将合约公告给C;
投资者C看到合约内容后,对B冻结保证金额、A贷款金额比值、B之前的担保贷款交易记录及投资回报率等进行评估。根据自身财务状况,评估投资风险,并决定是否投资;
C一旦决定投资,则用钱包私钥签名接受贷款合约,并确认投资金额,发送给DAC系统。DAC将自动(在约定的条件满足的情况下)将投资资金发送给A;
A根据合约按时还款付息。在合约到期后,解冻B冻结的担保金额,并按照合约内容,系统自动分配资金。
4.3.3 交易异常
如A隐瞒自身真实财务状况,并成功躲过B的资质审核,故意诈欺或A投资失败,未在规定时间内还款。超时后,则B冻结的担保押金将按照合约规则自动划拨给投资方C。BC共同承担风险。
4.3.4 常见问题
FAQ1: 如每进行一笔交易,B都要冻结贷款额度相等的金额,不就相当于B直接借款给A, 是否有必要通过DAC平台借款?
答:并不一定要求B冻结等额保证金,保证金越多C的风险越小,B收的手续费也越高,付给C的利率就越低。C可以参考B所有的担保记录或其他途径评估风险,量力而行。同时担保人之间也有竞争,最终市场会在某一点达到平衡。
FAQ2: 照上文所述,A违约B冻结押金将被自动扣走。如果违约案例太多,B岂不是要破产?
答:B作为担保人,必须对A进行认真审核,评估风险。同时可以通过在现实中签订实物抵押合同等一些措施来控制风险。B的运作方式与现在市场上的担保公司相同,风险相当。
FAQ3: B经过一段时间的运营后,统计数据发现所有A参与的小额贷款违约率较低,风险完全可控。为了吸引投资者,B欲对投资者承诺如A违约将全额赔付,但B无法立即为所有担保准备100%的保证金,这是否可以实现?
答:此情况改用不同的交易应用即可。交易应用规则中约定:在B冻结的保证金扣完后,可以直接扣取B账户余额。合约应用、合约内容是通过了B秘钥签名授权的,且应用执行后果完全可以预测,故不存在逻辑、安全上的漏洞。如B账户余额不足,扣款不成功则严重影响其信誉。此情况一旦发生,将会记录在B的公开总账中,直接影响B之后的订单数量。实际上这种交易模式,投资者C需评估两种风险,接受与否由投资者C自行决定。
FAQ4: DAC系统可以支持各种类型贷款投资规则吗?例如:只赔付60%、违约N个月后才扣担保人保证金、违约惩罚规则等等。
答:只要是能用数字表达的规则都可以通过应用固定下来。参与者是事先知道并可预测可能出现的结果,签名接受后就可以自动执行。
FAQ5: 如A要求在合约发布后1个月内筹集到100W,否则放弃融资,如何实现?
答:参考FAQ4. 融资期限到期后,如果未筹集到指定金额,筹集到的所有资金将自动返回投资者。在没有达到指定金额前,借贷人无法动用资金(处于冻结状态)。
4.4 其它应用
除上述应用外,通过应用设计开发,DACRS将未来将可以(但并不仅止于)实现下列功能:
数字资产发行和分布式交易。
资产锚定功能。
Coinjoin。
5 竞争分析
BTS,Nubits项目,NXT等二代币都是将创新的想法直接硬编码到系统里,致使扩展性受到很大制约,无法快速响应新需求,对于一些小众的应用更是几乎不可能支持。
以太坊开创了可编程DAC应用的先河。但以太坊把应用可执行代码作为合同内容放在交易包里,造成了交易包较大,block膨胀等问题。
以太是全球化产品,不可能为国内用户做专门优化,智能坊,将立足国内,为国人提供最好的服务。
本系统通过共用应用可执行代码,同时优化通信协议,大大减轻了block膨胀的问题,同时又保障了应用的灵活性。
作者:智能坊创始人 ranger
Scan QR code with WeChat