3AM Singapore

新加坡3点钟社区


  • Home

  • Archives

7月1日分享:资产上链的设计

Posted on 2018-07-01 | Edited on 2018-07-06 |

Asset Tokenization on Blockchain

分享者:袁子杰

资产上链

定义

资产在权益化或证券化后,其登记、交易、结算等环节都在区块链上完成,链下由合规机构依照链上要求进行交割。

资产种类

大概有三种:

  1. 原⽣区块链类:ERC721的猫猫狗狗。。。
  2. 新型数据类:UGC,社交网络内容。。。
  3. 传统权益类:音乐版权,专利,实体资产等。。。

资产确权

资产上链的第一个难题就是 资产确权

以资产代币化的平台Hash Future为例,提出的资产确权(affirmation of ownership)与流通的共识协议体系。

平台及参与者

验证节点:提供实体验证服务的机构,机构之间信息打通。

模版开发者:定义资产定义的协议,通过继承关系让更多细分领域加入上链。

资产跨链流通

资产网络是提供资产跨链转移服务的。(TODO 这里笔者不太懂)

Q&A

USDT和黄金恒定币,属于资产上链的范畴嘛?

概念类似,但是USDT和黄金他们都需要分别通过自己的一个链才能实现映射实体到链上的价值,不是一个资产上链平台。

仔细说说协议层?

类似以太坊中的EIP: Ethereum Improvement Proposal

也类似Stellar的SEP: Stellar Ecosystem Proposal

由协议的开发者提供。

如何解决资产多次上链问题?

所有节点数据打通。

币分发给投票者还是验证者?

提供“模板”和开发新协议的开发者、主动上传资产信息的用户等,均会获得HSC奖励。

引申

数字身份,个人信息上链 商业价值是什么?

数字身份是下一代互联网不可或缺的协议层,同时更是价值互联网的“通用基础设施”和赋能的“链接器”。

具体场景:娱乐、电商、支付、金融、零售、娱乐、征信、互联网、公共服务等更多业务形态

数字黄金上链:DigixDAO

将一克黄金的信息注册成资产证明(PoA)资产卡,并将这些信息上传到以太坊的区块链中。

完成后的PoA资产卡被保存在以太坊钱包里,则对应的发行出DGX代币。

DGX 恒定黄金

DGX, a token that represents 1 gram of gold

DGX tokens are created by a smart contract that receives PoA cards and generates DGX tokens for each gram of gold. For example, if a 100g PoA card is sent to the smart contract, 100 DGX tokens are created and sent to an Ethereum wallet.

DGD 投票token

DGD is the governance token for DigixDAO.
Holders can vote on how the DigixDAO funds are allocated.

In July 2017, over 4000 DGD were stolen due to a vulnerability in the crowdsale smart contract.
The bug was eventually fixed and the tokens reimbursed to the 35 affected addresses.

6月26日分享:有向无环图(的电子货币)

Posted on 2018-06-26 | Edited on 2018-07-02 |

Directed Acyclic Graph, DAG

分享者:彦丞

DAG概念

DAG:Directed Acyclic Graph,中文意为「有向无环图」。

如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图。link to WIKI

注意:

  1. DAG不一定能转化为树,但是树一定是一个DAG
  2. DAG可以执行拓扑排序

简单原理

”教授为了偷懒,让学生互评作业

规则是每个学生交作业前,要去批2份已经上交的作业,之后自己的作业才可以提交。”

Why not blockchain?

  • 效率问题:TPS
  • 确定性问题:51%算力攻击,量子计算机
  • 中心化问题:中心化共识
  • 能耗问题:比特币的挖矿能耗已经与阿根廷全国耗电量持平

详细说明

理想化的DAG大概是这么个图(没有所谓的主链)

在区块链的应用上,DAG图的每个顶点代表在某一个时间新挖出的区块。DAG允许不同节点按自己的节奏生成区块。

每一笔交易就是一个区块,没有容量限制,每个区块有多指向,拓展性强。

参与者越多,系统越安全,交易也越快。

DAG实现方法

DAG系当前的代表项目,最知名的无疑是DAG三架马车—- IOTA、Byteball、Nano(原来的Raiblocks)

IOTA实现

iota用的tangle结构,就是有个交易确认度的概念
不过由于其共识机制还在发展中,网络不够完善
所以提出了一个coordinator的机制,目前应该也还是中心化的

