Посторонним в

Блог-форум Винни Пуха
ФорумФорум  ЧаВоЧаВо  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ВходВход  

Поделиться | 

 Блокчейн NEM / введение

Предыдущая тема Следующая тема Перейти вниз 

Сообщения : 1091
Дата регистрации : 2015-06-10

СообщениеТема: Блокчейн NEM / введение   2016-06-11, 05:52

The NEM Blockchain Technology
The new paradigm
[перевод на русский см. ниже]

1 Introduction

Blockchain Technology traces its history to the introduction of Bitcoin, a cryptocurrency. There was a need to keep track of Bitcoin transactions in a ledger like solution where no one could control it and fraud the ledger that was to be managed and maintained in a public network.

Little was realised then that this ledger technology, known as the Blockchain Technology today, was the birth of a powerful technology that could be used for more and greater things. In time to come, the technology will morph into a platform solution that will overshadow the creation of the original Bitcoin cryptocurrency.

NEM Blockchain Technology is one such technology that has now matured, based on some of the concepts of the original Bitcoin Blockchain Technology, except now, it is largely improved and changed from the original concept. The NEM Blockchain Technology arises out of the necessity to overcome some of the shortcomings of the original Bitcoin Blockchain Technology.

Borrowing from the concepts of the Bitcoin Blockchain Technology and the Nxt Blockchain technology, NEM was developed from ground up into a whole new Blockchain Technology that is more efficient, simpler, easily extensible, and most of all, easily integrated into external applications using Industry standard APIs and design architecture.

With the emergence of newer blockchain technologies such as the NEM Blockchain Technology of late, Bitcoin Blockchain technology is slowly taking a backseat. It must be qualified however, that the Bitcoin Blockchain Technology is still very much adopted by many
businesses, but it is surely a waning momentum when businesses begin to find the limitations in the Bitcoin Blockchain technology.

In summary, the original blockchain technology was invented with the following in mind:

  • Manage a cryptocurrency token and recording its transactions in a ledger like environment
  • No one controls this distributed ledger in a massive data replication model
  • In order to obtain this token, one must mine it, very much like real world digging and mining for gold
  • Have a system to secure and verify transactions based on cryptographic private and public keys
  • Have a public ledger to secure the creation of a cryptocurrency (i.e. mined coin)
  • A ledger system that is immutable and irreversible for the rest of time
  • System cannot be destroyed by any authority and exists as a peer to peer system on the Internet

Many more features were developed after that. The rest of this paper presents the NEM Blockchain Platform and the utility of it.

2 NEM Background

The NEM project was initiated at a time when cryptocurrency was at the height of its recognition, a time when there were close to 1000 different cryptocoins – altcoins - and they were mostly forks of the original Bitcoin cryptocurrency, all bearing very little changes from its original open source code.

NEM was conceived with a different approach and standpoint. The different approach was to have the NEM using a different “mining” method that did not require expensive machines to mine. In NEM, this process is called harvesting. The architecture was based on the application server concept where the nodes are application servers built in with a database server.

Like all blockchain technologies, NEM uses cryptography, more specifically, the elliptic curve cryptography to ensure confidentiality, authenticity and non-repudiation of all transactions. Each account uses the Ed25519 keypair and is associated with mutable state that is updated when transactions are accepted by the network.

NEM had started out to be a cryptocoin initiative with a simple approach of merely distributing cryptocoins in a more distributed manner to provide for a wider spread of distribution so that there is little possibility of manipulating the value of the cryptocoin. The developers of NEM had taken the cue from an earlier initiative by another new cryptocoin that was released (NXT) and wanted to improve on it.

2.1 The NEM Blockchain Technology approach

The Bitcoin blockchain solution, as a first generation product, has many flaws in its design, not so much from the security standpoint, but more so from its use-case standpoint. These include:

  1. Slow transaction confirmation time – depending on certainty of a transaction, it takes about 10-60 minutes to confirm a transaction
  2. Hard to use, often requiring third party enhancements and services
  3. Requires a long time to power up a standalone wallet, which is impractical
  4. Solution is not user friendly and is targeted at the technically inclined audience
  5. Lacks real life useability and has to be very often provided by third parties, which adds on to the bulkiness of the solution offered as well as introducing centralised management, e.g., Coinbase
  6. The existence of a myriad of third party offerings, disparate as it may be, creates a situation where the solutions offered are not holistic.
  7. Require expensive machines to run its nodes and therefore wasteful in the use of electrical energy

The NEM technology approach that was to be improved from the Bitcoin or NXT technologies include the following:

  • Proof of Importance (PoI)
  • Web architecture
  • Shorter Block times
  • Easier management of transactions
  • Validation of Nodes

2.1.1 Proof of Importance

Develop a new kind of harvesting “competition” using Proof of Importance, a concept whereby the right to harvest is determined to a certain extent, by the amount of cryptocoin one has in an account, and the number of transactions – activity. The more transactions an account has, the more its importance is to the network and the higher chance this account will get to harvest.

This method of harvesting is new and takes away the need for processing power that requires high capital cost as well as electrical power to compete and harvest coins.

Further, by not just considering only the amount of cryptocoin an account owns, but to include transaction activity into the equation as well, it gives a less chance for any account to game the harvesting. Transaction activity shows support of the network and therefore gives an account more edge in making a successful harvest.

2.1.2 Web architecture

The NEM solution architecture was conceived as a webserver application environment. It uses a standard architecture just so that the APIs can conform to industry practice – JSON RESTful API – thus making it easy to integrate for mainstream computer programming and development.

The very existence of a web architecture design takes away a lot of the issues with the hitherto difficulty in abstracting the usefulness of the platform as demonstrated in the earlier cryptocurrency projects.

Each node represents a server where accounts can use it to harvest. It also doubles up as a node for blockchain record keeping. Hence, a node consists of a webserver, the database and the core application to power the NEM Blockchain Technology.

The node requires minimal RAM footprint and does not require high computing power. It is thus, a very efficient solution as a blockchain platform, low energy usage and low capital cost.

Each node synchronises itself with one another in a Peer-to-Peer (P2P) connected network topology. Security is not an issue as the system works on “ostracising” the node if it proves to have been hacked or changed from the rest. Like all blockchain technology solutions, the design is based on consensus as well as taking the assumption that each node distrusts one another.

This simple set up of a node gives rise to many advantages. One of the most distinct advantages is the ease in firing up a node and making it easy to immediately connect a client to it. A wallet is considered a client, and so is a specialised application - complex or not. Both use APIs to connect to the node and therefore able to work on the node easily.

In earlier designs, the blockchain must sit next to the wallet in the same machine in order for the wallet to work. This resulted in many different types of wallets being designed to circumvent the problem of needing the blockchain to be in the same server location. The NEM approach, based on the webserver architecture, does not require the blockchain data to be in the same machine as the wallet. This essentially decouples the application from the Blockchain, making wallet clients thin, easy to design, and very smart device friendly. It is more reliable, and truly decentralised, as opposed to the Bitcoin architecture, which is an oxymoron, i.e., a smart device needs to home-in to a centrally controlled server that communicates at the backend with the blockchain to be able to transact, putting reliability and security at risk.

Figure 1. The NEM Web Architecture

2.1.3 Shorter Block times

Transactions are batched and confirmed in blocks (hence it is called a block). As in typical accounting, all entries into the accounts are batched together and posted into the various accounts at the end of a period. In accounting, the period could be end of day or end of month.

In the cryptocurrency world, each “posting period” varies. But they are usually batched in minutes. Bitcoin batches transactions in approximately every 10 minutes. These “posting periods” are known as block times.

