cyberd: Computing the knowledge from web3

in #web36 years ago (edited)

The original post has been updated based on community input in order to remove confusion. Full history

<p dir="auto">Notes on <a href="https://github.com/cybercongress/cyberd/releases/tag/v0.1.0" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>cyber release of <code>cyber:// protocol <a href="https://github.com/cybercongress/cyberd" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">reference implementation using Go. <p dir="auto"><a href="https://cybercongress.ai/" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">cyber•Congress<span>: <a href="/@xhipster">@xhipster, <a href="/@litvintech">@litvintech, <a href="/@hleb-albau">@hleb-albau, <a href="/@arturalbov">@arturalbov <h2>Abstract <p dir="auto">A consensus computer allows computing of provably relevant answers without opinionated blackbox intermediaries such as Google, Youtube, Amazon or Facebook. Stateless content-addressable peer-to-peer communication networks such as IPFS and stateful consensus computers such as Ethereum provide part of the solution, but there are at least three problems associated with implementation. Of course, the first problem is the subjective nature of relevance. The second problem is that it is hard to scale consensus computer for a huge knowledge graph. The third problem is that the quality of such a knowledge graph will suffer from different attack surfaces such as sybil, selfish behaviour of interacting agents. In this paper, we (1) define a protocol for provable consensus computing of relevance between IPFS objects based on Tendermint consensus of cyber•rank computed on GPU, (2) discuss implementation details and (3) design distribution and incentive scheme based on our experience. We believe the minimalistic architecture of the protocol is critical for the formation of a network of domain-specific knowledge consensus computers. As a result of our work some applications never existed before emerge. We expand the work with our "after Genesis vision" on features and apps. <h2>Introduction to web3 <p dir="auto">Original protocols of the Internet such as TCP/IP, DNS, URL, and HTTPS brought a web into the point where it is now. Along with all the benefits they have created they brought more problem to the table. Globality being a vital property of the web since inception is under real threat. The speed of connections degrades with network grow and from ubiquitous government interventions into privacy and security of web users. One property, not evident in the beginning, become important with everyday usage of the Internet: it's ability to exchange permanent hyperlinks thus they <a href="https://ipfs.io/ipfs/QmNhaUrhM7KcWzFYdBeyskoNyihrpHvUEBQnaddwPZigcN" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">would not break after time has passed. Reliance on "one at a time ISP" architecture allows governments effectively censor packets. It is the last straw in a conventional web stack for every engineer who is concerned about the future of our children. <p dir="auto">Other properties while being not so critical are very desirable: offline and real-time. Average internet user being offline must have the ability to work with the state it has and after acquiring connection being able to sync with global state and continue to verify state's validity in realtime while having a connection. Now, these properties offered on the app level while such properties must be integrated into lower level protocols. <p dir="auto">The emergence of a <a href="https://ipfs.io/ipfs/Qmf3eHU9idMUZgx6MKhCsFPWL24X9pDUi2ECqyH8UtBAMQ" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">web3 stack creates an opportunity for a new kind of Internet. Community calls it web3. We call it "The Great Web" as it is expected that some low-level conventions must become immutable and not being changed for decades. e.g. immutable content links. It has a promise to remove problems of a conventional protocol stack and add to the web better speed and more accessible connection. However, as usual in a story with a new stack, new problems emerge. One of such problem is general-purpose search. Existing general-purpose search engines are restrictive centralized databases everybody forced to trust. These search engines were designed primarily for client-server architecture based on TCP/IP, DNS, URL, and HTTPS protocols. Web3 creates a challenge and opportunity for a search engine based on developing technologies and specifically designed for them. Surprisingly the permission-less blockchain architecture itself allows organizing general purpose search engine in a way inaccessible for previous architectures. <h2>On adversarial examples problem <p dir="auto"><a href="https://ipfs.io/ipfs/QmeS4LjoL1iMNRGuyYSx78RAtubTT2bioSGnsvoaupcHR6" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Conventional architecture of search engines there one entity process and rank all the shit suffers from one hard but the particular problem that still has not been solved even by brilliant Google scientists: <a href="https://ipfs.io/ipfs/QmNrAFz34SLqkzhSg4wAYYJeokfJU5hBEpkT4hPRi226y9" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">adversarial examples problem. The problem Google acknowledge is that it is rather hard to algorithmically reason either this particular sample is adversarial or not independently on how cool the learning technology is. Obviously, a cryptoeconomic approach can change beneficiaries in this game effectively removing possible sybil attack vectors and removing the necessity to make a decision on example crawling and meaning extraction from one entity to the whole world. Learning sybil-resistant model will probably lead to orders of magnitude more predictive results. <h2>Cyber protocol at <code>cyber <ul> <li>compute <code>cyber inception of cyber protocol based on the Genesis distribution rules <li>def knowledge graph state <li>take cyberlinks <li>check the validity of signatures <li>check bandwidth limit <li>check the validity of CIDv0 <li>if signatures, bandwidth limit, and CIDv0 are valid than cyberlink is valid <li>every round calculate cyber•rank deltas for the knowledge graph <h2>Knowledge graph <p dir="auto">We represent a knowledge graph as a weighted graph of directed links between content addresses, or content identifications, or CIDs, or simply ipfs hashes. In this paper, we will use them as synonyms. <p dir="auto"><img src="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmejVRS9irYb6eXGDZNM9YEuFyb3a5jn4EWh3MRC3LVRij" alt="knowledge_graph.png" srcset="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmejVRS9irYb6eXGDZNM9YEuFyb3a5jn4EWh3MRC3LVRij 1x, https://images.hive.blog/1536x0/https://ipfs.io/ipfs/QmejVRS9irYb6eXGDZNM9YEuFyb3a5jn4EWh3MRC3LVRij 2x" /> <p dir="auto">Content addresses are essentially web3 links. Instead of using non-obvious and mutable thing: <pre><code>https://github.com/cosmos/cosmos/blob/master/WHITEPAPER.md <p dir="auto">we can use pretty much exact thing: <pre><code>Qme4z71Zea9xaXScUi6pbsuTKCCNFp5TAv8W5tjdfH7yuH <p dir="auto">Using content addresses for building a knowledge graph we get <a href="https://steemit.com/web3/@hipster/an-idea-of-decentralized-search-for-web3-ce860d61defe5est" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">so much needed superpowers of <a href="https://ipfs.io/ipfs/QmV9tSDx9UiPeWExXEeH6aoDvmihvx6jD5eLb4jbTaKGps" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">ipfs-<a href="https://ipfs.io/ipfs/QmXHGmfo4sjdHVW2MAxczAfs44RCpSeva2an4QvkzqYgfR" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">like p2p protocols for a search engine: <ul> <li>mesh-network future proof <li>interplanetary <li>tolerant <li>accessible <li>technology agnostic <p dir="auto">Web3 agents generate our knowledge graph. Web3 agents include itself to the knowledge graph by transacting only once. Thereby they prove the existence of private keys for content addresses of revealed public keys. Using this basic proof mechanics consensus computer could have provable differentiation between subjects and objects in a knowledge graph. <p dir="auto">Our <code>cyber implementation is based on <a href="https://github.com/cosmos/cosmos-sdk" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>cosmos-sdk identities and <a href="https://github.com/multiformats/cid#cidv0" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>cidv0 content addresses. <p dir="auto">Web 3 agents generate knowledge graph by applying <code>cyberlinks. <h2>Cyberlinks <p dir="auto">To understand cyberlinks, we need to understand the difference between <code>URL link aka hyperlink and <code>IPFS link. <code>URL link points to the location of content, but <code>IPFS link point to the content itself. The difference in web architecture based on location links and content links is drastical, hence require new approaches. <p dir="auto"><code>Cyberlink is an approach to link two content addresses or <code>IPFS links semantically: <pre><code>QmdvsvrVqdkzx8HnowpXGLi88tXZDsoNrGhGvPvHBQB6sH . Qme4z71Zea9xaXScUi6pbsuTKCCNFp5TAv8W5tjdfH7yuH <p dir="auto">This <code>cyberlink means that cyberd presentation on cyberc0n is referencing Cosmos whitepaper. A concept of <code>cyberlink is a convention around simple semantics of communication format in any peer to peer network: <p dir="auto"><code><content-address x>.<content-address z> <p dir="auto">You can see that <code>cyberlink represents a link between two links. Easy peasy! <p dir="auto">Cyberlink is a simple yet powerful semantic construction for building a predictive model of the universe. That is, using <code>cyberlinks instead of <code>hyperlinks gives us superpowers inaccessible for previous architectures of general purpose search engines. <p dir="auto">Cyberlinks can be extended, e.g. can form link chains if exist a series of two cyberlinks from one agent in which the second link in the first cyberlink is equal to the first link in the second cyberlink: <pre><code><content-address x>.<content-address z> <content-address z>.<content-address z> <p dir="auto">Using this simple principle, all interacting agents can reach consensus around interpreting clauses. So link chains are helpful for interpreting rich communications around relevance. <p dir="auto"><img src="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmNd15Pa1pzFVv98jmf1uuvPGLxRpptQMVoMidYkj1YvDC" alt="link_chains.png" srcset="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmNd15Pa1pzFVv98jmf1uuvPGLxRpptQMVoMidYkj1YvDC 1x, https://images.hive.blog/1536x0/https://ipfs.io/ipfs/QmNd15Pa1pzFVv98jmf1uuvPGLxRpptQMVoMidYkj1YvDC 2x" /> <p dir="auto">Also using the following link: <code>QmNedUe2wktW65xXxWqcR8EWWssHVMXm3Ly4GKiRRSEBkn the one can signal the start and stop of execution in the knowledge graph. A lot of cool stuff can be done using cyberlinks. <p dir="auto">If web3 agents expand native <code>IPFS links with something semantically richer as <a href="https://github.com/cybercongress/cyb/blob/dev/docs/dura.md" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>DURA links than web3 agents can easier reach consensus on the rules for program execution. Indeed, <code>DURA protocol is a proper implementation of a cyberlink concept. <p dir="auto"><a href="https://github.com/cybercongress/cyberd" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>cyber implementation of <code>cyberlinks based on <a href="https://github.com/cybercongress/cyb/blob/dev/docs/dura.md" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>DURA specification is available in <a href="https://github.com/cybercongress/.cyber" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>.cyber app of browser <a href="https://github.com/cybercongress/cyb" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><code>cyb. <p dir="auto">Based on <code>cyberlinks we can compute the relevance of subjects and objects in a knowledge graph. That is why we need a consensus computer. <h2>Notion of consensus computer <p dir="auto">Consensus computer is an abstract computing machine that emerges from agents interactions. <p dir="auto">A consensus computer has a capacity in terms of fundamental computing resources such as memory and computing. To interact with agents, a computer needs a bandwidth. <p dir="auto">Ideal consensus computer is a computer in which: <pre><code>the sum of all computations and memory available for individuals is equal to the sum of all verified computations and memory of a *consensus computer* <p dir="auto">We know that: <pre><code>verifications of computations < computations + verifications of computations <p dir="auto">Hence we will not be able to achieve an ideal consensus computer ever. CAP theorem and scalability trilemma also prove this statement. <p dir="auto">However, this theory can work as a performance indicator of a consensus computer. <p dir="auto">After 6 years of investments into consensus computers, we find out that <a href="https://ipfs.io/ipfs/QmaMtD7xDgghqgjN62zWZ5TBGFiEjGQtuZBjJ9sMh816KJ" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Tendermint consensus has a good balance between coolness for our task and readiness for production. So we decide to implement the <code>cyber protocol using Tendermint which is very close to Cosmos Hub setting. <p dir="auto">The <code>cyber implementation is a 64-bit tendermint consensus computer of the relevance for 64-byte string space that is as far from ideal at least as 1/146, because we have 146 validators who verify the same computation using the knowledge graph of the same size. <p dir="auto">We must bind computational, storage and bandwidth supply of consensus computer with maximized demand on queries. Computation and storage in case of basic relevance machine can be easily predicted based on bandwidth, but bandwidth requires a limiting mechanism. <h2>Bandwidth <p dir="auto"><code>Bonded stake - stake, that deducted from your acc coins and put as deposit to take part in consensus. Due to the passive inflation model and slashing, deposit does not match 1-to-1 to the final reward. So, for example, stakeholders may wish to set up a script, that will periodically withdraw and rebound rewards to increase their bonded stake. <p dir="auto"><code>Active stake - currently available for direct transfer, not-bonded stake. <p dir="auto"><code>Bandwidth stake = <code>active stake + bonded stake. <p dir="auto">Cyberd uses a very simple bandwidth model. The main goal of that model is to reduce daily network growth to given constant, say 3gb per day. <p dir="auto">Thus, here we introduce <code>resource credits, or RS. Each message type has assigned RS cost. There is constant <code>DesirableNetworkBandwidthForRecoveryPeriod determining desirable for <code>RecoveryPeriod spent RS value. <code>RecoveryPeriod is defining how fast agent can recover their bandwidth from 0 to agent's max bandwidth. An agent has maximum RS proportional to his stake by the formula: <p dir="auto"><code>agent_max_rc = bandwidth_stake * DesirableNetworkBandwidthForRecoveryPeriod <p dir="auto">There is a period <code>AdjustPricePeriod summing how much RS was spent for that period <code>AdjustPricePeriodTotalSpent. Also, there is constant <code>AdjustPricePeriodDesiredSpent, used to calculate network loading. <p dir="auto"><code>AdjustPricePeriodTotalSpent / AdjustPricePeriodDesiredSpent ratio is called fractional reserve ratio. If network usage is low, fractional reserve ratio adjust message cost (by simple multiplication) to allow agent with a lower stake to do more transactions.<br /> If resource demand increase, fractional reserve ratio goes <code>>1 thus increase messages cost and limiting final tx count for some long-term period (RC recovery will be <code>< then RC spending). <p dir="auto">There are only two ways to change account bandwidth stake: <ol> <li>Direct coins transfer. <li>When distribution payouts occur. For example, when validator changes his commission rates, all delegations will be automatically unbounded. Another example, delegator itself unbond some part or full share. <p dir="auto">So agents must have CYB tokens in accordance with their will of learning the knowledge graph. However, proposed mechanics of CYB tokens work not only as spam protection but as the economic regulation mechanism to align the ability of validators to process knowledge graph and market demand for processing. <h2>Relevance machine <p dir="auto">We define relevance machine as a machine that transition knowledge graph state based on the will of agents to learn the knowledge graph. The more agents will learn the knowledge graph the more valuable the graph becomes. This machine enables simple construction for search question querying and answers delivering. <p dir="auto">The will is projected on every agent's cyberlink. A simple rule prevents abuse by agents: one content address can be voted by a coin only once. So it does not matter for ranking from how much accounts you voted. The only sum of their balances matters. <p dir="auto">A useful property of a relevance machine is that it must have inductive reasoning property or follows the blackbox principle. <pre><code>She must be able to interfere predictions without any knowledge about objects except who cyberlinked, when cyberlinked and what was cyberlinked. <p dir="auto">If we assume that a consensus computer must have some information about linked objects the complexity of such model growth unpredictably, hence a requirement for a computer for memory and computations. That is, deduction of meaning inside the consensus computer is expensive thus our design depends on the blindness assumption. Instead of deducting a meaning inside the consensus computer we design a system in which meaning extraction is incentivized because agents need CYB to compute relevance. <p dir="auto">Also, thanks to content addressing the relevance machine following the blackbox principle do not need to store the data but can effectively operate on it. <p dir="auto">Human intelligence organized in a way to prune none-relevant and none-important memories with time has passed. The same way can do relevance machine. Also, one useful property of relevance machine is that it needs to store neither past state, nor full current state to remain useful, or more precisely: <em>relevant. So relevance machine can implement <a href="https://QmP81EcuNDZHQutvdcDjbQEqiTYUzU315aYaTyrVj6gtJb" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">aggressive pruning strategies such as pruning all history of knowledge graph formation or forgetting links that become non-relevant. <p dir="auto"><code>cyber implementation of relevance machine is based on the most straightforward mechanism which is called cyber•Rank. <h2>cyber•Rank <p dir="auto">Ranking using consensus computer is hard because consensus computers bring serious resource bounds. e.g. <a href="https://ipfs.io/ipfs/QmWTZjDZNbBqcJ5b6VhWGXBQ5EQavKKDteHsdoYqB5CBjh" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Nebulas still fail to deliver something useful on-chain. First, we must ask ourselves why do we need to compute and store the rank on-chain, and not go <a href="https://ipfs.io/ipfs/QmZo7eY5UdJYotf3Z9GNVBGLjkCnE1j2fMdW2PgGCmvGPj" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Colony or <a href="https://ipfs.io/ipfs/QmTrxXp2xhB2zWGxhNoLgsztevqKLwpy5HwKjLjzFa7rnD" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Truebit way? <p dir="auto">If rank computed inside consensus computer, you have an easy content distribution of the rank as well as an easy way to build provable applications on top of the rank. Hence we decided to follow more cosmic architecture. In the next section, we describe the proof of relevance mechanism which allows the network to scale with the help of domain-specific relevance machines that works in parallel thanks to IBC protocol. <p dir="auto">Eventually, relevance machine needs to find (1) deterministic algorithm that allows computing a rank for a continuously appended network to scale the consensus computer to orders of magnitude that of Google. Perfect algorithm (2) must have linear memory and computation complexity. The most importantly it must have (3) highest provable prediction capabilities for the existence of relevant cyberlinks. <p dir="auto">After <a href="https://arxiv.org/pdf/1709.09002.pdf" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">some research, we found that we can not find a silver bullet here. So we decided to find some more basic bulletproof way to bootstrap the network: <a href="http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">the rank from which Larry and Sergey have bootstrapped a previous network. The key problem with the original PageRank is that it is not resistant to sybil attacks. <p dir="auto">Token weighted <a href="http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">PageRank limited by token-weighted bandwidth do not have inherent problems of naive PageRank and is resistant to sybil attacks. For the time being, we will call it cyber•Rank until something better emerge. <p dir="auto">In the center of the spam protection system is an assumption that write operations can be executed only by those who have a vested interest in the evolutionary success of a relevance machine. Every 1% of stake in consensus computer gives the ability to use 1% of possible network bandwidth and computing capabilities. <p dir="auto">As nobody uses all possessed bandwidth, we can safely use up to 100x fractional reserves with 2-minute recalculation target. This mechanics offers a discount for cyberlinking thus effectively maximizing demand for it. <p dir="auto">We would love to discuss the problem of vote buying mainly. Vote buying by itself is not such bad. The problem with vote buying appears in the systems where voting affects the allocation of inflation in the system like <a href="https://QmepU77tqMAHHuiSASUvUnu8f8ENuPF2Kfs97WjLn8vAS3" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Steem or any state-based system. So vote buying can become easily profitable for adversary employing a zero-sum game without a necessity to add value. Our original idea of a decentralized search was based on this approach, but we reject this idea removing incentive on consensus level for knowledge graph formation completely. In our setting in which every participant must bring some value to the system to affect predictive model vote buying become NP-hard problem hence is useful for the system. <p dir="auto">We understand that the ranking mechanism will always remain red herring. That is why we expect to rely on on-chain governance mechanism to define the winning one. We would love to switch from one algorithm to another, based on economic a/b testing through hard spoons of domain-specific relevance machines though. <p dir="auto">The current implementation of consensus computer based on relevance machine for cyber•Rank can answer and deliver relevant results for any given search request in the 64 byte CID space. However, to build a network of domain-specific relevance machines, it is not enough. Consensus computers must have the ability to prove relevance for each other. <h2>Proof of relevance <p dir="auto">We design a system under the assumption that regarding search such thing as bad behaviour does not exist as anything bad can be in the intention of finding answers. Also, this approach significantly reduces attack surfaces. <blockquote> <p dir="auto">Ranks are computed on the only fact that something has been searched, thus linked and as a result, affected the predictive model. <p dir="auto">A good analogy is observing in quantum mechanics. That is why we do not need such things as negative voting. Doing this we remove subjectivity out of the protocol and can define proof of relevance. <pre><code>Rank state = rank values stored in a one-dimensional array and merkle tree of those values <p dir="auto">Each new CID gets a unique number. The number starts from zero and incrementing by one for each new CID. So that we can store rank in a one-dimensional array where indices are CID numbers. <p dir="auto">Merkle Tree calculated based on <a href="https://tools.ietf.org/html/rfc6962#section-2.1" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">RFC-6962 standard. Since rank stored in a one-dimensional array where indices are CID numbers (we could say that it ordered by CID numbers) leaves in merkle tree from left to right are <code>SHA-256 hashes of rank value. Index of the leaf is CID number. It helps to easily find proofs for specified CID (<code>log n iterations where <code>n is a number of leaves). <p dir="auto">To store merkle tree is necessary to split the tree into subtrees with a number of leaves multiply of the power of 2. The smallest one is obviously subtree with only one leaf (and therefore <code>height == 0). Leaf addition looks as follows. Each new leaf is added as subtree with <code>height == 0.<br /> Then sequentially merge subtrees with the same <code>height from right to left. <p dir="auto">Example: <pre><code> ┌──┴──┐ │ ┌──┴──┐ │ ┌──┴──┐ │ │ ┌─┴─┐ ┌─┴─┐ │ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ │ (5-leaf) (6-leaf) (7-leaf) <p dir="auto">To get merkle root hash - join subtree roots from right to left. <p dir="auto">Rank merkle tree can be stored differently: <p dir="auto"><em>Full tree - all subtrees with all leaves and intermediary nodes<br /> <em>Short tree - contains only subtrees roots <p dir="auto">The trick is that <em>full tree is only necessary for providing merkle proofs. For consensus purposes and updating tree, it's enough to have a <em>short tree. To store merkle tree in database the one can use only a <em>short tree. Marshaling of a short tree with <code>n subtrees (each subtree takes 40 bytes): <pre><code><subtree_1_root_hash_bytes><subtree_1_height_bytes> .... <subtree_n_root_hash_bytes><subtree_n_height_bytes> <p dir="auto">For <code>1,099,511,627,775 leaves <em>short tree would contain only 40 subtrees roots and take only 1600 bytes. <p dir="auto">Let us denote rank state calculation: <p dir="auto"><code>p - rank calculation period<br /> <code>lbn - last confirmed block number<br /> <code>cbn - current block number<br /> <code>lr - length of rank values array <p dir="auto">For rank storing and calculation we have two separate in-memory contexts: <ol> <li>Current rank context. It includes the last calculated rank state (values and merkle tree) plus<br /> all links and agent stakes submitted to the moment of this rank submission. <li>New rank context. It's currently calculating (or already calculated and waiting for submission) rank state. Consists of new calculated rank state (values and merkle tree) plus new incoming links and updated agent stakes. <p dir="auto">Calculation of new rank state happens once per <code>p blocks and going in parallel. <p dir="auto">The iteration starts from the block number that <code>≡ 0 (mod p) and goes till next block number that <code>≡ 0 (mod p). <p dir="auto">For block number <code>cbn ≡ 0 (mod p) (including block number 1 cause in cosmos blocks starts from 1): <ol> <li>Check if the rank calculation is finished. If yes then go to (2.) if not - wait till calculation finished<br /> (actually this situation should not happen because it means that rank calculation period is too short). <li>Submit rank, links and agent stakes from new rank context to current rank context. <li>Store last calculated rank merkle tree root hash. <li>Start new rank calculation in parallel (on links and stakes from current rank context). <p dir="auto">For each block: <ol> <li>All links go to a new rank context. <li>New coming CIDs gets rank equals to zero. We could do it by checking the last CIDs number and <code>lr (it equals the number of CIDs that already have rank). Then add CIDs with number <code>>lr to the end of this array with the value equal to zero. <li>Update current context merkle tree with CIDs from the previous step <li>Store latest merkle tree from current context (let us call it last block merkle tree). <li>Check if new rank calculation finished. If yes go to (4.) if not go to next block. <li>Push calculated rank state to new rank context. Store merkle tree of newly calculated rank. <p dir="auto">To sum up. In <em>current rank context, we have rank state from last calculated iteration (plus, every block, it updates with new CIDs). Moreover, we have links and agent stakes that are participating in current rank calculation iteration (whether it finished or not). The <em>new rank context contains links and stakes that will go to next rank calculation and newly calculated rank state (if a calculation is finished) that waiting for submitting. <p dir="auto">If we need to restart node firstly, we need to restore both contexts (current and new).<br /> Load links and agent stakes from a database using different versions: <ol> <li>Links and stakes from last calculated rank version <code>v = lbn - (lbn mod n) go to current rank context. <li>Links and stakes between versions <code>v and <code>lbn go to new rank context. <p dir="auto">Also to restart node correctly, we have to store the following entities in database: <ol> <li>Last calculated rank hash (merkle tree root) <li>A newly calculated rank short merkle tree <li>Last block short merkle tree <p dir="auto">With <em>last calculated rank hash and <em>newly calculated rank merkle tree we could check if the rank calculation was finished before node restart. If they are equal, then the rank wasn't calculated, and we should run the rank calculation. If not we could skip rank calculation and use <em>newly calculated rank merkle tree to participate in consensus when it comes to block number <code>cbn ≡ 0 (mod p) (rank values will not be available until rank calculation happens in next iteration. Still validator can participate in consensus so nothing bad). <p dir="auto"><em>Last block merkle tree necessary to participate in consensus till the start of next rank calculation iteration. So, after the restart we could end up with two states: <ol> <li>Restored current rank context and new rank context without rank values (links, agent stakes, and merkle tree). <li>Restored current rank context without rank values. Restored new rank context only with links and agent stakes. <p dir="auto">A node can participate in consensus but cannot provide rank values (and merkle proofs) till two rank calculation iterations finished (current and next). Search index should be run in parallel and do not influence the work of the consensus machine. The validator should be able to turn off index support. <p dir="auto">Now we have proof of rank of any given content address. While the relevance is still subjective by nature, we have a collective proof that something was relevant for some community at some point in time. <pre><code>For any given CID it is possible to prove the relevance <p dir="auto">Using this type of proof any two <a href="https://ipfs.io/ipfs/QmdCeixQUHBjGnKfwbB1dxf4X8xnadL8xWmmEnQah5n7x2" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">IBC compatible consensus computers can proof the relevance to each other so that domain-specific relevance machines can flourish. Thanks to inter-blockchain communication protocol you basically can either launch your own domain-specific search engine by forking cyberd which is focused on the <em>common public knowledge, or plug cyberd as a module in existing chain, e.g. Cosmos Hub. So in our search architecture, domain-specific relevance machine can learn from common knowledge. <p dir="auto"><img src="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmdfgdkaU8CKXD7ow983vZ2LjJjz8Um9JA5buwQ1aaXT6Q" alt="rm-network.png" srcset="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmdfgdkaU8CKXD7ow983vZ2LjJjz8Um9JA5buwQ1aaXT6Q 1x, https://images.hive.blog/1536x0/https://ipfs.io/ipfs/QmdfgdkaU8CKXD7ow983vZ2LjJjz8Um9JA5buwQ1aaXT6Q 2x" /> <p dir="auto">In our relevance for commons <code>cyber implementation proof of relevance root hash is computed on Cuda GPUs every round. <h2>Speed and scalability <p dir="auto">We need speedy confirmation times to feels like the usual web app. It is a strong architecture requirement that shapes an economic topology and scalability of the cyber protocol. <p dir="auto">Proposed blockchain design is based on <a href="https://ipfs.io/ipfs/QmaMtD7xDgghqgjN62zWZ5TBGFiEjGQtuZBjJ9sMh816KJ" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Tendermint consensus algorithm with 146 validators and has very fast 2 second finality time. Average confirmation timeframe at half the second with asynchronous interaction make complex blockchain search almost invisible for agents. <p dir="auto">Let us say that our node implementation based on <code>cosmos-sdk can process 10k transactions per second. Thus every day at least 8.64 million agents can submit 100 cyberlinks each and impact results simultaneously. That is enough to verify all assumptions in the wild. As blockchain technology evolves we want to check that every hypothesis work before scale it further. Moreover, the proposed design needs demand for full bandwidth in order the relevance becomes valuable. That is why we strongly focus on accessible, but provable distribution from inception. <h2>In-browser implementation <p dir="auto">We wanted to imagine how that could work in a web3 browser. To our disappointment we <a href="https://github.com/cybercongress/cyb/blob/master/docs/comparison.md" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">were not able to find the web3 browser that can showcase the coolness of the proposed approach in action. That is why we decide to develop the web3 browser <a href="https://github.com/cybercongress/cyb/blob/master/docs/cyb.md" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">cyb that has sample application .cyber for interacting with <code>cyber:// protocol. <p dir="auto"><img src="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmbyeY5ySyWiP5XtMSnaiNpJZuzFz3trGxjRJSBQzFehoC" alt="search-main" srcset="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmbyeY5ySyWiP5XtMSnaiNpJZuzFz3trGxjRJSBQzFehoC 1x, https://images.hive.blog/1536x0/https://ipfs.io/ipfs/QmbyeY5ySyWiP5XtMSnaiNpJZuzFz3trGxjRJSBQzFehoC 2x" /> <p dir="auto"><img src="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmSSyqEqh9oSC4voDDYwEAuQczeJCyRfsx4gqecSyTcVWs" alt="search-results" srcset="https://images.hive.blog/768x0/https://ipfs.io/ipfs/QmSSyqEqh9oSC4voDDYwEAuQczeJCyRfsx4gqecSyTcVWs 1x, https://images.hive.blog/1536x0/https://ipfs.io/ipfs/QmSSyqEqh9oSC4voDDYwEAuQczeJCyRfsx4gqecSyTcVWs 2x" /> <p dir="auto">As another good example, we created <a href="https://github.com/cybercongress/cyb-virus" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">a Chrome extension that allows anybody to pin any web page to ipfs and index it by any keywords, thus make it searchable. <p dir="auto">Current search snippets are ugly, but we expect they can be easily extended using IPLD for different types of content so they can be even more beautiful than that of Google. <p dir="auto">During the implementation of proposed architecture, we realize at least 3 key benefits a Google probably would not be able to deliver with conventional approach: <ul> <li>the search result can be easily delivered from a p2p network right into search results: eg. .cyber can play video. <li>payment buttons can be embedded right into search snippets, so web3 agent can interact with search results, eg. an agent can buy an item right in <code>.cyber. So e-commerce can flourish because of transparent conversion attribution. <li>search snippets must not be static but can be interactive, eg. <code>.cyber eventually can answer location-based answers. <h2>Approach toward distribution <p dir="auto">While designing the initial distribution structure for Cyber protocol we aimed to achieve the following goals: <ul> <li>Develop provable and transparent distribution in accordance with best industry practices <li>Allow equal participation irrespectively of political, regulatory or any other restrictions which may be imposed by outside agents <li>Prevent attacks on privacy such as installment of KYC requirements <li>Spread distribution in time to grant equal access to all agents to initial distribution without any limitations such as hard caps or any other restrictions <li>Honour genesis Cosmos investors for the development of technology which made possible simplified development of Cyber protocol <li>Attract the most professional validators from Cosmos ecosystem for bootstrapping the network <li>Allow easy early access for active agents of Ethereum ecosystem in order to accelerate the growth of the knowledge graph and solve chicken and egg problem <li>Decentralize management of auction donations starting from day 0 <li>Honour 30 months of cyber•Congress R&D and community behind it <p dir="auto">The goal of creating an alternative to a Google-like structure requires extraordinary effort of different groups. So we decide to set up cyber•Foundation as a fund managed via decentralized engine such as Aragon DAO filled with ETH and managed by agents who participated in initial distribution. This approach will allow safeguarding from excessive market dumping of native platform CYB tokens in the first years of work, thereby ensuring stable development. Additionally, this allows to diversify underlying platform and extend the protocol to other consensus computing architecture should the need arise. <p dir="auto">While choosing token for donations we followed three main criteria: the token must be (1) one of the most liquid, (2) the most promising, so a community can secure a solid investment bag to be competitive even comparing to giants like Google and (3) have technical ability to execute auction and resulting organization without relying on any third party. So the only system matches these criteria is Ethereum, hence the primary token of donations will be ETH. That is why we decide to create 2 tokens: THC and CYB: <ul> <li>THC is a creative cyber proto substance. THC being an Ethereum ERC-20 compatible token have utility value in form of control cyber•Foundation (Aragon DAO) ETH from auction proceeds. THC was emitted during the creation of cyber•Foundation as Aragon organization. The creative power of THC came from the ability to receive 1 CYB per each 1 THC for locking it during Game of Thrones and cyber•Auction. <li>CYB is a native token of sovereign Cyber protocol under Tendermint consensus algorithm. It also has 2 primary uses: (1) is staking for consensus and (2) is bandwidth limiting for submitting links and computing the rank. <p dir="auto">Both tokens remain functional and will track value independently due to very different utility nature. <p dir="auto">Initial distribution happens in a 3 different by nature and goals epochs and is spread in time for almost 2 years: <ol> <li><p dir="auto">Pre-genesis: 21 days. Is needed to launch cyber protocol in a decentralized fashion with independent genesis validators. <li><p dir="auto">Genesis: 21 days. Launch of main net and Game of Thrones: needed to involve the most active Ethereum and Cosmos crypto players into an engaging game with the ability to fully understand and test software using real network and incentives. Game of Thrones is a kind of distribution game with some discount for the attraction of necessary critical mass in order to make possible of learning the early knowledge graph by the most intelligent community. <li><p dir="auto">Post-Genesis: 600 days. Continuous distribution of CYB based on cyber•Auction proceeds: needed in order to involve into initial distribution existing crypto community and beyond. <h2>Pre-genesis <p dir="auto">Only 2 distribution events happens prior to Genesis: <ol> <li>700 000 000 000 000 THC tokens are minted by cyber•Foundation. Allocations of THC tokens are the following: <ul> <li>100 000 000 000 000 THC is allocated to cyber•Congress <li>600 000 000 000 000 THC is allocated to cyber•Auction contract <ol> <li>4 July 2019 donation round in ATOMs will be started for validators who want to participate in the Genesis of the network. The round will be limited with either 21 days or 100000 ATOMs. All excess ATOMs will be counted as Game of Thrones contribution. This round is necessary because the network must be started by independent validators. 5% of CYB will be allocated to participants of this donation round in Genesis. <h2>Genesis and Game of Thrones <p dir="auto">The Genesis of the network and contracts for Game of Thrones will be launched at 04 September 2019 <p dir="auto">Genesis of <code>cyber protocol will contain 1 000 000 000 000 000 CYB (One Quadrillion CYB) broken down as follows: <ul> <li>600 000 000 000 000 CYB under multisig managed by cyberCongress for manual distributions during cyber•Auction for those who stake THC until the end of cyber•Auction <li>200 000 000 000 000 CYB under multisig managed by cyberCongress: the Game of Thrones for ATOM and ETH holders, 100 TCYB for each. <li>100 000 000 000 000 CYB for top 80% ETH holders by stake excluding contracts <li>50 000 000 000 000 CYB as the drop for all ATOM stakeholders <li>50 000 000 000 000 CYB for pre-genesis contributors in ATOM <p dir="auto">Game of Thrones - is a game between ATOM and ETH holders for being the greatest. As a result of 21-day auction after Genesis, every community earn 10% of CYB. In order to make the game run smoothly we concisely adding arbitrage opportunity in the form of significant discount to ATOM holders because the system needs provably professional validators and delegators at the beginning and basically for free. <p dir="auto">We can describe the discount in the following terms: Currently buying power of all ATOMs against all ETHs based on current caps is about 1/24. Given that 10% of CYB will be distributed based on donation in ATOMs and 10% of CYB will be distributed based on donations in ETHs the discount for every ATOM donation during Game of Thrones is about 24x which is significant enough to encourage participation based on arbitrage opportunity during the first 21 days of Genesis auction and stimulate the price of ATOMs as appreciation for all cosmic community. <h2>Post-genesis and cyber•Auction <p dir="auto">Post Genesis stage called cyber•Auction starts after the end of the Game of Thrones and lasts 600 rounds 23 hours each. During this phase, CYBs are continuously distributed based on locked THC bough in the continuous auction. <p dir="auto">The role of cyber•Auction is twofold: <ul> <li>It creates non-exclusive long lasting and provable game of initial distribution without the necessity to spend energy on proof of work. It is crucial that early knowledge graph was created in some sense fairly by an engaged community which was formed during a non-exclusive game. <li>As a result of auction community, will has access to all raised resources under Aragon organization. We believe in true decentralized nature of the thing we created so we do not want to grab all the money from the funding as we already funded the creation of the system ourselves and we kindly ask fair 10% CYB cut for pre-genesis investors, founders and developers. Competing with Google is challenging and will be more viable if the community will sit on the bag of ever-growing ETH. Given the current growth rate of ETH this bag can be very compelling in some years after launch. Also, this bag can be the source of an alternative implementation of the protocol in a case the community will want to diversify technology involved, e.g. ETH2, Polkadot or whatever. <p dir="auto">After genesis CYB tokens can be created only by validators based on staking and slashing parameters. The basic consensus is that newly created CYB tokens are distributed to validators as they do the essential work to make relevance machine run both regarding energy consumed for computation and cost for storage capacity. So stakeholders decide where the tokens can flow further. <p dir="auto">After Genesis inflation adjusted using <code>TokensPerBlock parameter. Given that the network has 2 second target block and ~7% target inflation the starting parameter will be 50 MCYB. <p dir="auto">There is no currently such thing as the maximum amount of CYB due to continuous inflation paid to validators. Currently, CYB is implemented using 64int so the creation of more CYB makes significantly more expensive compute state changes and rank. We expect that lifetime monetary strategy must be established by the governance system after complete initial distribution of CYB and activation of smart contract functionality. <p dir="auto">The following rules apply for CYBs under cyber•Auction multisig: <ul> <li>will not delegate its stake and as result will remain as passive stake until become distributed <li>after the end of cyber•Auction, all remaining CYBs will be provably burned <h2>Role of ATOMs <p dir="auto">Overall 15% of CYB will be distributed based on donations in ATOMs during 2 rounds: <ul> <li>50 000 000 000 000 CYB for genesis ATOM contributors <li>100 000 000 000 000 CYB for ATOM contributors at the start of Smith Epoch <p dir="auto">All ATOM donations go to cyber•Congress multisig. The role of ATOM donations is the following: thanks to ATOM we want to secure lifetime commitment of cyber•Congress in the development of Cosmos and Cyber ecosystems. ATOM donations to cyber•Congress will allow us to use staking rewards for continuous funding of the Cyber protocol without the necessity to dump CYBs <h2>Roadmap <p dir="auto">We foresee the demand for the following features community could work on after launch: <ul> <li>Parametrization <li>KV <li>IBC <li>WASM VM for gas <li>Onchain upgrades <li>CUDA VM for gas <li>Privacy by default <h2>Applications of knowledge graph <p dir="auto">A lot of cool applications can be built on top of proposed architecture: <p dir="auto"><em>Web3 browsers. It easy to imagine the emergence of a full-blown blockchain browser. Currently, there are several efforts for developing browsers around blockchains and distributed tech. Among them are Beaker, <del>Mist, Brave, and Metamask. All of them suffer from trying to embed web2 in web3. Our approach is a bit different. We consider web2 as the unsafe subset of web3. That is why we decide to develop a web3 browser that can showcase the cyber approach to answer questions better. <p dir="auto"><em>Programmable semantic cores. Currently, the most popular keywords in a gigantic semantic core of Google are keywords of apps such as youtube, facebook, github, etc. However, developers have a very limited possibility to explain Google how to better structure results. The cyber approach brings this power back to developers. On any given input string in any application, relevant answer can be computed either globally, in the context of an app, an agent, geo or in all of them combined. <p dir="auto"><em>Search actions. Proposed design enables native support for blockchain asset related activity. It is trivial to design applications which are (1) owned by creators, (2) appear right in search results and (3) allow a transact-able call to actions with (4) provable attribution of a conversion to search query. e-Commerce has never been so easy for everybody. <p dir="auto"><em>Offline search. IPFS makes possible easy retrieval of documents from surroundings without a global internet connection. cyberd can itself can be distributed using IPFS. That creates a possibility for ubiquitous offline search. <p dir="auto"><em>Command tools. Command line tools can rely on relevant and structured answers from a search engine. That practically means that the following CLI tool is possible to implement <pre><code>> cyberd earn using 100 gb hdd Enjoy the following predictions: - apt install go-filecoin: 0.001 BTC per month per GB - apt install siad: 0.0001 BTC per month per GB - apt install storjd: 0.00008 BTC per month per GB According to the best prediction, I made a decision try `mine go-filecoin` Git clone ... Building go-filecoin Starting go-filecoin Creating a wallet using @xhipster seed You address is .... Placing bids ... Waiting for incoming storage requests ... <p dir="auto">Search from CLI tools will inevitably create a highly competitive market of a dedicated semantic core for bots. <p dir="auto"><em>Autonomous robots. Blockchain technology enables the creation of devices which can earn, store, spend and invest digital assets by themselves. <blockquote> <p dir="auto">If a robot can earn, store, spend and invest she can do everything you can do <p dir="auto">What is needed is a simple yet powerful state reality tool with the ability to find particular things. cyberd offers minimalistic but continuously self-improving data source that provides necessary tools for programming economically rational robots. According to <a href="https://github.com/first20hours/google-10000-english" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">top-10000 english words the most popular word in English is defined article <code>the that means a pointer to a particular thing. That fact can be explained as the following: particular things are the most important for us. So the nature of our current semantic computing is to find unique things. Hence the understanding of unique things become essential for robots too. <p dir="auto"><em>Language convergence. A programmer should not care about what language do an agent use. We don't need to know about what language agent is searching in. Entire UTF-8 spectrum is at work. A semantic core is open so competition for answering can become distributed across different domain-specific areas, including semantic cores of different languages. The unified approach creates an opportunity for cyber•Bahasa. Since the Internet, we observe a process of rapid language convergence. We use more truly global words across the entire planet independently of our nationality, language and race, Name the Internet. The dream of truly global language is hard to deploy because it is hard to agree on what means what. However, we have the tools to make that dream come true. It is not hard to predict that the shorter a word, the more its cyber•rank will be. Global publicly available list of symbols, words, and phrases sorted by cyber•rank with corresponding links provided by cyberd can be the foundation for the emergence of genuinely global language everybody can accept. Recent <a href="https://ipfs.io/ipfs/QmQUWBhDMfPKgFt3NfbxM1VU22oU8CRepUzGPBDtopwap1" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">scientific advances in machine translation are breathtaking but meaningless for those who wish to apply them without Google scale trained model. Proposed cyber•rank offers precisely this. <p dir="auto">This is sure not the exhaustive list of possible applications but very exciting, though. <h2>Apps on top of knowledge graph <p dir="auto">Our approach to the economics of consensus computer is that agents buy an amount of RAM, CPU, and GPU as they want to execute programs. OpenCypher or GraphQL like language can be provided to explore the semantics of the knowledge graph. The following list is simple programs <a href="https://medium.com/@karpathy/software-2-0-a64152b37c35" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">we can envision that can be built on top of simple relevance machine with the support of onchain WASM-like VM. <p dir="auto"><em>Self prediction. A consensus computer can continuously build a knowledge graph by itself predicting the existence of cyberlinks and applying these predictions to a state of itself. Hence a consensus computer can participate in the economic consensus of the cyber protocol. <p dir="auto"><em>Universal oracle. A consensus computer can store the most relevant data in the key-value store, where the key is cid and value is bytes of actual content. She is doing it by making a decision every round about which cid value she want to prune and which she wants to apply based on the utility measure of content addresses in the knowledge graph. To compute utility measure validators check availability and size of content for the top-ranked content address in the knowledge graph, then weight on the size of cids and its ranks. The emergent key-value store will be available to write for consensus computer only and not agents, but values can be used in programs. <p dir="auto"><em>Proof of location. It is possible to construct cyberlinks with proof-of-location based on some existing protocol such as <a href="https://ipfs.io/ipfs/QmZYKGuLHf2h1mZrhiP2FzYsjj3tWt2LYduMCRbpgi5pKG" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Foam. So location-based search also can become provable if web3 agents will mine triangulations and attaching proof of location for every link chain. <p dir="auto"><em>Proof of web3 agent. Agents are a subset of content addresses with one fundamental property: consensus computer can prove the existence of private keys for content addresses for the subset of knowledge graph even if those addresses has never transacted in its own chain. Hence it is possible to compute much provable stuff on top of that knowledge. E.g., some inflation can be distributed to addresses that have never transacted in the cyber network but have the provable link. <p dir="auto"><em>Motivation for read requests. It would be great to create cybernomics not only for write requests to consensus computer but from read requests also. So read requests can be two order of magnitude cheaper, but guaranteed. Read requests to a search engine can be provided by the second tier of nodes which earn CYB tokens in state channels. We consider implementing state channels based on HTLC and proof verification which unlocks amount earned for already served requests. <p dir="auto"><em>Prediction markets on link relevance. We can move the idea further by the ranking of knowledge graph based on prediction market on links relevance. An app that allows betting on link relevance can become a unique source of truth for the direction of terms as well as motivate agents to submit more links. <p dir="auto"><em>Private cyberlinks. Privacy is foundational. While we are committed to privacy achieving implementation of private cyberlinks is unfeasible for our team up to Genesis. Hence it is up to the community to work on wasm programs that can be executed on top of the protocol. The problem is to compute cyberRank based on cyberlink submitted by a web3 agent without revealing neither previous request nor public keys of a web3 agent. Zero-knowledge proofs, in general, are very expensive. We believe that the privacy of search should be must by design, but not sure that we know how to implement it. <a href="https://ipfs.io/ipfs/Qmdje3AmtsfjX9edWAxo3LFhV9CTAXoUvwGR7wHJXnc2Gk" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Coda like recursive snarks and <a href="https://ipfs.io/ipfs/Qmd99xmraYip9cVv8gRMy6Y97Bkij8qUYArGDME7CzFasg" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">mimblewimble constructions, in theory, can solve part of the privacy issue, but they are new, untested and anyway will be more expensive regarding computations than a transparent alternative. <h2>Conclusion <p dir="auto">We define and implement a protocol for provable communications of consensus computers on relevance. The protocol is based on a simple idea of content defined knowledge graphs which are generated by web3 agents using cyberlinks. Cyberlinks are processed by a consensus computer using a concept we call relevance machine. <code>cyber consensus computer is based on <code>CIDv0 and uses <code>go-ipfs and <code>cosmos-sdk as a foundation. IPFS provides significant benefits regarding resources consumption. CIDv0 as primary objects are robust in its simplicity. For every CIDv0 cyber•rank is computed by a consensus computer with no single point of failure. Cyber•rank is CYB weighted PageRank with economic protection from sybil attacks and selfish voting. Every round merkle root of the rank tree is published so every computer can prove to any computer a relevance value for a given CID. Sybil resistance is based on bandwidth limiting. Embedded ability to execute programs offer inspiring apps. Starting primary goal is the indexing of peer-to-peer systems with self-authenticated data either stateless, such as IPFS, Swarm, DAT, Git, BitTorrent, or stateful such as Bitcoin, Ethereum and other blockchains and tangles. Proposed semantics of linking offers a robust mechanism for predicting meaningful relations between objects by a consensus computer itself. The source code of a relevance machine is open source. Every bit of data accumulated by a consensus computer is available for everybody if the one has resources to process it. The performance of proposed software implementation is sufficient for seamless agent interactions. Scalability of proposed implementation is enough to index all self-authenticated data that exist today and serve it to millions of web3 agents. The blockchain is managed by a decentralized autonomous organization which functions under Tendermint consensus algorithm with standard governance module. Thought a system provides necessary utility to offer an alternative for conventional search engines it is not limited to this use case either. The system is extendable for numerous applications and, e.g. makes it possible to design economically rational self-owned robots that can autonomously understand objects around them. <h2>References <ul> <li><a href="https://github.com/cybercongress/cyberd" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">cyberd <li><a href="https://ipfs.io/ipfs/QmNhaUrhM7KcWzFYdBeyskoNyihrpHvUEBQnaddwPZigcN" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Scholarly context adrift <li><a href="https://ipfs.io/ipfs/Qmf3eHU9idMUZgx6MKhCsFPWL24X9pDUi2ECqyH8UtBAMQ" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Web3 stack <li><a href="https://ipfs.io/ipfs/QmeS4LjoL1iMNRGuyYSx78RAtubTT2bioSGnsvoaupcHR6" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Search engines information retrieval in practice <li><a href="https://ipfs.io/ipfs/QmNrAFz34SLqkzhSg4wAYYJeokfJU5hBEpkT4hPRi226y9.ifps" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Motivating game for adversarial example research <li><a href="https://steemit.com/web3/@hipster/an-idea-of-decentralized-search-for-web3-ce860d61defe5est" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">An idea of decentralized search <li><a href="https://ipfs.io/ipfs/QmV9tSDx9UiPeWExXEeH6aoDvmihvx6jD5eLb4jbTaKGps" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">IPFS <li><a href="https://ipfs.io/ipfs/QmXHGmfo4sjdHVW2MAxczAfs44RCpSeva2an4QvkzqYgfR" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">DAT <li><a href="https://github.com/cosmos/cosmos-sdk" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">cosmos-sdk <li><a href="https://github.com/multiformats/cid#cidv0" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">CIDv0 <li><a href="https://ipfs.io/ipfs/QmP81EcuNDZHQutvdcDjbQEqiTYUzU315aYaTyrVj6gtJb" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Thermodynamics of predictions <li><a href="https://github.com/cybercongress/cyb/blob/dev/docs/dura.md" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">DURA <li><a href="https://ipfs.io/ipfs/QmWTZjDZNbBqcJ5b6VhWGXBQ5EQavKKDteHsdoYqB5CBjh" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Nebulas <li><a href="https://ipfs.io/ipfs/QmZo7eY5UdJYotf3Z9GNVBGLjkCnE1j2fMdW2PgGCmvGPj" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Colony <li><a href="https://ipfs.io/ipfs/QmTrxXp2xhB2zWGxhNoLgsztevqKLwpy5HwKjLjzFa7rnD" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Truebit <li><a href="https://ipfs.io/ipfs/QmNvxWTXQaAqjEouZQXTV4wDB5ryW4PGcaxe2Lukv1BxuM" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">SpringRank presentation <li><a href="http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">PageRank <li><a href="https://tools.ietf.org/html/rfc6962#section-2.1" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">RFC-6962 <li><a href="https://ipfs.io/ipfs/QmdCeixQUHBjGnKfwbB1dxf4X8xnadL8xWmmEnQah5n7x2" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">IBC protocol <li><a href="https://ipfs.io/ipfs/QmaMtD7xDgghqgjN62zWZ5TBGFiEjGQtuZBjJ9sMh816KJ" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Tendermint <li><a href="https://github.com/cybercongress/cyb/blob/master/docs/comparison.md" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Comparison of web3 browsers <li><a href="https://github.com/cybercongress/cyb/blob/master/docs/cyb.md" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Cyb <li><a href="https://github.com/cybercongress/cyb-virus" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Cyb virus <li><a href="https://arxiv.org/pdf/1709.09002.pdf" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">SpringRank <li><a href="/docs/how_to_become_validator.md">How to become validator in cyber protocol <li><a href="https://github.com/first20hours/google-10000-english" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Top 10000 english words <li><a href="https://ipfs.io/ipfs/QmQUWBhDMfPKgFt3NfbxM1VU22oU8CRepUzGPBDtopwap1" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Multilingual neural machine translation <li><a href="https://ipfs.io/ipfs/QmZYKGuLHf2h1mZrhiP2FzYsjj3tWt2LYduMCRbpgi5pKG" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Foam <li><a href="https://ipfs.io/ipfs/Qmdje3AmtsfjX9edWAxo3LFhV9CTAXoUvwGR7wHJXnc2Gk" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Coda <li><a href="https://ipfs.io/ipfs/Qmd99xmraYip9cVv8gRMy6Y97Bkij8qUYArGDME7CzFasg" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Mimblewimble <li><a href="https://ipfs.io/ipfs/QmdSQ1AGTizWjSRaVLJ8Bw9j1xi6CGLptNUcUodBwCkKNS" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Tezos <li><a href="https://medium.com/@karpathy/software-2-0-a64152b37c35" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Software 2.0