IOTA在防止双花上采取了不同的策略。IOTA将主链的概念普遍化为扭结(tangle),实际上代表厚度任意的主链。

在新顶点产生的时候,每个新顶点会选择2个旧顶点作为父顶点,并进行PoW挖矿。

IOTA在确定扭结时,按照所有的父顶点关系进行权重计算,给予较多子顶点支持的父顶点更多的权重。

NANO实现

另外提一下nano,以前叫railblocks 采用点阵结构 nano我记得是一个中国人做的,非常独特和优美

Nano采取的DAG架构是给每个账户安排一条单独的链,这些链只有每当有发送或者接受转账时会更新相关交易的信息,这样每条链都只处理跟自己账户有关的交易,大大减少了需要处理的交易总量。

与比特币不同,由于Nano每个账户有单独的链,对未来的交易可以提前进行PoW挖矿。Nano白皮书对于事先提前挖矿的攻击并没有防御措施。

Byteball实现

byteball本身指定了12个见证人节点,由见证人来确定主链选择。

Byteball要求从创始块开始确定一条所有参与者公认的主链,而将其它的顶点看作是附属在这条主链上。
每一条主链对应着一种不同的主观上的时间顺序,从而对应着不同的双花交易的确认。

另外为了防止影子链嫁接在主链上,Byteball提出见证人(Witness)制度。系统自动选择被见证次数最多的顶点作主链。

其他实现

一些已经上市,但是实际上还没推出主网的项目,比如vite,CyberVein,Ambr等等

由于在tps上已经没法再吹牛,新的dag项目主要是宣传安全性,提出新的共识算法,支持智能合约等等

技术架构

不同共识概略

DAG的共识算法方面实际上基本都是DAGLabs推出的
早期的比如Inclusive,Spectre
今年出现的Phantom和Avalanche

Spectre是支持pow的

另外Avalanche应该已经有个项目再发车了,team rocket

Snowflake to avalanche,白皮书写的非常棒

Phantom是通过对交易进行排序,实现DAG对智能合约高并发的支持方案

Avalanche是提出了一套bft+DAG的方案

挖矿

区块链中添加下一个区块需要多方进行竞争,并获取区块奖励或交易手续费。

正因如此,共识和交易生成是分离开的,并且由网络的一小部分人来完成,通常会设置较高门槛(就像比特币一样),这样会导致进一步的中心化(算力垄断)。

在DAG系统中,交易者本身就是矿工,网络中的每位参与者都能进行交易并且积极参与共识。通过这种方式,验证就能同步进行,网络能够保持完全去中心化,不需要矿工传递信任,也不需要支付交易手续费。

(笔者按:交易者不参与自己的交易的共识,那么交易者做PoW验证的其实是其他节点的交易。算力超过51%的话,大矿池可以做到侧链权重>主链。然而DAG比Bitcoin更安全实际原因在于,由于每层有多个区块,即使矿工发生分叉,后续节点看到分叉矿工的tangle结构,以及the fact that侧链每层只有一个区块,会自动更加信任主链)

攻击

DAG允许多重并行交易的特征,导致攻击者可能暗中生成一条影子链,并且时不时地将影子链跟主链进行对接以逃避检测算法。

极端情况下,这条影子链有可能代替主链成为全网的共识。

智能合约

一个是Constellation,已经上线测试,应该是使用的交易序列,来支持智能合约的实现,同时其智能合约用的是scala语言。
另外hashgraph还有其他几个用的实际上是offchain的智能合约实现形式,用docker,microservice之类,结合DAG

Vite比较特别的是采用了分组,分级的DAG结构,有所谓共识组,快照组
快照组进行全网的维护和确认,具体的大家可以看vite白皮书

总结

所以可以看出来DAG的一个主要尝试方向就是把见证人模式优化成分组分层的结构,通过权重来区别节点以及交易

总的来说DAG结构目前只适合特定方向的应用场景,自身也有非常多的问题需要解决,共识机制也才刚刚开始完善,广阔天地大有可为

Q & A

IOTA如何防止垃圾交易拥堵网络?

Gossip protocol,降低带宽

又比如hashgraph的gossip of gossip,基本上把带宽降到非常低

那么千万级别TPS的区块链是如何实现的

比如EOS,一条主链3000 TPS,我来300个侧链,差不多就百万级。

