@bonita_v ios and android

孙权
@孙权
Best posts made by 孙权
-
RE: VITE Airdrops
@cintasatumalam the android versions of airdrop are still in development,it won't be long
-
SwissVite | Our Family in Switzerland :)
Supernode | Snapshot Block Producer (SBP) | Community Builder
Ever since Vite Labs launched the Supernode and Snapshot Block Producer (SBP) program, we received interest from all corners of the world! As a company based in Silicon Valley and Beijing with personnel in every time zone, we welcome international allies. We spoke with SwissVite which is a team of five based in Geneva. Their activities should serve to inspire prospective SBP’s. Helpful articles and tutorials are available on the SwissVite blog.
Our conversation included Andy and Guillaume, who are both leaders within SwissVite. Andy works as an IT consultant in Switzerland and he lived in China for five years. Guillaume has a crypto-asset mining company and this is the first time he runs a Delegated Proof of Stake (DPOS) delegate. In the future, he is looking to create products on top of Vite and his background is in law. Besides Andy and Guillaume, they have a self-taught blockchain engineer based in China, a web designer and a professional crypto-asset miner. Everyone in SwissVite is part of the Swiss Crypto Traders community, which has been enthusiastic about Directed Acyclic Graph (DAG) architecture in blockchain platforms.
SwissVite publicizes reward distribution records publicly and transparently:
Follow SwissVite:
Discord: https://discordapp.com/invite/hgF5D5Z
Twitter: https://twitter.com/SwissVite
Telegram: https://t.me/joinchat/IA-JtFOmOPRiPcBgAm_mSQ
Vote for SwissVite:
Done cool things on Vite? Want a shoutout?
If you identify as one of the profiles below, contact Luke Kim, our Chief Marketing Officer. We would love to hear your story and jam out on ways to collaborate!a Supernode and/or SBP
a builder of the Vite community and ecosystem internationally
a developer on Vite
We can support you to run community campaigns (e.g. subsidizing your token awards), to get press and to organize events locally (e.g. hackathons and educational workshops).We will be highlighting various SBP’s and community leaders in the future. Stay tuned!
-
【深度好文推荐】一文读懂区块链和DAG到底是什么区别?
简介
DAG(有向无环图)是一种非线性数据结构,可以替代区块链,用于分布式账本的存储。这种结构在并发的场景下有更好的性能表现,但在实际应用中会面临更多的技术挑战。
其中,最大的挑战在于,基于DAG结构实现智能合约,要比基于区块链结构困难得多。
本文将讨论DAG和区块链这两种账本结构,在加密货币和智能合约两个场景下的不同,以及如何基于DAG来实现智能合约。
加密货币的基本概念
首先,我们先从最简单的场景出发——加密货币。加密货币是一个分布式数据库,存储了每个账户的余额信息。在加密货币网络上运行着很多台计算机,这些计算机称为节点(Node)。每一个节点都会存储一份关于账户余额的数据,这份数据通常被称为“状态”(State)。
与传统的中心化银行系统不同,这种分布式账本要求所有节点对状态达成某种共识。或者说,对任意一个账户来说,要求这个网络上每台计算机所存储的余额都是一致的。由于状态的数据量比较大,在网络上传输全部数据非常困难,因此,在这种系统中,往往只传输那些能够引起状态变化的事件,也就是“交易”(Transaction)。想想看,你的钱不会无缘无故的增加或减少,只有在别人向你付款,或者你向别人付款的时候,账户余额才会发生变化。因此,只要知道一个账户所有历史转账(Transfer)记录,就可以很容易计算出当前的余额。
在加密货币系统中,所有发生过的转账交易,都记录在一个被称为账本(Ledger)的数据结构中。这种账本通过密码学的方式进行了某种加密,使得每一个节点都可以验证自己获取的账本数据是不是被篡改过。
区块链和DAG
区块链是一种经典的账本结构,广泛应用于比特币、以太坊等去中心化系统。它将一组交易打包成区块(Block),通过哈希引用将区块组织成一个链式结构。
而DAG是在区块链的基础上扩展出来的另外一种账本结构。在DAG账本中,一个区块通常只包含一个交易,它们彼此之间通过哈希引用,构成一种有向图结构,并且保证图中不存在环路。
DAG账本有很多不同的变体。例如,任意一个交易均引用两个其他交易作为其前驱节点,所构成的DAG被称为“Tangle”,应用于IOTA等项目;在另外一种DAG结构中,交易被组织成若干条链,并通过一些成对的交易彼此链接,这种DAG被称为“Block Lattice”,应用于Nano、Vite等项目。
大部分人没有意识到,事实上,区块链结构也是DAG的一个特例。
基于DAG的加密货币
我们在来看看DAG账本,是不是还具有这样的特性。好运气还在,在DAG账本中,虽然一些交易之间的顺序从账本中已经获取不到了,但这些顺序并不影响节点计算状态。因为加密货币中的状态计算,都是对余额的加减运算,这些运算是满足交换律的,只要保证任何账户的余额不小于0,交易的先后是无所谓的。因此,无论如何遍历DAG账本,最终计算的账户余额数据都一样,也就是说,任何节点都可以通过DAG账本来恢复正确的状态。
基于DAG的智能合约
谈完了加密货币,我们再来看看智能合约。在现实世界中,很多应用场景不像加密货币那样只记录一个余额就足够了。例如飞机票预订应用,在状态中需要记录一个航班上每一个座位的归属。这个时候,交易也不再仅仅表示转账了,可能包含任何对智能合约的请求数据,例如一张机票的预订请求。这个时候,改变两个交易的先后顺序,就有可能产生不同的状态。想想看,如果Alice和Bob都尝试去预订同一班飞机上的同一个座位,那么这个座位将归属于先预订的那个人。在智能合约的场景下,好运气终结了,交易之间不再完全满足交换律了。这就迫使我们不得不去认真对待账本中每个交易之间的顺序。
那么,到底哪些交易是必须进行排序的,而哪些交易不用关注顺序呢?最理想的情况是,写一个函数,可以根据系统中部署的智能合约逻辑,判断任何两个交易顺序是否会影响最终状态。假如有这样的函数存在,我们就可以在构造DAG账本时,知道哪些交易之间必须建立一个哈希引用。或者通俗的说,在表示DAG账本的图中,明确的知道哪些圆圈之间必须加一个箭头连接起来。遗憾的是,这个的函数的计算量非常大,无法用于现实的系统。所以我们只能放弃这种“完美”的方案,采用另一种更为简单粗暴的方法。
构造对智能合约友好的DAG
为了给出一个简单的交易排序规则,我们需要对系统做一些限制:
首先,我们将系统的状态,或者称“世界状态”,看作是由每个账户的状态组合而成的。其中任何两个账户的状态都是独立的,不会互相影响。一个用户的余额不会根据另一个用户余额的变动而发生改变,一个合约的数据也不会受另一个合约影响。
然后,我们限制每一个交易只能影响一个账户的状态。比如转账交易,在我们的方案中,一个交易要么使某一个账户余额减少,要么使某一个账户余额增加,而不能同时改变两个账户的余额。也就是说,转账交易被拆分成“出账交易”和“入账交易”。同样的,智能合约调用的交易也被拆分成“请求交易”和“响应交易”。
有了上面两条限制,排序规则就变得简单了:那些影响同一个账户状态的交易之间必须进行排序;另外,一对“请求交易”和“响应交易”也必须满足请求交易在响应交易之前。
按照这种规则进行排序的DAG账本,每个账户都有一组有序的交易,或者说每个账户都拥有一条自己的区块链,称之为“账户链”。另外,不同的账户链之间也会通过一对请求-响应交易之间的顺序建立起联系。这种结构的DAG就是前文提到的“Block Lattice”。
基于这样的账本结构,你会发现,世界又恢复了秩序。无论以什么样的顺序遍历DAG账本,只要遵循账本中记录的交易顺序,总可以计算出同样的世界状态。这也是Vite项目选择这种结构作为账本的原因。而采用Tangle结构实现智能合约,就必须引入另外一套排序规则。这在逻辑上相当于在原来DAG结构之外,针对同一组交易,另外建立一个不同的DAG结构,专门服务于智能合约,增加了工程实现上的难度。
总结
本文简要描述了去中心化系统中的不同账本结构,以及基于DAG结构实现加密货币和智能合约的区别。最后总结出一种在工程上易于实现智能合约的DAG结构。读者如果希望探寻更多的细节,可以阅读Vite白皮书(https://vite.org)。