In blockchain technology, a transaction stays in memory of the server and remain as an unconfirmed transaction until it is put onto the blocks. In a given block time, the number of transactions could be between 2-5 transactions per second. The longer the block time, the higher the number of transactions it can take. Bitcoin block time is 10 minutes, this could possibly be between 1200 and 3000 transactions.

In the case of the NEM block time, this is 1 minute, giving us about 120 transactions per block to confirm at 2 transactions per second.

A shorter blocktime means the confirmation time can be made faster.

2.1.4 Transaction Management

Bitcoin’s management of transactions can be very cumbersome, confusing, and convoluted. In its “mother account”, it has many sub-addresses. Each of these sub-addresses is also a “sub-account” and contribute to the overall total of the mother account. Sending transactions out could mean sending from a few of these sub-accounts. The management, is confusing to say the least.
NEM’s management is straight forward. It has one account that one can create and all transactions go in and out of this account. It becomes the mother account and the one sub-account. Transactions are not confusing and easily comprehensible.

2.1.5 Validation of Nodes

A P2P network is a very robust network, as the system will work in the absence or failure of one node. It provides for a 100% uptime of the system. However, the shortcoming of a P2P network is that every node is anonymous and therefore it is difficult to know if a node is malicious or not.

In the NEM network, we introduced the Eigentrust++ algorithm to manage the nodes and to rate them as trusted or otherwise. Nodes that are not trusted are rejected and ignored.

NEM’s reputation system is unique to NEM and represents the first in the crypto sphere to use this type of reputation model to manage its nodes.

3 The Next Generation Blockchain Technology

The NEM blockchain started off as a simple cryptocoin initiative. The interest on NEM’s initial approach to the solution signalled interest in its development and attracted some valuable inputs from some of the active participants in the community. This completely changed the direction of the NEM’s blockchain platform into a world class solution. New features were introduced to make the NEM’s blockchain platform solution more holistic.

Subsequently, over the course of its development, the following was introduced:

  • The adoption of ED22519 digital signature algorithm
  • The first on-chain multi-signature feature
  • P2P time synchronisation
  • Token Assets
  • Private Blockchain

Other than the private blockchain, NEM’s blockchain solution created a first in the crypto industry for each of the above features. It marked the beginning of a new generation of Blockchain solution that is holistic, and enable a myriad of fast to market solutions that can use the above utilities easily.

NEM’s blockchain solution is truly useable for mainstream applications.

3.1 ED22519 digital signature algorithm

The ED22519 digital signature algorithm was adopted by NEM at a later stage. The ED22519 digital signature algorithm was chosen because it was one of the safest and fastest algorithm around.

It is based on python bindings to a C implementation of the Ed25519 public-key signature system solution.

With this library, one can quickly (2ms) create signing+verifying keypairs, derive a verifying key from a signing key, sign messages, and verify the signatures. The keys and signatures are very short, making them easy to handle and incorporate into other protocols. All known attacks take at least 2^128 operations, providing the same security level as AES-128, NIST P-256, and RSA-3072.