然后每条链上我还能做multi thread,千万级不在话下

IOTA和Nano的容错率是多少?

比如iota,根据交易被确认的次数,来确定交易的确认完成度
如果定义为100次,基本上在数学上就是完全可信的了

nano本身不够完善,之前都是一个人在做的

iota就不说了,他的coordinator实际上还是中心化的
只适合iot场景(量大,低价值,高吞吐,对时延精度要求不高)

为什么说IOTA是中心化的?

由于IOTA是为了规模应用而建立的,因此出于安全原因,采用了一种临时性的共识机制:协调器。每隔两分钟,IOTA基金会创建一笔里程碑(milestone)交易,所有经它确认的交易立即被认为具有100%的确认置信度。

使用协调器,Alice的第二笔交易就永远不会得到确认。协调器在IOTA网络早期发展阶段充当了一种保护机制。

(笔者按:这个调节器实际上是在共识不稳定时期做一个防止回滚的功能)

6月17日分享:瑞波&恒星共识机制

Posted on 2018-06-17 | Edited on 2018-06-24 |

The Ripple Protocol Consensus Algorithm
&
Stellar Consensus Protocol

分享者:Michael

Link to Ripple paper - by Ripple Labs Inc, 2014

Link to Stellar paper - by David Mazières, SDF 2015

瑞波共识算法 RPCA

解决的三个问题

  1. Correctness: 是否是有效的transaction。
  2. Agreement: 统一的global truth,防止双花。
  3. Utility: 高可用性,包括latency,电力消耗,易接入性。

构建步骤

  1. 每个server选一个UNL(unique node list)
  2. 每个节点建立candidate set
  3. 从UNL中,合并candidate set,并在本地进行验证。
  4. 上一轮pass的transaction,发给UNL节点。
  5. 拿到80% vote的transaction,放进最终的last-closed ledger中

2个前提

  1. 任何一个server都可以broadcast交易,但是只需要依赖UNL来做consensus
  2. 验证结果是time-bound & binary的。

达到共识的定义

  1. 所有正义节点都在finite时间内作出判决。
  2. 所有正义节点达成的判决是一致的。
  3. 最终的判决不论是0还是1,都是有效的共识。

这个算法的BFT是抵御 <20%的非正义节点。

RPCA 证明

证明correctness

如果一个节点非正义的概率是Pc,那么

这个这个公式可视化之后,节点数和Pc之间的关系就是:

当Pc = 15% N = 200时,p* = 97.8%

证明 agreement

系统存在fork的风险,也就是2个小系统,相互无法交换共识信息。

当UNL的size < 0.2*n时,fork是可能发生的。

看下面这两个 cliques(小帮派)的fork情况:

证明 utility

skip

恒星公式机制

Stellar Consensus Protocol 讲述了联邦拜占庭一致性(FBA)算法。我这里会粗略解释。

FBA于传统Byzantine Agreement的区别在于,无需所有节点都被验证,因为FBA中,每个节点自己选择quoram节点对象。

定义

Slice:Q(v)是一个node的slice。

Quoram:法定体。能满足达成一致协议的节点集合。

Tiered Quoram概念

Tiered Quoram就是分级的法定体。

在top tier不止一个qouram。

比如大商业银行是一个quoram,同时worker union和audit组织成为一个quoram。这样大大保证了top tier的可信度。

总结

联邦拜占庭一致性(FBA)无法挖矿,无验证奖励机制。高可用性,每5s出一个区块,同时耗费的算力极低。

这个算法是为分布式交易所,跨货币资产转移而存在的。

6月17日分享:拜占庭将军问题

Posted on 2018-06-17 | Edited on 2018-06-24 |

Byzantine Generals’ Problem

分享者:Michael

Byzantine Generals’ Problem

A group of generals, each commanding a portion of the Byzantine army, encircle a city. These generals wish to formulate a plan for attacking the city. In its simplest form, the generals must decide only whether to attack or retreat. Some generals may prefer to attack, while others prefer to retreat. The important thing is that every general agree on a common decision, for a halfhearted attack by a few generals would become a rout, and would be worse than either a coordinated attack or a coordinated retreat. Byzantine Generals’ Problem - WIKI

简单讲,就是所有将军需要统一行动,不可以有人攻击,有人撤退。

难点:

  1. General cast vote for suboptimal strategy
  2. General cast vote selectively
  3. The messenger may fail to deliver votes
  4. The messenger may forge false votes

Byzantine fault tolerance

Byzantine fault tolerance (BFT) is the dependability of a fault-tolerant computer system, particularly distributed computing systems, where components may fail and there is imperfect information on whether a component is failed. Byzantine fault tolerance - WIKI

BFT “拜占庭容错” 是一个分布式计算领域的容错技术。

提出者是2013年的图灵讲得主Leslie Lamport。他证明了在消息不可靠信道上传递,达到一致性是不可能的。

解法

我们做以下假设:

  1. 一致性:每个忠诚的将军必须收到相同的命令值vi(vi是第i个将军的命令)
  2. 正确性:如果第i个将军是忠诚的,那么他发送的命令和每个忠诚将军收到的vi相同。

当 n > 3m 时,即叛徒的个数 m 小于将军总数的 n 的 1/3 时,假设通信可靠,可以构造同时满足“一致性”和“正确性”的解决方法.

PBFT

BFT算法中最典型的是PBFT

Skip

6月9日分享:跨链原子交换

Posted on 2018-06-11 | Edited on 2018-06-24 |

Cross chain atomic swap

分享者:李仕炜

定义

  • 跨链:不同公链之间的token
  • 原子:不可分割
  • 交换:由智能合约来完成的交换。

原子交换基本的基本构成是:HTLC(Hashed Timelock Contracts)。它有两种类型

  1. Hashlock:给你一个哈希值,当你给出它的原像时,你就可以花这笔钱
  2. Timelock:在某个时间点之前,你不能花这笔钱。只有这个时间点之后才能花。

主要应用场景是雷点网络,闪电网络。商业应用场景目前还没有落地。

实际今天的跨链交换,多数是手动实现的,原因是主流的中心化交易所已足够满足多数炒币需求。

技术实现

Alice和Bob的例子。假设Alice用0.1个比特币BTC换取Bob的2个以太坊ETH。

Alice跟Bob说:如果你知道我的密码x,那我手里的BTC就是你的。
Alice同时还说:如果48小时内交易未完成,我将取回我的BTC。

但是因为Bob无法猜出Alice的密码x,所以Bob这么做:

Bob说:如果Alice愿意把x写在纸上,那Bob手里的ETH就归Alice所有。
Bob还说:如果24小时之内交易未完成,我将取回我的ETH。

那么第三步:

Alice写出x值,拿走Bob的ETH。
Bob在以太坊网络里看到了x值,然后从比特币网络中取出了Alice的BTC。
跨链交换结束。

每个transaction需要等上一个transaction完全上链之后,才能继续进行。

细节

transaction的gas fee谁来pay?

Alice和Bob需要在各自的链上提交2个transaction,fee自己负责或商量决定。

不同链用不同Hash()function怎么办?

需使用两个链都支持的哈希算法,如SHA-256。

有没有可能Alice拿到所有币?

有可能。

假设alice在claim币之后,全球大断网,或者bob忘记去claim他应得的币,有可能alice拿到所有的币。

有没有可能Bob拿到所有币?

有可能。

Bob劫持Alice发出的claim以太坊的transaction,使其无法上链。并用这个transaction中的x值claim Alice的比特币。

Q&A

以太坊的智能合约支持timer吗?

原生以太坊不支持。需要第三方来trigger一个transaction。

目前市面上有一些智能合约timer解决方案。

为什么Alice在1&2之间,需要72小时才能拿到refund?

笔者也不太懂,明白的大佬请给我留言。

(实际上,上述对于refund过程的描述不太准确)

跨链原子交换目前的应用场景?

支持闪电网络,雷电网络的multihop支付通道。

分布式交易所。

如果只依赖闪电网络是不是失去了区块链的可靠性?

闪电网络是trustless的,智能合约比较容易实现。

而商业逻辑实际并不只局限于这些应用中。

今天跨链交换应用落地最大的门槛是什么?

商业逻辑和技术方案是分开的。

另外,跨链交易存在上述攻击风险。详情参见:https://zhuanlan.zhihu.com/p/31689532

介绍一下分布式交易所

可以了解一下:

  1. 0x解决方案
  2. 新加坡的kyber

3amsg

3点钟新加坡社区博客

5 posts
© 2018 3amsg
Powered by Hexo v3.7.1
|
Theme — NexT.Gemini v6.3.0