More information on the Ed25519 public-key signature system solution can be found on our github (https://github.com/NewEconomyMovement/python-ed25519).

3.2 On-chain Multi-signature

Sometimes a transaction needs to be approved by a few parties. The approval of a transaction is important because it gives the option of an account which can be controlled by a few parties, just so that these parties can make a collective unanimous decision to make a transaction.

It mimics mainstream requirements. Many mainstream applications require that transactions should be approved by a few parties, be it a workflow transaction or a monetary transaction. Automated processes can sign these transactions and approve them when they meet certain criteria.

Another example is a typical cheque transaction in the real world. It could be signed by one and/or more parties. Multi-signature is therefore a part of this real world process.

NEM’s multi-signature feature is unique. As opposed to all blockchain solutions, NEM’s multi-signature feature does not rely on a central aggregating application to compile signatures before broadcasting into the blockchain.

It stays on-chain – meaning to say that it is propagated to all nodes - and therefore any application or account can sign on it without worrying about whether the aggregating application server is running or not. There is no single point of failure. This feature is unique to NEM and is a very powerful feature.

NEM can have up to 32 signatories to sign off a transaction. It can be m of n signatories, meaning to say, it can be a few (m) or all (n) that must sign on a transaction.

Aside from that, signatories can also be changed. This again is a sound feature that addresses the reality of mainstream applications. For example, the death of a person or a lost key will render the account unusable if there is no way to delete that signatory and replace with a new signatory.

3.3 P2P Time Synchronisation

Like most other crypto currencies, NEM relies on time stamps for transactions and blocks. Ideally, all nodes in the network should be synchronized with respect to time. Even though most modern operating systems have time synchronization integrated, nodes can still have local clocks that deviate from real time by more than a minute. This causes those nodes to reject valid transactions or blocks, which makes it impossible for them to synchronize with the network.

It is therefore needed to have a synchronization mechanism to ensure all nodes agree on time. There are basically two ways to do this:

  1. Use an existing protocols like NTP
  2. Use a custom protocol

The advantage of using an existing protocol like NTP is that it is easy to implement and the network time will always be near real time. This has the disadvantage that the network relies on servers outside the network.

Every node that participates in the network may not have NTP configured for one reason or another. They are supposed to be independent and anonymous and therefore cannot be controlled. It would be hard then, to ensure that the node is synchronised and more often than not, will be unable to connect to the NEM blockchain.

Using a custom protocol that only relies on the P2P network itself solves this problem, but there is a trade off. It is impossible to guarantee that the network time is always near real time.

NEM uses a custom protocol in order to be completely independent from any outside entity. It uses an intelligent way based on its Importance factor to synchronise these nodes.

3.4 Token Assets

The most powerful feature yet for the NEM blockchain platform is the incorporation of a token system in the blockchain. A token is a unit of value, or measure, or simply an asset tag. In the NEM blockchain, tokens can be created in a matter of minutes and can be so defined based on certain criteria. The underlying cryptocurrency of the NEM public blockchain, XEM, is considered the first token asset created.

Each token created in NEM is unique. First, a namespace realm is created and owned by the creator. In this namespace realm, the creator can create as many uniquely named tokens as she likes under it.

In another namespace realm, another creator can do the same. However, this other creator may want to create a token that has the same name as the first creator. What separates the two is that their namespace realms are unique. Together, a namespace and a token name combined, gives a fully qualified unique name to the token.

In NEM, the namespace realm is called the namespace and the token is called the mosaic.

Each mosaic has the following properties:

  • Description
    ___Free-text description of the mosaic up to 128 characters, changeable by the owner.
  • Divisibility
    ___Adding this makes a quantity divisible, up to 6 decimal places. A divisibility of 2 means 2 decimal places.
  • Information
    ___Arbitrary byte array that can be in the property, with a size limit; this is the same as “messages” in NEM.
  • Domain name or namespace (required)
    ___Globally unique fully qualified domain name that is registered and owned by the mosaic creator. A top level namespace has a size limit of 16 characters, sub-namespaces have a limit of 64 characters.
  • Name (required)
    ___Name of the mosaic, up to a size limit of 32 characters; must be unique under the domain name.
  • Mutable quantity
    ___The amount of mosaic in circulation. If immutable, it is fixed, otherwise it is dynamic, i.e., more can be created or destroyed later.
  • Transferability
    ___If no, it means it can only be transferred between user and creator. Otherwise, it is freely transferable between third parties.
  • Levy
    ___A levy allows the creator of a mosaic to set a tax on any subsequent transactions of that mosaic. This levy is sent to an account of the creators choosing. Any mosaic or XEM may be used as a levy.

More features shall be added in the future to include other things such as dividends, reputation, recallability, composability (ability to put assets in assets), issuer covered fees on trades, expansion of the non-transferable white list, levies to be redefinable and configured, simple escrow, variable expirations, and simple math.

4 Utility of the NEM Blockchain

The design of the NEM blockchain can be used for many real world applications. Among them include, but not limited to:

  • Document time stamping and digital fingerprinting
  • Messaging, encrypted or not
  • Unique to NEM only, wallet agnostic, multi-signatory on-chain signing. Use case extension example – A specially written small footprint software in a thumb drive that can be used to sign transactions – PnP and does not require any booting or chain synchronisation. For starters, visit XEMsign.
  • Sign-on for “password-less” applications, using NEM key ID (NEMKID) to authenticate a random challenge statement. Highly secure method of authentication. Can be used with a password for 2-FA.
  • Mosaic Transaction (A Mosaic is a special kind of asset unique in NEM. An asset is also known as a colored coin, token, point, derivative, title, or share, and is application context based. A Mosaic however, is not a colored coin, as a Mosaic is created as a separate token rather than “coloring” a coin):

    • Assets are mutable, mutable with limit, or fixed in quantity
    • Each Mosaic type is uniquely named using namespace methodology
    • Assets can be made to expire after a defined time frame (using block times which are typically accurate, from seconds to tens of seconds)
    • An asset can be made to bag more assets – a derivative of a derivative of a derivative – endless permutations.
    • Assets can be made to peg to an asset, example price of a share.
    • Asset can be backed by a real world asset, e.g., gold.
    • Assets can be issued and transacted between issuer and user only and not between users, e.g., title to a land, or user identification.

  • Future Business Rules (also known as smart contracts) implementation shall allow for:

    • Decentralized Applications
    • Centralized Applications
    • Escrow solutions that use external events or blockchain events, enabling betting or derivatives to be implemented

4.1 Time Stamping

Time stamping is a simple message system that allows someone to send something into the blockchain and time stamp a transaction. For example, one can send a time stamped event to a specific account with a message to say something like:
Event Reference number: 4747959585
Hash Reference Number: 417035h2hTT8823785255bbcc812758257kd85720ye9572jH7KQ

Subsequently, in the administrative portion of the work between parties in the real world, a document may have a hash reference number that references the above message. To make it a more legible service, one can write a program to read the message referenced and the time stamp.

A digital document, be it a picture, or a text document, or a combination of both that is hashed, gives it an indisputable proof that the document is original. Every digital document is unique and a hash or digital fingerprint of the document will make it uniquely identifiable.

4.2 Messaging

Transactions whether with any enclosed tokens or not, can include a message. The message can carry a maximum of 160 characters and can be optionally encrypted (reduced by a payload of 48 characters i.e., 112 characters maximum). It is especially useful for sending messages to be included in a transaction.

The limitation of the size of the message that can be put onto the blockchain records is a matter of choice rather than by a design limitation. For example, if an entity on a private chain requires that the ISO20022 message format be a minimum of 2KB in size or even 20KB in size, it can be done easily. The limitation here is that the size of the message will affect the blockchain size. As an example, a 2KB message at 1 million transactions a day will increase the blockchain database size by 2 GB per day, or 730GB a year. Essentially, the limitation is the Database size which is limited by harddisk space. Harddisk space is cheap and is not a problem in a private chain, enterprise set up.

4.3 Multisig

One of the more important features of NEM is its unique multisig capability. It is unique because, unlike most other solutions out there, the multisig is not stored locally in a central wallet waiting for all to sign before it is broadcast. Instead, the multisig is signed and posted onto the node (NIS- Network Infrastructure Server). From the NIS, it is then propagated to all the other NIS, where, it is held in memory for a defined period of up to 24 hours to be signed by the rest of the signatories. Instead of depending on a centralised application solution, NEM’s solution uses the NIS to maintain the transaction in transit, very much how it should be, i.e., decentralised and distributed.

This gives rise to a distributed multisig solution that lives on the network. When all required signatories have been signed, it is automatically broadcast to the blockchain as a valid transaction.

Based on the above solution, multisig becomes an embedded feature more so than a third party solution that is commonly deployed with most other blockchain technologies. It allows a programmer that wishes to automate mulitsig function to specifically program and call an API through the NCC to sign or initiate a transaction. This makes the multisig solution a very simple implementation.

There are more features that can be done with multisig. These are:

  • M of N feature, a minimum of M signatures to sign from a pool of N (maximum 32) authorised signatories
  • Adding and deleting signatories
  • Time to live transactions, i.e., given up to 24 hours for all signatories to sign a transaction

Multisig is especially useful for use cases like automated escrow or event activated services. Other types of usage may include centralized smart contract solutions. The multisig feature itself can be used to activate a series of other contracts or events.

The NEM core team generally are not in favour of a decentralised smart contract concept as they believe that the smart contract living on the blockchain may encounter problems as a decentralised set of program code. Further, there is not a single instance yet that NEM could see how smart contracts can be run independently from an external input that is controlled by someone or a group of entities. The dependence on an external input itself makes the decentralised smart contract a centrally controlled concern, which seems to be an irony to its very existence. Finally, most sophisticated businesses already have smart contracts written into their processes. These could cost industries billions of dollars and a long gestation period to transform and get transcribed into the blockchain.

A very quick and efficient fix is to provide all the hooks to allow centrally controlled smart contracts to act on transactions. NEM is well positioned for that.

A good example to prove would be bond dividend issuance and payment. A typical bond issuance and payment with the following features and scenario will look like this:

  • Maturity date
  • Coupon rate
  • Principal or face value
  • Periodic interest payment

An otherwise decentralised smart contract, i.e., without intervention will require a convoluted and complicated mix of money to be stashed up with a “decentralised” concern to ensure the contract is made.

This contract cannot possibly be executed as a smart contract because of the following flaws

  • A company cannot stash money away to guarantee the bond. It defeats the very purpose of what it is meant for, i.e., to raise money.
  • If the bond is collateralised, and if there is a failure to fulfil its obligations, this will almost certainly result in a sale of assets or foreclosure. Hence, centralised intervention must come in.
  • A contract will need to invoke payments. Payments are made via centralised entities, i.e., banks, and therefore smart contracts can only be as “smart” as it can get.

NEM’s approach is very simple.

  • It issues a bond token using NEM’s assets to represent the bond and its terms and conditions, a document which can be time stamped, and validated (i.e., hashed and put onto the blockchain)
  • A centralised contract to make payments by automatically depositing money into the account of the bondholder
  • A centralised securities exchange to allow trading of these bonds among bond holders
  • Using multisig actions on these bond tokens to process and approve settlement of bonds between parties in the exchange

The exercise is neat, simple, and pertinent to a real world requirement. It does not involve millions to set up this management system, given that the smart contract – interest calculator, payment, maturity management and other terms and conditions – are already pre-existent in real world practices. What is required is a special purpose securities exchange that trades these tokens. But this is only built once and is generic for all bonds or securities.

To set up and issue a bond asset token will take less than 30 minutes in NEM.


The public/private key solution of NEM is an easy to implement solution.

By making use of NEMKID, logging on to a service does not require the server of this service to store passwords in the database. Alternatively, it can use the NEMKID to further verify the person if the system has a password requirement. NEMKID essentially produces a challenge alphanumeric word for the user to sign. If the signature is correct, then the user is verified as the rightful user.

NEMKID can be used for two factor authentication and can be developed separately and independent of NEM.

The following scenario explains how this works:

  1. An application stores the public key of a user’s NEMKID in its database. When a user logs on, the application throw a randomly generated string of text to the user.
  2. The user signs it with her private key and returns a hash string that the server will use to compare if that is in fact the user with the right private key using the public key of the NEMKID in its database. If it is, the system allows the user to log on.

This takes away the need to have a password solution and also the worry of these passwords being hacked and stolen.

For a more robust solution, it can also be supplemented as a 2-factor authentication using the NEMKID.

Further, the NEMKID can also be used as a certificate of authenticity to show that the person is who she is.

4.5 Automatic Token Distribution

Applications that require automatic token distribution using multisig can easily be incorporated without much work and a few API calls. This could include in-game wallet token awards or a simple faucet solution.

To put in context, suppose an entity wishes to issue loyalty points. He could create a system whereby it manages a database of loyal customers and award them with loyalty points. Instead of writing a complicated program to manage these points among its users, the entity could simply use the NEM blockchain solution to issue these tokens and let the system handle transactions and keep tab of all the loyalty points. There is no further need to handle these points. It would save the entity hundreds of thousands of dollars to run the entire program of managing and maintaining the loyalty system. NEM makes it so simple that it could be done in weeks to set up such a system.

Lon Wong, 2016 June 8
Вернуться к началу Перейти вниз
Посмотреть профиль http://free.gta-ru.com

Сообщения : 1091
Дата регистрации : 2015-06-10

СообщениеТема: Блокчейн NEM / начало   2016-06-12, 18:13

Блокчейн технология NEM.
Новые возможности.

1 Введение

История блокчейн технологии начинается с появления криптовалюты Bitcoin (в 2008 году), в которой механизм финансовых транзакций управляется и поддерживается с помощью публичной сети, где транзакции прозрачны, и любой человек может проконтролировать все их цепочки, но в то же время никто не может ограничить или подделать их. Такая технология работы с записями в реестре известна сегодня как блокчейн технология. Хотя первое свое практическое применение блокчейн технология нашла в криптовалюте Bitcoin, в финансовой сфере, эту мощную технологию можно с успехом использовать и во множестве других областей человеческой деятельности.

Позднее, блокчейн технология трансформировалась в решения различных блокчейн платформ, которые стали следующей ступенью развития после создания криптовалюты Bitcoin. Создаваемые на их основе продукты стали называть криптовалютами следующего поколения, криптосистемами, криптоплатформами. Блокчейн платформа NEM является одной из таких технологий, которые, взяв за основу концепцию оригинальной блокчейн технологий Bitcoin и Nxt, в значительной степени изменили и улучшили их.

Блокчейн технология NEM возникла из необходимости преодолеть некоторые из недостатков имеющихся в тот период времени блокчейн технологий. Разработка NEM начиналась с заимствований из блокчейн технологий Bitcoin и Nxt, но в итоге NEM был разработан с нуля и была создана совершенно новая блокчейн технология - более эффективная, более простая, легко расширяемая, и, прежде всего, легко интегрируемая во внешние приложения благодаря стандартным API и принятым архитектурным решениям.

С появлением новых технологий, таких как блокчейн технология NEM, блокчейн технология Bitcoin постепенно отходит на второй план. Однако, Bitcoin по-прежнему используется многими, но это, безусловно, убывающий тренд, потому что люди с течением времени обнаруживают недостатки в его технологии.

Блокчейн технология как таковая была изобретена со следующими изначально присущими ей свойствами:
  • Управление криптовалютными токенами и запись транзакций производятся в реестре как в единой технологической среде.
  • Этот распределённый реестр, как мощную модель репликации данных, никто не регулирует.
  • Для того, чтобы получить криптовалютный токен, нужно проделать определённую работу, подобно тому, как в физическом мире добывается золото.
  • Должна быть система для обеспечения безопасности и подтверждения транзакций на основе криптографических приватных и публичных ключей.
  • Реестр должен быть публичным, чтобы любой мог принять участие в создании криптомонет (в т.н. майнинге монет).
  • Система реестра должна быть неизменна и необратима во времени.
  • Система не может быть уничтожена никакой властью и существует как p2p система интернета.
Впоследствии было разработано множество других функций. Далее в этом документе описывается блокчейн платформа NEM и её возможные применения.

2 Внутри NEM

Проект NEM был начат в то время, когда Bitcoin и само понятие криптовалюты находилось на пике своего признания (начало разработки NEM - 2014 год), в тот момент было около 1000 различных криптомонет - альткоинов - и в основном это были форки криптовалюты Bitcoin, когда в его первоначальный открытый исходный код вносились незначительные изменения.

NEM был задуман с другим подходом и другой точкой зрения на его технологию. Другой подход заключался  в том, чтобы в NEM использовать другой метод «майнинга», который не требует дорогих машин для добычи криптомонет. В NEM этот процесс назвали харвестинг (сбор урожая). Архитектура NEM была основана на концепции сервера приложений, где узлы являются серверами приложений и подключаются к серверу базы данных.

Как и все блокчейн технологии, NEM использует криптографию; если конкретнее, то для обеспечения конфиденциальности, достоверности и безотказности всех транзакций в NEM используется эллиптическая криптография. Каждый аккаунт использует пару ключей Ed25519 и связан с изменяемым состоянием, которое обновляется, когда транзакции принимаются сетью.

Для того, чтобы предотвратить, насколько это возможно, манипулирование стоимостью криптомонеты, NEM был начат с достаточно широким распределением криптомонет между начальными стейкхолдерами. Разработчики NEM заимствовали этот подход из другой ранее выпущенной криптомонеты (Nxt) и хотели улучшить его.

2.1 Подход, используемый в блокчейн технологии NEM

Решения, используемые в блокчейне Bitcoin, как в продукте первого поколения, имеют много конструктивных недостатков, причем не столько с точки зрения безопасности, сколько с точки зрения неудобств, доставляемых пользователям. К ним относятся:
  1. Медленное время подтверждения транзакции - в зависимости от степени её достоверности, требуется от 10 до 60 минут для подтверждения транзакции.
  2. Bitcoin трудно использовать, для него часто требуются различные усовершенствования и услуги третьих сторон.
  3. Постоянное обращение к услугам третьих сторон делает решение не только громоздким, но и лишает его децентрализации, возвращая его к централизованному управлению. Пример: Coinbase.
  4. Существование множества сторонних разрозненных предложений создаёт ситуацию, когда эти предлагаемые решения не составляют целостную систему.
  5. Требуется длительное время для включения автономного кошелька, что крайне непрактично.
  6. Решение не является дружественным к пользователю и предназначено для технически грамотной аудитории.
  7. Для работы полных узлов Bitcoin требуются дорогие машины, постоянно производящие большой объём сложных вычислений, и, как следствие, впустую потребляющие гигантское количество электрической энергии.

В любой криптовалюте транзакции объединяются в пакеты и подтверждаются пакетами (пакеты транзакций называются блоками). Как и в обычной бухгалтерии, все записи в аккаунтах группируются вместе и размещаются на различных аккаунтах в конце определённого периода. В бухгалтерском деле, период отчётности может составлять например сутки, месяц или год. В мире криптовалют, этот период различен в разных криптовалютах. Bitcoin формирует пакеты транзакций приблизительно каждые 10 минут. Этот "период отчётности" называется блоктайм.

В блокчейн технологии, транзакция сохраняется в памяти сервера и остаётся там неподтверждённой, пока не будет помещена в блок. Чем больше блоктайм, тем больше транзакций будет произведено внутри него. Блоктайм Bitcoin составляет в среднем 10 минут, при этом в блоке может быть от 1200 до 3000 транзакций. Блоктайм NEM равен 1 минуте, лимит количества транзакций в блоке установлен сейчас равным 120, что соответствует потоку транзакций до 2 транзакций в секунду (tps). В живой системе блоктайм величина переменная, 1 минуте он равен в среднем, а практически в редких случаях могут встретиться даже значения от 5 секунд до 5 минут (нормальное распределение в теории вероятностей).

Более короткий блоктайм означает, меньшее время ожидания подтверждения транзакций.

В блокчейн технологии NEM применён ряд оригинальных решений:
  • Алгоритм консенсуса для блокчейна PoI (Proof of Importance, доказательство значимостью узла)
  • Проверка добропорядочности узлов (Eigentrust++)
  • Веб-архитектура

2.1.1 Алгоритм консенсуса для блокчейна PoI

В NEM разработан новый вид харвестинговой "конкуренции" с использованием PoI, концепции, в соответствии с которой право харвестинга определяется в определённой пропорции следующими компонентами:
  • количеством криптомонет на аккаунте
  • активностью проведения аккаунтом транзакций
  • временем нахождения аккаунта в сети

Основной компонентой, определяющей значимость узла, как и в алгоритме PoS, является количество монет на аккаунте. Но бóльшее количество транзакций у аккаунта также повышает его значимость в сети, и соответственно повышает шансы этого аккаунта на вознаграждение в харвестинге. Активностью транзакций аккаунт оказывает поддержку сети и поэтому логично увеличить его шансы на получение награды в харвестинге. Такой компонент в методе харвестинга является новым и также не предъявляет к узлу высоких требований по вычислительной мощности.

Поскольку в уравнение харвестинга включено не только количество криптомонет на аккаунте, но и активность аккаунта в части транзакций, это оставляет меньше шансов любому аккаунту для манипуляций с харвестингом.

Алгоритм PoI (NEM) так же как и алгоритм PoS (NxT) не требует для запуска и поддержания узлов больших финансовых затрат, и потребляет при харвестинге не мегаватты электроэнергии (как алгоритм PoW Bitcoin), а единицы ватт. Полным узлом в NEM может быть копеечный одноплатный компьютер.

2.1.2 Система репутации узлов Eigentrust++

P2p сети очень надёжны, так как при отсутствии или неисправности любого узла система будет продолжать работать. Это обеспечивает 100% времени бесперебойной работы системы. Тем не менее, недостатком p2p-сети является то, что каждый узел является анонимным и поэтому трудно понять, является узел злонамеренным или нет.

В сети NEM для оценки степени доверия к каждому из узлов и управления ими введён алгоритм Eigentrust++. Алгоритм Eigentrust++ в совокупности с алгоритмом POI обеспечивает устойчивую работу сети и защищает её от недобросовестных и злонамеренных узлов. Узлы, которые не являются доверенными, отвергаются и игнорируются.

Eigentrust это алгоритм, позволяющий вычислить репутацию каждого узла в сети на основе истории взаимодействия между узлами сети. Историю взаимодействия можно представить как матрицу связности между узлами, в каждой ячейке которой хранится оценка доверия к узлу, представленная как разность между количеством успешных и неуспешных попыток передачи данных.

Узлы, не связанные непосредственно, доверяют друг другу в том случае, если существует непрерывная цепь узлов между ними, доверяющих друг другу. При этом величина этого доверия определяется произведением последовательных оценок доверия вдоль этой цепи.

Eigentrust++ эффективнее Eigentrust. В чем отличие Eigentrust++ от Eigentrust?
  • Eigentrust++ отделяет транзакции, основанные на репутации, от ответных транзакций, которые могут быть недобросовестными.
  • Eigentrust++ основан на модели распространения доверия от узла к узлу и не использует единую модель доверия.
  • Eigentrust++ в разность между количествами успешных и неуспешных попыток коннекта двух узлов инкорпорирует общее количество транзакций между ними.

Eigentrust++ полностью отделён от POI. В то время как POI является алгоритмом консенсуса для блокчейна, Eigentrust++ является системой репутации узлов. Eigentrust++ помогает защитить сеть от атак вредоносных узлов, которые намеренно посылают неправильные или неверные данные. Баллы доверия Eigentrust++ не являются глобальными, они локальны и важны для соседних узлов.

POI работает на уровне аккаунта, в то время как Eigentrust++ работает на уровне узлов сети. POI определяет право на харвестинг, в то время как Eigentrust++ определяет репутацию каждого узла в сети. Однако если узел злонамеренный, то это повлияет на возможности аккаунта, т.к. ограничит его харвестинг. Но это коснётся только функционирования аккаунта в части харвестинга, но не затронет коэффициент значимости узла.

Cистема репутации в NEM является уникальной - это первый случай в криптографической сфере, когда используется такой тип репутационной модели для управления узлами сети.

2.1.3 Веб-архитектура

Архитектура NEM была задумана как веб-серверная среда приложений (веб-сервер & сервер приложений). NEM использует стандартную архитектуру, а его API интерфейс соответствует отраслевой практике - JSON RESTful API - что удобно для программирования и делает его легко интегрируемым в другие проекты.

Веб-сервер - довольно узкое понятие, обозначающее программу, отдающую данные клиентам по протоколу HTTP. Сервер приложений - это, грубо говоря, программа, позволяющая централизованно на стороне сервера хранить и выполнять приложения, управляя при этом распределением нагрузки, обеспечивая работу с БД и т.д. В нашем случае сервер приложений работает с клиентами по протоколу HTTP, таким образом одновременно являясь и веб-сервером.

Само наличие такого веб-дизайна архитектуры снимает много вопросов, которые имелись до настоящего времени в предшествующих проектах криптовалют, даже если абстрагироваться от целесообразности таких проектов и рассматривать только их техническую сторону.

Каждый узел представляет собой сервер, который аккаунты могут использовать для харвестинга. Одновременно он как узел записывает и сохраняет блокчейн. Таким образом, каждый узел включает в себя веб-сервер, базу данных и основное приложение, обеспечивающее работу блокчейн технологии NEM.

Узел по минимуму задействует оперативную память (для обычного узла достаточно иметь на компьютере RAM = 1 GB, для суперузла эта величина должна быть не менее 2 GB) и не требует высокой вычислительной мощности (даже для суперузла достаточен компьютер с одноядерным процессором и тактовой частотой 1,6 ГГц).

Таким образом, получается очень эффективное решение для блокчейн платформы, с низким потреблением энергии и низкими финансовыми затратами.

Узлы синхронизируются друг с другом децентрализованно, образуя пиринговую p2p топологию сети. Безопасность не является проблемой, так как система будет продолжать устойчиво работать даже если значительная часть узлов окажется взломанными или принадлежащими злоумышленникам. Как и все технологические блокчейн решения, NEM работает на основе консенсуса, в предположении, что все узлы доверяют друг другу.

Цитата :
20 декабря 2016 в ходе эксперимента три узла, составлявшие сеть, в случайные моменты времени отключались/включались, имитируя падения узлов. Продолжительность отключения доходила до 6 минут, отключалось до двух узлов одновременно. В сеть непрерывно посылались спам-транзакции от 10,8 миллионов аккаунтов. В течение всего часа Mijin сеть успешно справлялась с экстремальной нагрузкой 3000 tps, в пике достигавшей до 4142 tps.

Такое построение сети порождает много преимуществ. Одним из наиболее существенных преимуществ является лёгкий запуск узла и мгновенное подключение клиента к нему. Кошелёк рассматривается как клиент, и поэтому является специализированным приложением - сложным или простым (сейчас в NEM 4 вида кошельков). В любом случае для подключения к узлу все они используют API интерфейс и, следовательно, могут легко работать с любым узлом.

В более ранних конструкциях блокчейн должен был находиться на той же машине, что и кошелёк. Это приводило к проектированию множества различных типов кошельков, чтобы как-то обойти эту проблему. Подход в NEM, основанный на архитектуре веб-сервера, позволяет физически разделить местоположение блокчейна (базы данных) и кошелька (сервера приложений). Это делает клиенты кошельков тонкими, легко проектируемыми, и очень удобными интеллектуальными устройствами. Такая архитектура является более надёжной, и по-настоящему децентрализованной, в отличие от архитектуры Bitcoin, которая является оксюмороном, т.к. кошелек с блокчейном должны быть на одной машине, либо приходится пользоваться сторонними централизованными кошельками, ставя надёжность и безопасность под угрозу.

Рисунок 1. Веб-архитектура NEM

3 Новое поколение блокчейн технологии

Разработка NEM начиналась как рядовая инициатива очередной криптомонеты, в то время таких начинаний было немало. Первоначально шла речь лишь о создании обычного форка Nxt.

Jaguar, один из основных разработчиков NEM:
Jaguar пишет:
Наш первоначальный план состоял в том, чтобы написать NEM, взяв за основу код NXT... Но вышло так, что этот проект вызвал большой интерес, и у нас оказалось больше девелоперских ресурсов, чем я ожидал. Тогда команда разработчиков пришла к консенсусу: NEM будет основываться на идеях NXT и Bitcoin, но код будет написан с нуля. Хотя это потребует несколько больше времени и усилий сейчас, но я думаю, что в долгосрочной перспективе это сделает NEM намного лучше.

Чтобы сделать решение блокчейн платформы NEM ещё более целостным, были добавлены новые, оригинальные возможности NEM. Так был взят курс на создание блокчейн платформы мирового уровня.

В ходе разработки были добавлены следующие решения:
  • Принят алгоритм цифровой подписи ED22519 (повышение безопасности для узлов и скорости работы)
  • Мультиподпись впервые реализована непосредственно в блокчейне (повышение безопасности для узлов и усиление децентрализации)
  • Введена p2p синхронизация времени (усиление децентрализации)
  • Активы с упорядоченной системой именований (Namespaces & Mosaics)
  • Введена система репутации узлов Eigentrust++ (повышение безопасности для сети)
  • Алгоритм консенсуса для блокчейна выбран POI (повышение безопасности для сети)
  • Приватные блокчейны (блокчейны Mijin для закрытых предприятий)
За исключением приватных блокчейнов, все другие перечисленные решения были предложены впервые в криптографической индустрии. Это положило начало новому поколению целостных блокчейн решений. На их основе можно будет создавать многочисленные приложения, которые смогут вышеуказанные утилиты легко использовать.

Решения блокчейна NEM являются действительно полезными для многих мейнстрим приложений.

3.1 Алгоритм цифровой подписи Ed22519

Алгоритм цифровой подписи Ed22519 был принят в NEM на более позднем этапе разработки. Этот алгоритм был выбран потому, что он является одним из самых безопасных и быстрых алгоритмов из всех существующих сейчас.

Он основан на привязке Python к реализации C системного решения подписи Ed22519.

С помощью этой библиотеки можно быстро (2 мс) создавать подписи + проверочные пары ключей, получать проверочный ключ из ключа подписи, подписывать сообщения и проверять подписи. Ключи и подписи очень короткие, что позволяет их легко обрабатывать и включать в другие протоколы. Все известные атаки требуют по крайней мере 2128 операций, обеспечивая такой же уровень безопасности, как AES-128, NIST P-256 и RSA-3072.

Более подробную информацию о подписи Ed22519 можно найти на NEM GitHub:

3.2 Мультиподпись в блокчейне

Иногда транзакция должна быть одобрена несколькими сторонами. Возможность совместного одобрения транзакции важна, поскольку это даёт возможность коллективного управления аккаунтом.

Мультиподпись - функция востребованная. Многие распространённые приложения требуют, чтобы транзакции были одобрены несколькими сторонами, будь то транзакция рабочего процесса или денежная операция. Эти транзакции, если они отвечают определенным критериям, могут быть также подписаны и утверждены автоматизированными процессами.

Функция мультиподписи в NEM является уникальной. В отличие от всех других существующих блокчейн решений, функция мультиподписи в NEM не полагается на некое централизованное приложение, агрегирующее собранные подписи, прежде чем они будут переданы в блокчейн.

Мультиподпись остаётся в блокчейне - это означает, что она доступна всем узлам - и, следовательно, любое приложение или аккаунт могут всегда принять участие в мультиподписи, не заботясь о том, запущен ли сервер приложения, агрегирующего подписи. Здесь нет единой точки отказа. Эта функция в NEM уникальна и является очень мощным инструментом.

NEM может иметь до 32 подписантов транзакции. В случае мультиподписи m из n, для одобрения транзакции подписать её могут не все n подписантов, а от m до n подписантов.

Кроме того, можно изменять список подписантов. Это также актуальная функция, вытекающая из реальных ситуаций. Например, смерть человека или потерянный ключ сделали бы аккаунт непригодным для дальнейшего использования, если бы не существовало никакого способа для удаления или замены такого подписанта.

3.3 P2p синхронизация времени

Как и большинство других криптовалют, NEM опирается на временны́е метки транзакций и блоков. В идеале, все узлы в сети должны быть синхронизированы по времени. Несмотря на то, что большинство современных операционных систем имеют встроенную систему синхронизации времени, локальные часы узлов могут иметь отклонение от реального времени более чем на минуту (речь идет об одной минуте, потому что в NEM блоктайм = 1 минута). Это приведёт к тому, что такие узлы будут отклонять правильные транзакции и блоки, и узел фактически выпадет из сети из-за рассинхронизации с сетью.

Поэтому необходимо иметь какой-то механизм синхронизации, чтобы все узлы были согласованы по времени. Есть два основных способа сделать это:
  1. Использовать существующие протоколы, такие как NTP
  2. Использовать пользовательский протокол
Преимущество использования существующего протокола NTP в том, что его легко реализовать, и время сети всегда будет очень близкó к реальному времени. Но у этого способа синхронизации есть серьёзный недостаток, заключающийся в том, что сеть зависит от небольшого количества внешних серверов.

Кроме того, NTP не занимается конфигурированием узлов (а на машине например может быть установлен неправильный часовой пояс). А поскольку в общем случае узлы в сети независимы и анонимны, то нет возможности их контролировать. Было бы нелегко понять, синхронизирован узел или нет, и есть ли возможность подключиться к NEM блокчейну.

Используя собственный протокол, который зависит только от самой p2p сети, NEM решает эту проблему, но при таком подходе приходится идти на небольшой компромисс. Невозможно гарантировать, что время сети всегда будет близкó к реальному времени. Поэтому узел, впервые подключившийся к сети, готов принять достаточно большие временны́е отклонения в сети и подстраивается к ним. По мере работы узла в сети, его терпимость к временны́м отклонениям уменьшается.

Одновременно полагается, что большинство современных операционных системы имеют встроенную службу синхронизации времени, и локальное время на них в среднем по большому числу узлов стремится к реальному. В совокупности с собственным алгоритмом автоподстройки узлов под временны́е метки в сети это позволяет входить в сеть узлам с достаточно большими отклонениями от реального времени и одновременно время в сети будет подтягиваться к реальному.

Транзакции и блоки с плохими временными метками (с отклонениями по времени более допустимых пределов) удаляются из сети. Таким образом устраняется влияние
  • злонамеренных узлов, устанавливающих неправильные метки времени
  • добросовестных узлов с очень большими отклонениями локального времени
  • плохих данных, возникающих из-за проблем с интернетом или в связи с большой занятостью одного из узлов

3.4 Активы

Ещё одной и самой мощной функцией в блокчейн платформе NEM является система токенов, интегрированная в блокчейн. Токен может являться единицей стоимости, или единицей количества, или просто тегом какого-нибудь актива. В NEM токен называется мозаикой (Mosaic).

Мозаика в NEM может быть создана в считанные минуты с одновременным определением её свойств. Базовая криптовалюта публичного блокчейна NEM, именуемая XEM, считается первым созданным в блокчейне NEM активом.

Каждая мозаика, созданная в NEM, является уникальной. Во-первых, в блокчейне создается область пространства имён, которая принадлежит только её создателю. В NEM область пространства имён будем для краткости называть просто пространством (Namespace). В созданном им пространстве, создатель может в дальнейшем определить любое количество мозаик с уникальными именами.

В другом пространстве, другой создатель может сделать то же самое. Более того, он может определить свои мозаики с теми же именами, что и первый создатель. Тем не менее они будут уникальны, поскольку будут отличаться принадлежностью к другой области пространства имён. Таким образом, название пространства и название мозаики вместе взятые определяют полное уникальное имя мозаики.

Каждая мозаика обладает следующими свойствами:
  • Описание (Description)
    Описание мозаики в свободном формате, до 128 байт (128 английских букв и цифр или 64 русские буквы), может редактироваться владельцем мозаики.
  • Делимость (Divisibility)
    Сколько цифр следуют после децимальной запятой в величине количества мозаики, от 0 до 6 знаков после запятой.
  • Информация (Information)
    Произвольный байтовый массив ограниченного размера; в точности как сообщение в NEM.
  • Пространство имён, а если точнее, то доменное имя, определяющее пространство имён (Domain name or namespace, обязательно)
    Глобальное уникальное полное доменное имя, которое принадлежит создателю мозаики. Размер названия пространства верхнего уровня ограничен 16 символами, для суб-пространств установлен предел в 64 символа.
  • Имя мозаики (Name, обязательно)
    Название мозаики, до 32 символов; должны быть уникальными в пределах одного пространства.
  • Количество (Mutable quantity)
    Количество мозаик в обращении. Если оно неизменно, то фиксировано, иначе динамично, т.е. количество может быть изменено или уничтожено полностью.
  • Перемещаемость (Transferability)
    Если нет, то мозаика может быть передана лишь однажды, только от создателя пользователю. В противном случае, она может свободно передаваться между третьими сторонами.
  • Налог (Levy)
    Создатель мозаики может установить налог на любые последующие транзакции этой мозаики. Сбор отправляется на аккаунт, который определит создатель. Любая мозаика или XEM могут быть использованы в качестве налога.
В будущем будут добавлены дополнительные свойства мозаик, такие как дивиденды, репутации, возможность отзыва мозаики, композитность (способность вложений активов в активы), задание эмитента налога, белый список исключений для непередаваемых мозаик, переопределяемые и конфигурируемые налоги, простой эскроу, переменное окончание срока действия мозаики, простая математика.

окончание - ниже
Вернуться к началу Перейти вниз
Посмотреть профиль http://free.gta-ru.com

Сообщения : 1091
Дата регистрации : 2015-06-10

СообщениеТема: Блокчейн NEM / окончание   2016-06-17, 10:54

окончание; начало выше.

4 Применение блокчейна NEM

Конструктив блокчейна NEM позволит использовать его во многих реальных приложениях. Вот примерный их список, естественно не исчерпывающий:
  • Временны́е штампы и цифровые отпечатки для документов
  • Сообщения, зашифрованные и незашифрованные
  • Уникальная и имеющаяся на данный момент только в NEM мультиподпись, являющаяся стандартной функцией NEM блокчейна и не требующая участия третьих сторон. Вот пример её расширенного применения - специально написанная маленькая программка может сканировать отпечаток пальца и полученный результат затем можно будет использовать для подписания транзакции. Для начала, ознакомьтесь с XEMsign.
  • Вход в приложения без использования традиционного пароля, через идентификационный ключ NEM (NEMKID). Высокобезопасный метод аутентификации. Может использоваться с паролем для 2-FA.
  • Транзакции мозаик (Мозаики представляют собой особый вид активов, которые уникальны в NEM. Эти активы, в зависимости от контекста, также известны как цветные монеты, токены, поинты, деривативы, доли или акции. И всё же мозаика это не цветная монета, мозаика создается как отдельный токен, а не "раскрашенная" монеты):
    • Количество активов изменяемо, ограниченно изменяемо, или фиксировано
    • Каждая мозаика имеет уникальное имя благодаря принятой системе именований
    • Активы могут активированы после истечения определенного промежутка времени (при использовании в качестве тикета блоктайма имеем точность отсчёта в пределах от нескольких секунд до нескольких десятков секунд)
    • Актив может включать в себя другие активы - a derivative of a derivative of a derivative - можно создавать бесконечные сочетания активов.
    • Активы могут быть привязаны к другим активам, например, к цене какой-нибудь акции.
    • Активов может быть подкреплён активом физического мира, например, золотом.
    • Активы могут быть выпущены и переданы только от эмитента другому пользователю, но между пользователями передаваться не будут, например, это может быть право собственности на землю, или идентификатор пользователя.
  • Будущие бизнес-правила (также известные как смарт-контракты) позволят делать на их основе:
    • Децентрализованные приложения
    • Централизованные приложения
    • Эскроу решения, которые будут использовать внешние события или блокчейн события, позволяющие держать пари или реализовывать деривативы.

4.2 Штамп времени

Штамп времени - это простое системное сообщение в блокчейне, время появления которого в блокчейне естественным образом фиксируется. Например, создадим штамп времени для некоторого события, событием может быть например некий документ. Подготовим хэш файла документа. Отправим на определённый аккаунт сообщение:
Номер события: 4747959585
Хэш события: 417035h2hTT8823785255bbcc812758257kd85720ye9572jH7KQ

Впоследствии, в административной части работы между сторонами в реальном мире, в документе будет указан хэш транзакции, который связан с приведённым выше сообщением. Для того, чтобы подобную функциональность сделать удобной и оформить как сервис, можно написать программу, которая будет по хэшу транзакции показывать соответствующее сообщение и штамп времени.

Хэш цифрового документа (хэш события), будь то изображение или текстовый документ, или комбинация обоих, даёт неоспоримое доказательство того, что определённый документ является оригиналом. Каждый цифровой документ уникален и хэш (цифровой отпечаток) документа однозначно его идентифицирует.

4.1 Сообщения

Любая транзакция может включать в себя сообщение. Сообщение может содержать максимум 160 байт [после марта 2017 эта длина увеличена до 1024 байт] и может быть дополнительно зашифровано (в этом случае количество символов будет ограничено 112).

Размер сообщений, отправляемых в блокчейн, ограничен не дизайном блокчейна, а лишь из практических соображений. Например, если для предприятия, использующего приватный блокчейн, требуется, чтобы сообщение формата ISO20022 могло быть размером 2 kB или даже 20 kB, это легко сделать. Ограничением здесь будет лишь то, что размер сообщений будет влиять на размер блокчейна. Например, сообщение 2 kB на 1 млн транзакций в день будет увеличивать блокчейн базу данных на 2 GB в день, или 730 GB в год. По существу, ограничение размера базы данных ограничено местом на жёстком диске. Пространство жёсткого диска дёшево и не является проблемой в приватной сети предприятий.

4.3 Мультиподпись

Одной из наиболее важных особенностей NEM является его уникальная мультиподпись с её возможностями. Она уникальна тем, что, в отличие от большинства других решений, мультиподпись не хранится локально в неком централизованном кошельке в ожидании когда все поставят подпись, прежде чем она будет передана в блокчейн. Вместо этого, мультиподпись подписывается и размещается на узле NIS (Network Infrastructure Server). Из узла NIS, она затем распространяется на все другие NIS в сети, где она сохраняется в памяти в течение определенного периода времени до 24 часов, пока её не подпишут все соподписанты. Вместо того, чтобы зависеть от централизованного прикладного решения, решение NEM использует NIS для поддержания транзакции в процессе её совершения, как это и должно быть, то есть в полной мере децентрализованно и распределенно.

Это приводит к распределенному решению мультиподписи, которое живёт в сети. Когда все необходимые подписи собираются, мультиподпись автоматически транслируется в блокчейн в качестве валидной транзакции.

Таким образом, мультиподпись становится встроенной функцией с возможностями бóльшими, нежели решения третьих сторон, который обычно используются в большинстве других блокчейн технологий. Это позволяет программисту, который хочет автоматизировать функцию мультиподписи, непосредственно в своей программе вызвать API через NCC и подписать или инициировать транзакцию. Это делает мультиподпись очень простой в использовании.

Мультиподпись в NEM предоставляет и другие возможности:
  • Функция M из N, потребуется минимум M подписей из N пула, имеющих право подписи (максимум N=32)
  • Добавление и удаление подписантов
  • Ограниченное время жизни транзакции, даётся до 24 часов для всех подписантов чтобы подписать транзакцию
Мультиподпись особенно полезна для таких применений, как автоматизированный эскроу или активирование сервисов. Другие виды использования могут включать в себя и централизованные решения со смарт контрактами. Сама функция мультиподписи может быть использована для активации последовательности смарт контрактов или событий.

Основная команда NEM в основном настроена не в пользу децентрализованной концепции смарт-контрактов, они считают, что смарт-контракты, живущие в блокчейне, могут столкнуться с проблемами, такими как децентрализованной набор программного кода. Кроме того, пока не известно ни одного случая, чтобы смарт-контракты работали независимо от внешнего входа, который управляется кем-то или группой лиц. Зависимость от самого внешнего входа делает децентрализованный смарт контракт централизованно контролируемым концерном, который, как представляется, будет иронией самого его существования. И, наконец, самые искушённые компании уже располагают смарт-контрактами, написанными на основе своих процессов. Это может стоить индустрии миллиарды долларов и потребуется длительный период созревания, чтобы переписать их для блокчейна.

В то же время централизованно управляемые смарт контракты легко и быстро адаптировать для работы с транзакциями. NEM предоставляет все возможности для этого.

Хорошим примером доказательства разумности такого подхода будет связь выпуска дивидендов и оплаты. Типичный выпуск облигаций и с последующей оплатой в своём сценарии должен отражать следующие моменты:
  • Дата погашения
  • Купонная ставка
  • Основная или номинальная стоимость
  • Регулярно выплачиваемые проценты
В случае децентрализованного смарт-контракта, то есть без централизованного вмешательства, потребуется сложный и запутанный микс денег, чтобы сохранить их в «децентрализованном» концерне до момента выполнения контракта.

Такой контракт не может быть выполнен (по крайней мере на данном этапе развития человечества) в виде смарт-контракта по следующим причинам:
  • Компания не может отложить деньги в сторону только для выполнения обязательств по облигациям. Выведение денег из оборота противоречит основной цели компании - поднять больше денег.
  • Если облигация залоговая, и если есть невыполнение обязательств, это почти наверняка приведет к продаже активов или выкупу залога. Следовательно, должно произойти централизованное вмешательство.
  • Контракт будет вызывать платежи. Платежи осуществляются через централизованные организации, то есть банки, и поэтому смарт контракты могут быть "умными" только после того, как этот платёж будет получен.

Подход в NEM очень прост:
  • Выпускается токен облигации в форме мозаики NEM. Описание и условия облигации отражаются документе, который отмечается штампом времени (его хэш фиксируется в блокчейне)
  • По централизованному договору осуществляются платежи путём автоматического внесения денег на аккаунт владельца облигации
  • Возможен централизованный обмен ценными бумагами, чтобы разрешить торговлю облигациями среди владельцев облигаций
  • Использование мультиподписи для токенов этих облигаций при обмене этими облигациями

Приведённый пример является простым и корректным, и отражает реальные потребности мира. Он не требует миллионных затрат, чтобы настроить эту систему управления, учитывая, что функционал для исполнения контрактов - вычисление процентов, оплата, управление по срокам погашения и другие условия - уже существуют в практике реального мира. Что потребуется сделать, так это специальную биржу, предназначенную для работы с этими токенами. Но эту работу достаточно провернуть только один раз, такая биржа будет общей для всех облигаций и ценных бумаг.

Выпуск токена облигацим в NEM займёт менее 30 минут.

4.4 NEM идентификатор (NEMKID)

Криптографическое решение с открытыми / закрытыми ключами, используемое в NEM, можно легко приспособить для идентификации пользователей.

Для сервиса, использующего NEMKID, отпадает необходимость в хранении паролей пользователей, и он будет избавлен от беспокойства по поводу взлома и кражи этих паролей. Если в системе пароль всё же является обязательным элементом, сервер может использовать NEMKID для дополнительной проверки человека. В сущности, NEMKID это случайное буквенно-цифровое слово (каждый раз разное), которое пользователь должен подписать. Если подпись верна, то пользователь признаётся законным пользователем.

NEMKID может использоваться для двухфакторной аутентификации, которая может быть разработана отдельно и независимо от NEM.

Следующий сценарий поясняет, как это работает. Приложение хранит открытый ключ NEMKID пользователя в своей базе данных. Когда пользователь входит в систему, приложение предлагает пользователю случайно сгенерированного строку текста. Пользователь подписывает эту строку своим приватным ключом и возвращает хэш-строку, которую сервер далее использует для сравнения по своей базе данных. Если всё в порядке, пользователю разрешается войти в систему.

Для получения более надёжного решения, оно может быть расширено до 2-FA с использованием NEMKID.

Кроме того, NEMKID также может быть использован в качестве сертификата подлинности, чтобы показать, что человек является тем кем он себя представляет.

4.5 Автоматическое распределение токенов

Приложения, которые требуют автоматического распределения токенов, могут быть легко созданы с помощью мультиподписи несколькими вызовами API. Это может быть внутриигровой кошелёк для выплаты наград или простое решение крана.

Приведём пример. Предположим, что компания хочет ввести баллы лояльности. Она могла бы создать систему, в которой она ведёт базу данных постоянных клиентов и награждает их баллами лояльности. Вместо того чтобы писать сложную программу для управления всем этим процессом, компания может использовать готовое блокчейн решение NEM, а баллы лояльности выдавать токенами; системе останется только обработка транзакций и ведение таблицы всех точек лояльности. Нет необходимости дополнительно обрабатывать эти точки. Это позволит сэкономить сотни тысяч долларов на запуске всей программы управления и поддержании системы лояльности. NEM позволяет сделать это так просто, что такая система может быть сделана в течение нескольких недель.
Вернуться к началу Перейти вниз
Посмотреть профиль http://free.gta-ru.com

Сообщения : 1091
Дата регистрации : 2015-06-10

СообщениеТема: Ежедневно обновляемый блокчейн NEM доступен для скачивания   2016-09-18, 04:29


crimii пишет:

Я наконец-то нашёл время, чтобы добавить эту функцию.
Актуальный блокчейн NEM будет автоматически публиковаться на Dropbox каждые 24 часа.

Дополнительно блокчейн сжимается до примерно 230 MB (в несжатом виде он занимает около 700 MB) и это будет очень кстати при самозагрузке узлов на Raspberry Pi.


Прямая ссылка для скачивания:

Насколько корректно crimii делает бэкап блокчейна, не знаю, не пробовал его использовать. На время бэкапа он должен останавливать работу узла, это несложно делать, но делает ли он это. Во всяком случае, идея хорошая. Но вот для интереса в марте 2017 скачал по его ссылке блокчейн, после распаковки его размер составил 939 МБ, в то время как на моих реальных узлах размер блокчейна 706 МБ.
Вернуться к началу Перейти вниз
Посмотреть профиль http://free.gta-ru.com
Спонсируемый контент

СообщениеТема: Re: Блокчейн NEM / введение   

Вернуться к началу Перейти вниз
Блокчейн NEM / введение
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1

Права доступа к этому форуму:Вы не можете отвечать на сообщения
Посторонним в :: Блокчейн и DAG проекты :: NEM и связанные с ним проекты :: NEM-